summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/ShortcutService.java17
1 files changed, 10 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java
index 9edf3b14bad7..ac16d6c1588a 100644
--- a/services/core/java/com/android/server/pm/ShortcutService.java
+++ b/services/core/java/com/android/server/pm/ShortcutService.java
@@ -320,10 +320,10 @@ public class ShortcutService extends IShortcutService.Stub {
private final Handler mHandler;
- @GuardedBy("mServiceLock")
+ @GuardedBy("itself")
private final ArrayList<ShortcutChangeListener> mListeners = new ArrayList<>(1);
- @GuardedBy("mServiceLock")
+ @GuardedBy("itself")
private final ArrayList<LauncherApps.ShortcutChangeCallback> mShortcutChangeCallbacks =
new ArrayList<>(1);
@@ -1847,7 +1847,9 @@ public class ShortcutService extends IShortcutService.Stub {
return;
}
- copy = new ArrayList<>(mListeners);
+ synchronized (mListeners) {
+ copy = new ArrayList<>(mListeners);
+ }
}
// Note onShortcutChanged() needs to be called with the system service permissions.
for (int i = copy.size() - 1; i >= 0; i--) {
@@ -1872,8 +1874,9 @@ public class ShortcutService extends IShortcutService.Stub {
if (!isUserUnlockedL(userId)) {
return;
}
-
- copy = new ArrayList<>(mShortcutChangeCallbacks);
+ synchronized (mShortcutChangeCallbacks) {
+ copy = new ArrayList<>(mShortcutChangeCallbacks);
+ }
}
for (int i = copy.size() - 1; i >= 0; i--) {
if (!CollectionUtils.isEmpty(changedList)) {
@@ -3425,7 +3428,7 @@ public class ShortcutService extends IShortcutService.Stub {
@Override
public void addListener(@NonNull ShortcutChangeListener listener) {
- synchronized (mServiceLock) {
+ synchronized (mListeners) {
mListeners.add(Objects.requireNonNull(listener));
}
}
@@ -3433,7 +3436,7 @@ public class ShortcutService extends IShortcutService.Stub {
@Override
public void addShortcutChangeCallback(
@NonNull LauncherApps.ShortcutChangeCallback callback) {
- synchronized (mServiceLock) {
+ synchronized (mShortcutChangeCallbacks) {
mShortcutChangeCallbacks.add(Objects.requireNonNull(callback));
}
}