diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java index 3967bd765c0..e1360fd4996 100644 --- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java +++ b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java @@ -67,17 +67,21 @@ public class ActivityEmbeddingRulesController { registerTwoPanePairRule(mContext, getComponentName(Settings.class), getComponentName(SubSettings.class), + null /* secondaryIntentAction */, true /* finishPrimaryWithSecondary */, true /* finishSecondaryWithPrimary */); } /** Register a SplitPairRule for 2-pane. */ public static void registerTwoPanePairRule(Context context, - ComponentName primary, ComponentName secondary, - boolean finishPrimaryWithSecondary, boolean finishSecondaryWithPrimary) { + ComponentName primaryComponent, + ComponentName secondaryComponent, + String secondaryIntentAction, + boolean finishPrimaryWithSecondary, + boolean finishSecondaryWithPrimary) { final Set filters = new HashSet<>(); - filters.add(new SplitPairFilter(primary, secondary, - null /* secondaryActivityIntentAction */)); + filters.add(new SplitPairFilter(primaryComponent, secondaryComponent, + secondaryIntentAction)); SplitController.getInstance().registerRule(new SplitPairRule(filters, finishPrimaryWithSecondary, diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java index d6a8a927527..84eed6da9fb 100644 --- a/src/com/android/settings/homepage/SettingsHomepageActivity.java +++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java @@ -18,11 +18,9 @@ package com.android.settings.homepage; import android.animation.LayoutTransition; import android.app.ActivityManager; -import android.app.PendingIntent; import android.app.settings.SettingsEnums; import android.content.ComponentName; import android.content.Intent; -import android.content.pm.PackageManager; import android.os.Bundle; import android.text.TextUtils; import android.util.FeatureFlagUtils; @@ -36,16 +34,15 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; -import androidx.window.embedding.SplitController; import com.android.settings.R; import com.android.settings.Settings; import com.android.settings.Utils; import com.android.settings.accounts.AvatarViewMixin; -import com.android.settings.core.CategoryMixin; -import com.android.settings.core.FeatureFlags; import com.android.settings.activityembedding.ActivityEmbeddingRulesController; import com.android.settings.activityembedding.ActivityEmbeddingUtils; +import com.android.settings.core.CategoryMixin; +import com.android.settings.core.FeatureFlags; import com.android.settings.homepage.contextualcards.ContextualCardsFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin; @@ -207,6 +204,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements finish(); return; } + targetIntent.setComponent(targetComponentName); // To prevent launchDeepLinkIntentToRight again for configuration change. intent.setAction(null); @@ -223,11 +221,13 @@ public class SettingsHomepageActivity extends FragmentActivity implements ActivityEmbeddingRulesController.registerTwoPanePairRule(this, new ComponentName(Utils.SETTINGS_PACKAGE_NAME, ALIAS_DEEP_LINK), targetComponentName, + targetIntent.getAction(), true /* finishPrimaryWithSecondary */, true /* finishSecondaryWithPrimary */); ActivityEmbeddingRulesController.registerTwoPanePairRule(this, new ComponentName(Settings.class.getPackageName(), Settings.class.getName()), targetComponentName, + targetIntent.getAction(), true /* finishPrimaryWithSecondary */, true /* finishSecondaryWithPrimary */); startActivity(targetIntent);