Loading services/usage/java/com/android/server/usage/UsageStatsService.java +27 −12 Original line number Diff line number Diff line Loading @@ -183,6 +183,7 @@ public class UsageStatsService extends SystemService implements private static class ActivityData { private final String mTaskRootPackage; private final String mTaskRootClass; public int lastEvent = Event.NONE; private ActivityData(String taskRootPackage, String taskRootClass) { mTaskRootPackage = taskRootPackage; mTaskRootClass = taskRootClass; Loading Loading @@ -785,6 +786,7 @@ public class UsageStatsService extends SystemService implements switch (event.mEventType) { case Event.ACTIVITY_RESUMED: case Event.ACTIVITY_PAUSED: case Event.ACTIVITY_STOPPED: uid = mPackageManagerInternal.getPackageUid(event.mPackage, 0, userId); break; default: Loading Loading @@ -817,8 +819,10 @@ public class UsageStatsService extends SystemService implements .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__MOVE_TO_FOREGROUND); // check if this activity has already been resumed if (mVisibleActivities.get(event.mInstanceId) != null) break; mVisibleActivities.put(event.mInstanceId, new ActivityData(event.mTaskRootPackage, event.mTaskRootClass)); final ActivityData resumedData = new ActivityData(event.mTaskRootPackage, event.mTaskRootClass); resumedData.lastEvent = Event.ACTIVITY_RESUMED; mVisibleActivities.put(event.mInstanceId, resumedData); try { switch(mUsageSource) { case USAGE_SOURCE_CURRENT_ACTIVITY: Loading @@ -834,16 +838,17 @@ public class UsageStatsService extends SystemService implements } break; case Event.ACTIVITY_PAUSED: if (event.mTaskRootPackage == null) { // Task Root info is missing. Repair the event based on previous data final ActivityData prevData = mVisibleActivities.get(event.mInstanceId); if (prevData == null) { final ActivityData pausedData = mVisibleActivities.get(event.mInstanceId); if (pausedData == null) { Slog.w(TAG, "Unexpected activity event reported! (" + event.mPackage + "/" + event.mClass + " event : " + event.mEventType + " instanceId : " + event.mInstanceId + ")"); } else { event.mTaskRootPackage = prevData.mTaskRootPackage; event.mTaskRootClass = prevData.mTaskRootClass; pausedData.lastEvent = Event.ACTIVITY_PAUSED; if (event.mTaskRootPackage == null) { // Task Root info is missing. Repair the event based on previous data event.mTaskRootPackage = pausedData.mTaskRootPackage; event.mTaskRootClass = pausedData.mTaskRootClass; } } FrameworkStatsLog.write( Loading @@ -866,6 +871,16 @@ public class UsageStatsService extends SystemService implements return; } if (prevData.lastEvent != Event.ACTIVITY_PAUSED) { FrameworkStatsLog.write( FrameworkStatsLog.APP_USAGE_EVENT_OCCURRED, uid, event.mPackage, event.mClass, FrameworkStatsLog .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__MOVE_TO_BACKGROUND); } ArraySet<String> tokens; synchronized (mUsageReporters) { tokens = mUsageReporters.removeReturnOld(event.mInstanceId); Loading Loading
services/usage/java/com/android/server/usage/UsageStatsService.java +27 −12 Original line number Diff line number Diff line Loading @@ -183,6 +183,7 @@ public class UsageStatsService extends SystemService implements private static class ActivityData { private final String mTaskRootPackage; private final String mTaskRootClass; public int lastEvent = Event.NONE; private ActivityData(String taskRootPackage, String taskRootClass) { mTaskRootPackage = taskRootPackage; mTaskRootClass = taskRootClass; Loading Loading @@ -785,6 +786,7 @@ public class UsageStatsService extends SystemService implements switch (event.mEventType) { case Event.ACTIVITY_RESUMED: case Event.ACTIVITY_PAUSED: case Event.ACTIVITY_STOPPED: uid = mPackageManagerInternal.getPackageUid(event.mPackage, 0, userId); break; default: Loading Loading @@ -817,8 +819,10 @@ public class UsageStatsService extends SystemService implements .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__MOVE_TO_FOREGROUND); // check if this activity has already been resumed if (mVisibleActivities.get(event.mInstanceId) != null) break; mVisibleActivities.put(event.mInstanceId, new ActivityData(event.mTaskRootPackage, event.mTaskRootClass)); final ActivityData resumedData = new ActivityData(event.mTaskRootPackage, event.mTaskRootClass); resumedData.lastEvent = Event.ACTIVITY_RESUMED; mVisibleActivities.put(event.mInstanceId, resumedData); try { switch(mUsageSource) { case USAGE_SOURCE_CURRENT_ACTIVITY: Loading @@ -834,16 +838,17 @@ public class UsageStatsService extends SystemService implements } break; case Event.ACTIVITY_PAUSED: if (event.mTaskRootPackage == null) { // Task Root info is missing. Repair the event based on previous data final ActivityData prevData = mVisibleActivities.get(event.mInstanceId); if (prevData == null) { final ActivityData pausedData = mVisibleActivities.get(event.mInstanceId); if (pausedData == null) { Slog.w(TAG, "Unexpected activity event reported! (" + event.mPackage + "/" + event.mClass + " event : " + event.mEventType + " instanceId : " + event.mInstanceId + ")"); } else { event.mTaskRootPackage = prevData.mTaskRootPackage; event.mTaskRootClass = prevData.mTaskRootClass; pausedData.lastEvent = Event.ACTIVITY_PAUSED; if (event.mTaskRootPackage == null) { // Task Root info is missing. Repair the event based on previous data event.mTaskRootPackage = pausedData.mTaskRootPackage; event.mTaskRootClass = pausedData.mTaskRootClass; } } FrameworkStatsLog.write( Loading @@ -866,6 +871,16 @@ public class UsageStatsService extends SystemService implements return; } if (prevData.lastEvent != Event.ACTIVITY_PAUSED) { FrameworkStatsLog.write( FrameworkStatsLog.APP_USAGE_EVENT_OCCURRED, uid, event.mPackage, event.mClass, FrameworkStatsLog .APP_USAGE_EVENT_OCCURRED__EVENT_TYPE__MOVE_TO_BACKGROUND); } ArraySet<String> tokens; synchronized (mUsageReporters) { tokens = mUsageReporters.removeReturnOld(event.mInstanceId); Loading