OSDN Git Service

Adding support for updating the pinned shortcuts without updating
authorSunny Goyal <sunnygoyal@google.com>
Thu, 4 Aug 2016 19:03:52 +0000 (12:03 -0700)
committerSunny Goyal <sunnygoyal@google.com>
Thu, 4 Aug 2016 19:32:11 +0000 (12:32 -0700)
the ID map

Bug: 30654182
Change-Id: I30082bd87466a29b7bafe1e8cbf1446e1d1e4f3e

src/com/android/launcher3/LauncherModel.java

index 9fddd3d..a51fd07 100644 (file)
@@ -1179,7 +1179,12 @@ public class LauncherModel extends BroadcastReceiver
     @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 @@ public class LauncherModel extends BroadcastReceiver
     }
 
     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 @@ public class LauncherModel extends BroadcastReceiver
             }
             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();
+            }
         }
     }