Loading services/usage/java/com/android/server/usage/UsageStatsService.java +8 −5 Original line number Diff line number Diff line Loading @@ -221,6 +221,7 @@ public class UsageStatsService extends SystemService implements final SparseArray<ActivityData> mVisibleActivities = new SparseArray(); @GuardedBy("mLock") private final SparseArray<LaunchTimeAlarmQueue> mLaunchTimeAlarmQueues = new SparseArray<>(); @GuardedBy("mUsageEventListeners") // Don't hold the main lock when calling out private final ArraySet<UsageStatsManagerInternal.UsageEventListener> mUsageEventListeners = new ArraySet<>(); private final CopyOnWriteArraySet<UsageStatsManagerInternal.EstimatedLaunchTimeChangedListener> Loading Loading @@ -1168,11 +1169,13 @@ public class UsageStatsService extends SystemService implements service.reportEvent(event); } synchronized (mUsageEventListeners) { final int size = mUsageEventListeners.size(); for (int i = 0; i < size; ++i) { mUsageEventListeners.valueAt(i).onUsageEvent(userId, event); } } } private String getUsageSourcePackage(Event event) { switch(mUsageSource) { Loading Loading @@ -1661,7 +1664,7 @@ public class UsageStatsService extends SystemService implements * Called via the local interface. */ private void registerListener(@NonNull UsageStatsManagerInternal.UsageEventListener listener) { synchronized (mLock) { synchronized (mUsageEventListeners) { mUsageEventListeners.add(listener); } } Loading @@ -1671,7 +1674,7 @@ public class UsageStatsService extends SystemService implements */ private void unregisterListener( @NonNull UsageStatsManagerInternal.UsageEventListener listener) { synchronized (mLock) { synchronized (mUsageEventListeners) { mUsageEventListeners.remove(listener); } } Loading Loading
services/usage/java/com/android/server/usage/UsageStatsService.java +8 −5 Original line number Diff line number Diff line Loading @@ -221,6 +221,7 @@ public class UsageStatsService extends SystemService implements final SparseArray<ActivityData> mVisibleActivities = new SparseArray(); @GuardedBy("mLock") private final SparseArray<LaunchTimeAlarmQueue> mLaunchTimeAlarmQueues = new SparseArray<>(); @GuardedBy("mUsageEventListeners") // Don't hold the main lock when calling out private final ArraySet<UsageStatsManagerInternal.UsageEventListener> mUsageEventListeners = new ArraySet<>(); private final CopyOnWriteArraySet<UsageStatsManagerInternal.EstimatedLaunchTimeChangedListener> Loading Loading @@ -1168,11 +1169,13 @@ public class UsageStatsService extends SystemService implements service.reportEvent(event); } synchronized (mUsageEventListeners) { final int size = mUsageEventListeners.size(); for (int i = 0; i < size; ++i) { mUsageEventListeners.valueAt(i).onUsageEvent(userId, event); } } } private String getUsageSourcePackage(Event event) { switch(mUsageSource) { Loading Loading @@ -1661,7 +1664,7 @@ public class UsageStatsService extends SystemService implements * Called via the local interface. */ private void registerListener(@NonNull UsageStatsManagerInternal.UsageEventListener listener) { synchronized (mLock) { synchronized (mUsageEventListeners) { mUsageEventListeners.add(listener); } } Loading @@ -1671,7 +1674,7 @@ public class UsageStatsService extends SystemService implements */ private void unregisterListener( @NonNull UsageStatsManagerInternal.UsageEventListener listener) { synchronized (mLock) { synchronized (mUsageEventListeners) { mUsageEventListeners.remove(listener); } } Loading