diff --git a/res/values/config.xml b/res/values/config.xml index 33eb4c7203..47756bae56 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -253,4 +253,10 @@ + + + + + com.android.settings + diff --git a/src/com/android/launcher3/popup/SystemShortcut.java b/src/com/android/launcher3/popup/SystemShortcut.java index 8463361eef..d4ab4ab622 100644 --- a/src/com/android/launcher3/popup/SystemShortcut.java +++ b/src/com/android/launcher3/popup/SystemShortcut.java @@ -5,6 +5,7 @@ import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCH import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_SYSTEM_SHORTCUT_WIDGETS_TAP; import android.app.ActivityOptions; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Rect; @@ -34,6 +35,7 @@ import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.views.ActivityContext; import com.android.launcher3.widget.WidgetsBottomSheet; +import java.util.Arrays; import java.util.List; /** @@ -236,13 +238,21 @@ public abstract class SystemShortcut extend return null; } // Do not show shortcut if an app is already installed to the space - ComponentKey targetKey = - new ComponentKey(itemInfo.getTargetComponent(), privateProfileUser); - if (launcher.getAppsView().getAppsStore().getApp(targetKey) != null) { + ComponentName targetComponent = itemInfo.getTargetComponent(); + if (launcher.getAppsView() + .getAppsStore() + .getApp(new ComponentKey(targetComponent, privateProfileUser)) + != null) { return null; } - // TODO(b/302666597): do not install app if it's in deny list (e.g. settings) + // Do not show shortcut for settings + String[] packagesToSkip = + launcher.getResources() + .getStringArray(R.array.skip_private_profile_shortcut_packages); + if (Arrays.asList(packagesToSkip).contains(targetComponent.getPackageName())) { + return null; + } return new InstallToPrivateProfile( launcher, itemInfo, originalView, privateProfileUser);