diff --git a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java index c871e9fc219..89ee19bc8a7 100644 --- a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java +++ b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java @@ -46,6 +46,7 @@ import androidx.preference.PreferenceGroup; import com.android.settings.R; import com.android.settings.Settings; import com.android.settings.Settings.TetherSettingsActivity; +import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.core.BasePreferenceController; import com.android.settings.gestures.OneHandedSettingsUtils; import com.android.settings.overlay.FeatureFactory; @@ -127,7 +128,7 @@ public class CreateShortcutPreferenceController extends BasePreferenceController return false; } final Intent shortcutIntent = createResultIntent( - buildShortcutIntent(info), + buildShortcutIntent(uiContext, info), info, clickTarget.getTitle()); mHost.setResult(Activity.RESULT_OK, shortcutIntent); logCreateShortcut(info); @@ -210,10 +211,14 @@ public class CreateShortcutPreferenceController extends BasePreferenceController info.activityInfo.name); } - private static Intent buildShortcutIntent(ResolveInfo info) { - return new Intent(SHORTCUT_PROBE) + private static Intent buildShortcutIntent(Context context, ResolveInfo info) { + Intent intent = new Intent(SHORTCUT_PROBE) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP) .setClassName(info.activityInfo.packageName, info.activityInfo.name); + if (ActivityEmbeddingUtils.isEmbeddingActivityEnabled(context)) { + intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); + } + return intent; } private static ShortcutInfo createShortcutInfo(Context context, Intent shortcutIntent, @@ -277,8 +282,8 @@ public class CreateShortcutPreferenceController extends BasePreferenceController ResolveInfo ri = context.getPackageManager().resolveActivity(si.getIntent(), 0); if (ri != null) { - updatedShortcuts.add(createShortcutInfo(context, buildShortcutIntent(ri), ri, - si.getShortLabel())); + updatedShortcuts.add(createShortcutInfo(context, + buildShortcutIntent(context, ri), ri, si.getShortLabel())); } } }