diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/ActivityManagerInternal.java | 6 | ||||
| -rw-r--r-- | core/java/android/app/usage/EventList.java | 17 | ||||
| -rw-r--r-- | core/java/android/app/usage/UsageEvents.java | 10 | ||||
| -rw-r--r-- | core/java/android/app/usage/UsageStats.java | 9 | ||||
| -rw-r--r-- | core/java/android/app/usage/UsageStatsManagerInternal.java | 6 |
5 files changed, 25 insertions, 23 deletions
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java index 1f01e2698fb5..5cac0489e8df 100644 --- a/core/java/android/app/ActivityManagerInternal.java +++ b/core/java/android/app/ActivityManagerInternal.java @@ -320,4 +320,10 @@ public abstract class ActivityManagerInternal { /** Remove pending backup for the given userId. */ public abstract void clearPendingBackup(int userId); + + /** + * When power button is very long pressed, call this interface to do some pre-shutdown work + * like persisting database etc. + */ + public abstract void prepareForPossibleShutdown(); } diff --git a/core/java/android/app/usage/EventList.java b/core/java/android/app/usage/EventList.java index a79ad2fc8607..aaae57e526a0 100644 --- a/core/java/android/app/usage/EventList.java +++ b/core/java/android/app/usage/EventList.java @@ -103,21 +103,4 @@ public class EventList { } return result; } - - /** - * Remove events of certain type on or after a timestamp. - * @param type The type of event to remove. - * @param timeStamp the timeStamp on or after which to remove the event. - */ - public void removeOnOrAfter(int type, long timeStamp) { - for (int i = mEvents.size() - 1; i >= 0; i--) { - UsageEvents.Event event = mEvents.get(i); - if (event.mTimeStamp < timeStamp) { - break; - } - if (event.mEventType == type) { - mEvents.remove(i); - } - } - } } diff --git a/core/java/android/app/usage/UsageEvents.java b/core/java/android/app/usage/UsageEvents.java index d7a53281bc56..2c5fe046faad 100644 --- a/core/java/android/app/usage/UsageEvents.java +++ b/core/java/android/app/usage/UsageEvents.java @@ -245,10 +245,18 @@ public final class UsageEvents implements Parcelable { public static final int FLUSH_TO_DISK = 25; /** + * An event type denoting that the device underwent a shutdown process. + * A DEVICE_SHUTDOWN event should be treated as if all started activities and foreground + * services are now stopped and no explicit {@link #ACTIVITY_STOPPED} and + * {@link #FOREGROUND_SERVICE_STOP} events will be generated for them. + */ + public static final int DEVICE_SHUTDOWN = 26; + + /** * Keep in sync with the greatest event type value. * @hide */ - public static final int MAX_EVENT_TYPE = 25; + public static final int MAX_EVENT_TYPE = 26; /** @hide */ public static final int FLAG_IS_PACKAGE_INSTANT_APP = 1 << 0; diff --git a/core/java/android/app/usage/UsageStats.java b/core/java/android/app/usage/UsageStats.java index 308180badbb8..94a2a3eaae7f 100644 --- a/core/java/android/app/usage/UsageStats.java +++ b/core/java/android/app/usage/UsageStats.java @@ -21,6 +21,7 @@ import static android.app.usage.UsageEvents.Event.ACTIVITY_PAUSED; import static android.app.usage.UsageEvents.Event.ACTIVITY_RESUMED; import static android.app.usage.UsageEvents.Event.ACTIVITY_STOPPED; import static android.app.usage.UsageEvents.Event.CONTINUING_FOREGROUND_SERVICE; +import static android.app.usage.UsageEvents.Event.DEVICE_SHUTDOWN; import static android.app.usage.UsageEvents.Event.END_OF_DAY; import static android.app.usage.UsageEvents.Event.FLUSH_TO_DISK; import static android.app.usage.UsageEvents.Event.FOREGROUND_SERVICE_START; @@ -119,12 +120,9 @@ public final class UsageStats implements Parcelable { public int mLastEvent; /** - * If an activity is visible(onStart(), onPause() states) or in foreground (onResume() state), - * it has one entry in this map. When an activity becomes invisible (onStop() or onDestroy()), - * it is removed from this map. * Key is instanceId of the activity (ActivityRecode appToken hashCode).. - * Value is this activity's last event, one of ACTIVITY_RESUMED or - * ACTIVITY_PAUSED. + * Value is this activity's last event, one of ACTIVITY_RESUMED, ACTIVITY_PAUSED or + * ACTIVITY_STOPPED. * {@hide} */ public SparseIntArray mActivities = new SparseIntArray(); @@ -560,6 +558,7 @@ public final class UsageStats implements Parcelable { mLastTimeForegroundServiceUsed = timeStamp; mForegroundServices.put(className, eventType); break; + case DEVICE_SHUTDOWN: case FLUSH_TO_DISK: // update usage of all active activities/services. if (hasForegroundActivity()) { diff --git a/core/java/android/app/usage/UsageStatsManagerInternal.java b/core/java/android/app/usage/UsageStatsManagerInternal.java index 2edad350e18e..cc3ab0025864 100644 --- a/core/java/android/app/usage/UsageStatsManagerInternal.java +++ b/core/java/android/app/usage/UsageStatsManagerInternal.java @@ -98,6 +98,12 @@ public abstract class UsageStatsManagerInternal { public abstract void prepareShutdown(); /** + * When the device power button is long pressed for 3.5 seconds, prepareForPossibleShutdown() + * is called. + */ + public abstract void prepareForPossibleShutdown(); + + /** * Returns true if the app has not been used for a certain amount of time. How much time? * Could be hours, could be days, who knows? * |
