Fixing item check when user is enabled/disabled

Bug: 32747950
Change-Id: I278cbd7626ee30be6b803d617cf05f8359e5d940
diff --git a/src/com/android/launcher3/model/PackageUpdatedTask.java b/src/com/android/launcher3/model/PackageUpdatedTask.java
index 7286bf5..e3a2b24 100644
--- a/src/com/android/launcher3/model/PackageUpdatedTask.java
+++ b/src/com/android/launcher3/model/PackageUpdatedTask.java
@@ -87,6 +87,7 @@
         final int N = packages.length;
         FlagOp flagOp = FlagOp.NO_OP;
         final HashSet<String> packageSet = new HashSet<>(Arrays.asList(packages));
+        ItemInfoMatcher matcher = ItemInfoMatcher.ofPackages(packageSet, mUser);
         switch (mOp) {
             case OP_ADD: {
                 for (int i = 0; i < N; i++) {
@@ -135,15 +136,15 @@
                         FlagOp.addFlag(ShortcutInfo.FLAG_DISABLED_SUSPENDED) :
                         FlagOp.removeFlag(ShortcutInfo.FLAG_DISABLED_SUSPENDED);
                 if (DEBUG) Log.d(TAG, "mAllAppsList.(un)suspend " + N);
-                appsList.updateDisabledFlags(
-                        ItemInfoMatcher.ofPackages(packageSet, mUser), flagOp);
+                appsList.updateDisabledFlags(matcher, flagOp);
                 break;
             case OP_USER_AVAILABILITY_CHANGE:
                 flagOp = UserManagerCompat.getInstance(context).isQuietModeEnabled(mUser)
                         ? FlagOp.addFlag(ShortcutInfo.FLAG_DISABLED_QUIET_USER)
                         : FlagOp.removeFlag(ShortcutInfo.FLAG_DISABLED_QUIET_USER);
                 // We want to update all packages for this user.
-                appsList.updateDisabledFlags(ItemInfoMatcher.ofUser(mUser), flagOp);
+                matcher = ItemInfoMatcher.ofUser(mUser);
+                appsList.updateDisabledFlags(matcher, flagOp);
                 break;
         }
 
@@ -219,10 +220,10 @@
                         }
 
                         ComponentName cn = si.getTargetComponent();
-                        if (cn != null && packageSet.contains(cn.getPackageName())) {
+                        if (cn != null && matcher.matches(si, cn)) {
                             AppInfo appInfo = addedOrUpdatedApps.get(cn);
 
-                            if (si.isPromise()) {
+                            if (si.isPromise() && mOp == OP_ADD) {
                                 if (si.hasStatusFlag(ShortcutInfo.FLAG_AUTOINTALL_ICON)) {
                                     // Auto install icon
                                     PackageManager pm = context.getPackageManager();