1 /** 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 * use this file except in compliance with the License. You may obtain a copy 6 * of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations 14 * under the License. 15 */ 16 package android.app.usage; 17 18 import android.content.res.Configuration; 19 import android.os.Parcel; 20 import android.os.Parcelable; 21 22 /** 23 * Represents the usage statistics of a device {@link android.content.res.Configuration} for a 24 * specific time range. 25 */ 26 public final class ConfigurationStats implements Parcelable { 27 28 /** 29 * {@hide} 30 */ 31 public Configuration mConfiguration; 32 33 /** 34 * {@hide} 35 */ 36 public long mBeginTimeStamp; 37 38 /** 39 * {@hide} 40 */ 41 public long mEndTimeStamp; 42 43 /** 44 * {@hide} 45 */ 46 public long mLastTimeActive; 47 48 /** 49 * {@hide} 50 */ 51 public long mTotalTimeActive; 52 53 /** 54 * {@hide} 55 */ 56 public int mActivationCount; 57 58 /** 59 * {@hide} 60 */ ConfigurationStats()61 public ConfigurationStats() { 62 } 63 ConfigurationStats(ConfigurationStats stats)64 public ConfigurationStats(ConfigurationStats stats) { 65 mConfiguration = stats.mConfiguration; 66 mBeginTimeStamp = stats.mBeginTimeStamp; 67 mEndTimeStamp = stats.mEndTimeStamp; 68 mLastTimeActive = stats.mLastTimeActive; 69 mTotalTimeActive = stats.mTotalTimeActive; 70 mActivationCount = stats.mActivationCount; 71 } 72 getConfiguration()73 public Configuration getConfiguration() { 74 return mConfiguration; 75 } 76 77 /** 78 * Get the beginning of the time range this {@link ConfigurationStats} represents, 79 * measured in milliseconds since the epoch. 80 * <p/> 81 * See {@link System#currentTimeMillis()}. 82 */ getFirstTimeStamp()83 public long getFirstTimeStamp() { 84 return mBeginTimeStamp; 85 } 86 87 /** 88 * Get the end of the time range this {@link ConfigurationStats} represents, 89 * measured in milliseconds since the epoch. 90 * <p/> 91 * See {@link System#currentTimeMillis()}. 92 */ getLastTimeStamp()93 public long getLastTimeStamp() { 94 return mEndTimeStamp; 95 } 96 97 /** 98 * Get the last time this configuration was active, measured in milliseconds since the epoch. 99 * <p/> 100 * See {@link System#currentTimeMillis()}. 101 */ getLastTimeActive()102 public long getLastTimeActive() { 103 return mLastTimeActive; 104 } 105 106 /** 107 * Get the total time this configuration was active, measured in milliseconds. 108 */ getTotalTimeActive()109 public long getTotalTimeActive() { 110 return mTotalTimeActive; 111 } 112 113 /** 114 * Get the number of times this configuration was active. 115 */ getActivationCount()116 public int getActivationCount() { 117 return mActivationCount; 118 } 119 120 @Override describeContents()121 public int describeContents() { 122 return 0; 123 } 124 125 @Override writeToParcel(Parcel dest, int flags)126 public void writeToParcel(Parcel dest, int flags) { 127 if (mConfiguration != null) { 128 dest.writeInt(1); 129 mConfiguration.writeToParcel(dest, flags); 130 } else { 131 dest.writeInt(0); 132 } 133 134 dest.writeLong(mBeginTimeStamp); 135 dest.writeLong(mEndTimeStamp); 136 dest.writeLong(mLastTimeActive); 137 dest.writeLong(mTotalTimeActive); 138 dest.writeInt(mActivationCount); 139 } 140 141 public static final Creator<ConfigurationStats> CREATOR = new Creator<ConfigurationStats>() { 142 @Override 143 public ConfigurationStats createFromParcel(Parcel source) { 144 ConfigurationStats stats = new ConfigurationStats(); 145 if (source.readInt() != 0) { 146 stats.mConfiguration = Configuration.CREATOR.createFromParcel(source); 147 } 148 stats.mBeginTimeStamp = source.readLong(); 149 stats.mEndTimeStamp = source.readLong(); 150 stats.mLastTimeActive = source.readLong(); 151 stats.mTotalTimeActive = source.readLong(); 152 stats.mActivationCount = source.readInt(); 153 return stats; 154 } 155 156 @Override 157 public ConfigurationStats[] newArray(int size) { 158 return new ConfigurationStats[size]; 159 } 160 }; 161 } 162