diff options
| -rw-r--r-- | services/usage/java/com/android/server/usage/UsageStatsService.java | 76 |
1 files changed, 54 insertions, 22 deletions
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java index ccd4ce038367..08f719e91da9 100644 --- a/services/usage/java/com/android/server/usage/UsageStatsService.java +++ b/services/usage/java/com/android/server/usage/UsageStatsService.java @@ -1121,13 +1121,8 @@ public class UsageStatsService extends SystemService implements switch (event.mEventType) { case Event.ACTIVITY_RESUMED: - FrameworkStatsLog.write( - FrameworkStatsLog.APP_USAGE_EVENT_OCCURRED, - uid, - event.mPackage, - "", - FrameworkStatsLog - .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__MOVE_TO_FOREGROUND); + logAppUsageEventReportedAtomLocked(Event.ACTIVITY_RESUMED, uid, event.mPackage); + // check if this activity has already been resumed if (mVisibleActivities.get(event.mInstanceId) != null) break; final String usageSourcePackage = getUsageSourcePackage(event); @@ -1172,13 +1167,8 @@ public class UsageStatsService extends SystemService implements usageSourcePackage2); mVisibleActivities.put(event.mInstanceId, pausedData); } else { - FrameworkStatsLog.write( - FrameworkStatsLog.APP_USAGE_EVENT_OCCURRED, - uid, - event.mPackage, - "", - FrameworkStatsLog - .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__MOVE_TO_BACKGROUND); + logAppUsageEventReportedAtomLocked(Event.ACTIVITY_PAUSED, uid, + event.mPackage); } pausedData.lastEvent = Event.ACTIVITY_PAUSED; @@ -1203,13 +1193,8 @@ public class UsageStatsService extends SystemService implements } if (prevData.lastEvent != Event.ACTIVITY_PAUSED) { - FrameworkStatsLog.write( - FrameworkStatsLog.APP_USAGE_EVENT_OCCURRED, - uid, - event.mPackage, - "", - FrameworkStatsLog - .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__MOVE_TO_BACKGROUND); + logAppUsageEventReportedAtomLocked(Event.ACTIVITY_PAUSED, uid, + event.mPackage); } ArraySet<String> tokens; @@ -1244,11 +1229,19 @@ public class UsageStatsService extends SystemService implements } break; case Event.USER_INTERACTION: - // Fall through + logAppUsageEventReportedAtomLocked(Event.USER_INTERACTION, uid, event.mPackage); + // Fall through. case Event.APP_COMPONENT_USED: convertToSystemTimeLocked(event); mLastTimeComponentUsedGlobal.put(event.mPackage, event.mTimeStamp); break; + case Event.SHORTCUT_INVOCATION: + case Event.CHOOSER_ACTION: + case Event.STANDBY_BUCKET_CHANGED: + case Event.FOREGROUND_SERVICE_START: + case Event.FOREGROUND_SERVICE_STOP: + logAppUsageEventReportedAtomLocked(event.mEventType, uid, event.mPackage); + break; } final UserUsageStatsService service = getUserUsageStatsServiceLocked(userId); @@ -1261,6 +1254,45 @@ public class UsageStatsService extends SystemService implements mIoHandler.obtainMessage(MSG_NOTIFY_USAGE_EVENT_LISTENER, userId, 0, event).sendToTarget(); } + @GuardedBy("mLock") + private void logAppUsageEventReportedAtomLocked(int eventType, int uid, String packageName) { + FrameworkStatsLog.write(FrameworkStatsLog.APP_USAGE_EVENT_OCCURRED, uid, packageName, + "", getAppUsageEventOccurredAtomEventType(eventType)); + } + + /** Make sure align with the EventType defined in the AppUsageEventOccurred atom. */ + private int getAppUsageEventOccurredAtomEventType(int eventType) { + switch (eventType) { + case Event.ACTIVITY_RESUMED: + return FrameworkStatsLog + .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__MOVE_TO_FOREGROUND; + case Event.ACTIVITY_PAUSED: + return FrameworkStatsLog + .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__MOVE_TO_BACKGROUND; + case Event.USER_INTERACTION: + return FrameworkStatsLog + .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__USER_INTERACTION; + case Event.SHORTCUT_INVOCATION: + return FrameworkStatsLog + .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__SHORTCUT_INVOCATION; + case Event.CHOOSER_ACTION: + return FrameworkStatsLog + .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__CHOOSER_ACTION; + case Event.STANDBY_BUCKET_CHANGED: + return FrameworkStatsLog + .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__STANDBY_BUCKET_CHANGED; + case Event.FOREGROUND_SERVICE_START: + return FrameworkStatsLog + .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__FOREGROUND_SERVICE_START; + case Event.FOREGROUND_SERVICE_STOP: + return FrameworkStatsLog + .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__FOREGROUND_SERVICE_STOP; + default: + Slog.w(TAG, "Unsupported usage event logging: " + eventType); + return -1; + } + } + private String getUsageSourcePackage(Event event) { switch(mUsageSource) { case USAGE_SOURCE_CURRENT_ACTIVITY: |