Merge "Fix overlapped problem in SuW two panes mode" into sc-v2-dev
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
index fb13a99..fa61994 100644
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
+++ b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
@@ -77,8 +77,8 @@
             ComponentName primaryComponent,
             ComponentName secondaryComponent,
             String secondaryIntentAction,
-            boolean finishPrimaryWithSecondary,
-            boolean finishSecondaryWithPrimary,
+            int finishPrimaryWithSecondary,
+            int finishSecondaryWithPrimary,
             boolean clearTop) {
         if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(context)) {
             return;
@@ -88,8 +88,8 @@
                 secondaryIntentAction));
 
         SplitController.getInstance().registerRule(new SplitPairRule(filters,
-                finishPrimaryWithSecondary ? SplitRule.FINISH_ADJACENT : SplitRule.FINISH_NEVER,
-                finishSecondaryWithPrimary ? SplitRule.FINISH_ADJACENT : SplitRule.FINISH_NEVER,
+                finishPrimaryWithSecondary,
+                finishSecondaryWithPrimary,
                 clearTop,
                 ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(context),
                 ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(context),
@@ -117,17 +117,8 @@
                 getComponentName(context, Settings.class),
                 secondaryComponent,
                 secondaryIntentAction,
-                finishPrimaryWithSecondary,
-                finishSecondaryWithPrimary,
-                clearTop);
-
-        registerTwoPanePairRule(
-                context,
-                new ComponentName(context, DeepLinkHomepageActivity.class),
-                secondaryComponent,
-                secondaryIntentAction,
-                finishPrimaryWithSecondary,
-                finishSecondaryWithPrimary,
+                finishPrimaryWithSecondary ? SplitRule.FINISH_ADJACENT : SplitRule.FINISH_NEVER,
+                finishSecondaryWithPrimary ? SplitRule.FINISH_ADJACENT : SplitRule.FINISH_NEVER,
                 clearTop);
 
         registerTwoPanePairRule(
@@ -135,8 +126,19 @@
                 getComponentName(context, SettingsHomepageActivity.class),
                 secondaryComponent,
                 secondaryIntentAction,
-                finishPrimaryWithSecondary,
-                finishSecondaryWithPrimary,
+                finishPrimaryWithSecondary ? SplitRule.FINISH_ADJACENT : SplitRule.FINISH_NEVER,
+                finishSecondaryWithPrimary ? SplitRule.FINISH_ADJACENT : SplitRule.FINISH_NEVER,
+                clearTop);
+
+        // We should finish HomePageActivity altogether even if it shows in single pane for all deep
+        // link cases.
+        registerTwoPanePairRule(
+                context,
+                new ComponentName(context, DeepLinkHomepageActivity.class),
+                secondaryComponent,
+                secondaryIntentAction,
+                finishPrimaryWithSecondary ? SplitRule.FINISH_ALWAYS : SplitRule.FINISH_NEVER,
+                finishSecondaryWithPrimary ? SplitRule.FINISH_ALWAYS : SplitRule.FINISH_NEVER,
                 clearTop);
 
         registerTwoPanePairRule(
@@ -144,8 +146,8 @@
                 getComponentName(context, SliceDeepLinkHomepageActivity.class),
                 secondaryComponent,
                 secondaryIntentAction,
-                finishPrimaryWithSecondary,
-                finishSecondaryWithPrimary,
+                finishPrimaryWithSecondary ? SplitRule.FINISH_ALWAYS : SplitRule.FINISH_NEVER,
+                finishSecondaryWithPrimary ? SplitRule.FINISH_ALWAYS : SplitRule.FINISH_NEVER,
                 clearTop);
     }
 
diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java
index 909c146..0d11df5 100644
--- a/src/com/android/settings/homepage/SettingsHomepageActivity.java
+++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java
@@ -40,6 +40,7 @@
 import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
+import androidx.window.embedding.SplitRule;
 
 import com.android.settings.R;
 import com.android.settings.Settings;
@@ -338,15 +339,15 @@
                 new ComponentName(getApplicationContext(), getClass()),
                 targetComponentName,
                 targetIntent.getAction(),
-                true /* finishPrimaryWithSecondary */,
-                true /* finishSecondaryWithPrimary */,
+                SplitRule.FINISH_ALWAYS,
+                SplitRule.FINISH_ALWAYS,
                 true /* clearTop*/);
         ActivityEmbeddingRulesController.registerTwoPanePairRule(this,
                 new ComponentName(Settings.class.getPackageName(), Settings.class.getName()),
                 targetComponentName,
                 targetIntent.getAction(),
-                true /* finishPrimaryWithSecondary */,
-                true /* finishSecondaryWithPrimary */,
+                SplitRule.FINISH_ALWAYS,
+                SplitRule.FINISH_ALWAYS,
                 true /* clearTop*/);
         startActivity(targetIntent);
     }