Adding support for updating the pinned shortcuts without updating
the ID map
Bug: 30654182
Change-Id: I30082bd87466a29b7bafe1e8cbf1446e1d1e4f3e
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 9fddd3d..a51fd07 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -1179,7 +1179,12 @@
@Override
public void onShortcutsChanged(String packageName, List<ShortcutInfoCompat> shortcuts,
UserHandleCompat user) {
- enqueueItemUpdatedTask(new ShortcutsChangedTask(packageName, shortcuts, user));
+ enqueueItemUpdatedTask(new ShortcutsChangedTask(packageName, shortcuts, user, true));
+ }
+
+ public void updatePinnedShortcuts(String packageName, List<ShortcutInfoCompat> shortcuts,
+ UserHandleCompat user) {
+ enqueueItemUpdatedTask(new ShortcutsChangedTask(packageName, shortcuts, user, false));
}
/**
@@ -3317,15 +3322,17 @@
}
private class ShortcutsChangedTask implements Runnable {
- private String mPackageName;
- private List<ShortcutInfoCompat> mShortcuts;
- private UserHandleCompat mUser;
+ private final String mPackageName;
+ private final List<ShortcutInfoCompat> mShortcuts;
+ private final UserHandleCompat mUser;
+ private final boolean mUpdateIdMap;
public ShortcutsChangedTask(String packageName, List<ShortcutInfoCompat> shortcuts,
- UserHandleCompat user) {
+ UserHandleCompat user, boolean updateIdMap) {
mPackageName = packageName;
mShortcuts = shortcuts;
mUser = user;
+ mUpdateIdMap = updateIdMap;
}
@Override
@@ -3366,9 +3373,11 @@
}
bindUpdatedShortcuts(updatedShortcutInfos, mUser);
- // Update the deep shortcut map, in case the list of ids has changed for an activity.
- updateDeepShortcutMap(mPackageName, mUser, mShortcuts);
- bindDeepShortcuts();
+ if (mUpdateIdMap) {
+ // Update the deep shortcut map if the list of ids has changed for an activity.
+ updateDeepShortcutMap(mPackageName, mUser, mShortcuts);
+ bindDeepShortcuts();
+ }
}
}