Fixing missing user check when updating shortcuts for an app

Change-Id: I889c555d3402fd71098af29b78eb6d959a071080
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index a75edb7..ddd60c8 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -2782,7 +2782,7 @@
                 for (UserHandleCompat user : mUserManager.getUserProfiles()) {
                     List<ShortcutInfoCompat> shortcuts = mDeepShortcutManager
                             .queryForAllShortcuts(user);
-                    updateDeepShortcutMap(null, shortcuts);
+                    updateDeepShortcutMap(null, user, shortcuts);
                 }
                 synchronized (LoaderTask.this) {
                     if (mStopped) {
@@ -2804,13 +2804,17 @@
         }
     }
 
-    // Clear all the shortcuts for the given package, and re-add the new shortcuts.
-    private void updateDeepShortcutMap(String packageName, List<ShortcutInfoCompat> shortcuts) {
-        // Remove all keys associated with the given package.
+    /**
+     * Clear all the shortcuts for the given package, and re-add the new shortcuts.
+     */
+    private void updateDeepShortcutMap(
+            String packageName, UserHandleCompat user, List<ShortcutInfoCompat> shortcuts) {
         if (packageName != null) {
             Iterator<ComponentKey> keysIter = mBgDeepShortcutMap.keySet().iterator();
             while (keysIter.hasNext()) {
-                if (keysIter.next().componentName.getPackageName().equals(packageName)) {
+                ComponentKey next = keysIter.next();
+                if (next.componentName.getPackageName().equals(packageName)
+                        && next.user.equals(user)) {
                     keysIter.remove();
                 }
             }
@@ -3336,7 +3340,7 @@
             bindUpdatedShortcuts(updatedShortcutInfos, mUser);
 
             // Update the deep shortcut map, in case the list of ids has changed for an activity.
-            updateDeepShortcutMap(mPackageName, mShortcuts);
+            updateDeepShortcutMap(mPackageName, mUser, mShortcuts);
             bindDeepShortcuts();
         }
     }
diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
index b70c165..7127ec4 100644
--- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
+++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
@@ -440,7 +440,7 @@
                     mPredictedApps.add(info);
                 } else {
                     if (ProviderConfig.IS_DOGFOOD_BUILD) {
-                        Log.e(TAG, "Predicted app not found: " + ck.flattenToString(mLauncher));
+                        Log.e(TAG, "Predicted app not found: " + ck);
                     }
                 }
                 // Stop at the number of predicted apps
diff --git a/src/com/android/launcher3/shortcuts/ShortcutKey.java b/src/com/android/launcher3/shortcuts/ShortcutKey.java
index c9d66eb..c15f91d 100644
--- a/src/com/android/launcher3/shortcuts/ShortcutKey.java
+++ b/src/com/android/launcher3/shortcuts/ShortcutKey.java
@@ -2,7 +2,6 @@
 
 import android.content.ComponentName;
 
-import com.android.launcher3.LauncherAppState;
 import com.android.launcher3.compat.UserHandleCompat;
 import com.android.launcher3.util.ComponentKey;
 
@@ -22,9 +21,4 @@
         return new ShortcutKey(shortcutInfo.getPackage(), shortcutInfo.getUserHandle(),
                 shortcutInfo.getId());
     }
-
-    @Override
-    public String toString() {
-        return flattenToString(LauncherAppState.getInstance().getContext());
-    }
 }
diff --git a/src/com/android/launcher3/util/ComponentKey.java b/src/com/android/launcher3/util/ComponentKey.java
index b7aafae..144b411 100644
--- a/src/com/android/launcher3/util/ComponentKey.java
+++ b/src/com/android/launcher3/util/ComponentKey.java
@@ -18,6 +18,7 @@
 
 import android.content.ComponentName;
 import android.content.Context;
+
 import com.android.launcher3.compat.UserHandleCompat;
 import com.android.launcher3.compat.UserManagerCompat;
 
@@ -60,17 +61,6 @@
         mHashCode = Arrays.hashCode(new Object[] {componentName, user});
     }
 
-    /**
-     * Encodes a component key as a string of the form [flattenedComponentString#userId].
-     */
-    public String flattenToString(Context context) {
-        String flattened = componentName.flattenToString();
-        if (user != null) {
-            flattened += "#" + UserManagerCompat.getInstance(context).getSerialNumberForUser(user);
-        }
-        return flattened;
-    }
-
     @Override
     public int hashCode() {
         return mHashCode;
@@ -81,4 +71,12 @@
         ComponentKey other = (ComponentKey) o;
         return other.componentName.equals(componentName) && other.user.equals(user);
     }
+
+    /**
+     * Encodes a component key as a string of the form [flattenedComponentString#userId].
+     */
+    @Override
+    public String toString() {
+        return componentName.flattenToString() + "#" + user;
+    }
 }
\ No newline at end of file