From 0c732f2a8017b0bedb21dab6ce6c8c2ba401e90a Mon Sep 17 00:00:00 2001 From: Jason Chiu Date: Thu, 26 May 2022 17:47:18 +0800 Subject: [PATCH] Don't start two pane for singleInstance deep links If the activity's launch mode is "singleInstance", it can't be embedded in Settings since it will be created in a new task. Bug: 229371407 Test: adb shell am start -a android.settings.NETWORK_OPERATOR_SETTINGS Change-Id: I1689d860151182cd9e97d9e4fd65d30a8804a570 --- src/com/android/settings/SettingsActivity.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index bb217a0d20a..1a9bdc742fe 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -466,6 +466,15 @@ public class SettingsActivity extends SettingsBaseActivity return false; } + // If the activity's launch mode is "singleInstance", it can't be embedded in Settings since + // it will be created in a new task. + ActivityInfo info = intent.resolveActivityInfo(getPackageManager(), + PackageManager.MATCH_DEFAULT_ONLY); + if (info.launchMode == ActivityInfo.LAUNCH_SINGLE_INSTANCE) { + Log.w(LOG_TAG, "launchMode: singleInstance"); + return false; + } + if (intent.getBooleanExtra(EXTRA_IS_FROM_SLICE, false)) { // Slice deep link starts the Intent using SubSettingLauncher. Returns true to show // 2-pane deep link.