diff options
Diffstat (limited to 'src/com/android/launcher3/model/PackageUpdatedTask.java')
-rw-r--r-- | src/com/android/launcher3/model/PackageUpdatedTask.java | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/com/android/launcher3/model/PackageUpdatedTask.java b/src/com/android/launcher3/model/PackageUpdatedTask.java index f03c9c77c..b58efb647 100644 --- a/src/com/android/launcher3/model/PackageUpdatedTask.java +++ b/src/com/android/launcher3/model/PackageUpdatedTask.java @@ -18,9 +18,8 @@ package com.android.launcher3.model; import android.content.ComponentName; import android.content.Context; import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; import android.graphics.Bitmap; +import android.os.Process; import android.os.UserHandle; import android.util.Log; @@ -40,10 +39,12 @@ import com.android.launcher3.ShortcutInfo; import com.android.launcher3.Utilities; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.UserManagerCompat; +import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.graphics.LauncherIcons; import com.android.launcher3.util.FlagOp; import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.ManagedProfileHeuristic; +import com.android.launcher3.util.PackageManagerHelper; import com.android.launcher3.util.PackageUserKey; import java.util.ArrayList; @@ -95,6 +96,9 @@ public class PackageUpdatedTask extends ExtendedModelTask { for (int i = 0; i < N; i++) { if (DEBUG) Log.d(TAG, "mAllAppsList.addPackage " + packages[i]); iconCache.updateIconsForPkg(packages[i], mUser); + if (FeatureFlags.LAUNCHER3_PROMISE_APPS_IN_ALL_APPS) { + appsList.removePackage(packages[i], Process.myUserHandle()); + } appsList.addPackage(context, packages[i], mUser); } @@ -222,18 +226,17 @@ public class PackageUpdatedTask extends ExtendedModelTask { if (cn != null && matcher.matches(si, cn)) { AppInfo appInfo = addedOrUpdatedApps.get(cn); - if (si.isPromise() && mOp == OP_ADD) { - if (si.hasStatusFlag(ShortcutInfo.FLAG_AUTOINTALL_ICON)) { + // For system apps, package manager send OP_UPDATE when an + // app is enabled. + if (si.isPromise() && (mOp == OP_ADD || mOp == OP_UPDATE)) { + if (si.hasStatusFlag(ShortcutInfo.FLAG_AUTOINSTALL_ICON)) { // Auto install icon - PackageManager pm = context.getPackageManager(); - ResolveInfo matched = pm.resolveActivity( - new Intent(Intent.ACTION_MAIN) - .setComponent(cn).addCategory(Intent.CATEGORY_LAUNCHER), - PackageManager.MATCH_DEFAULT_ONLY); - if (matched == null) { + LauncherAppsCompat launcherApps + = LauncherAppsCompat.getInstance(context); + if (!launcherApps.isActivityEnabledForProfile(cn, mUser)) { // Try to find the best match activity. - Intent intent = pm.getLaunchIntentForPackage( - cn.getPackageName()); + Intent intent = new PackageManagerHelper(context) + .getAppLaunchIntent(cn.getPackageName(), mUser); if (intent != null) { cn = intent.getComponent(); appInfo = addedOrUpdatedApps.get(cn); |