From bb24a2f63bdf89026970ce4c228b101b72582760 Mon Sep 17 00:00:00 2001 From: Tsung-Mao Fang Date: Thu, 28 Oct 2021 16:36:21 +0800 Subject: [PATCH] Register the rule for injected apps We should align behavior between injected apps and in-app entries. Test: Open the Google/DW page and click back key. Then, app is closed directly. Fix: 204406425 Change-Id: I57831c4df78b502b3998b3f7384df2900dbfe56f --- .../dashboard/DashboardFeatureProviderImpl.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java index f8185db7178..2def817ac22 100644 --- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java @@ -60,6 +60,8 @@ import androidx.preference.SwitchPreference; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.Utils; +import com.android.settings.activityembedding.ActivityEmbeddingRulesController; +import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.dashboard.profileselector.ProfileSelectDialog; import com.android.settings.homepage.TopLevelSettings; import com.android.settings.overlay.FeatureFactory; @@ -170,7 +172,17 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { } pref.setOnPreferenceClickListener(preference -> { OnCancelListener listener = null; - if (fragment instanceof TopLevelSettings) { + if (fragment instanceof TopLevelSettings + && ActivityEmbeddingUtils.isEmbeddingActivityEnabled(mContext)) { + // Register the rule for injected apps. + ActivityEmbeddingRulesController.registerTwoPanePairRule(mContext, + new ComponentName(activity.getPackageName(), + com.android.settings.Settings.class.getName()), + new ComponentName(tile.getPackageName(), + tile.getComponentName()), + null, true, true); + + // Highlight preference ui. final TopLevelSettings topLevelSettings = (TopLevelSettings) fragment; // Highlight the tile immediately whenever it's clicked topLevelSettings.setHighlightPreferenceKey(key);