Use Lifecycle Callbacks Instead of SplitInfo...

...to Retrieve the Secondary Activity

Currently, the secondary activity in the CTS tests
is always a TestActivityWithId and is retrieved
from the split info callback that occurs after the
secondary activity is launched. The secondary
activity is found within the split info callback
using the activity id passed in as an intent extra.
However, [1] ensures that a split info callback
with the newly launched activity reaches the
application before the newly launched activity's
onCreate() callback. As a result, the test
infrastructure is trying to find the secondary
activity in the split info before the secondary
activity id has been set in onCreate(). This CL
fixes that by retrieving the secondary activity
from a lifecycle callback rather than the split
info.

[1] If69c077db8ca390d41446e1329a448b3dd074293

Bug: b/218791665 b/216685227
Test: atest ActivityEmbeddingLaunchTests
Change-Id: I3b23d541f85d393dd02d0aebdac0da559a160b73
diff --git a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingBoundsTests.java b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingBoundsTests.java
index 3e49a2d..0377c7a 100644
--- a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingBoundsTests.java
+++ b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingBoundsTests.java
@@ -20,8 +20,8 @@
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.UNEVEN_CONTAINERS_DEFAULT_SPLIT_RATIO;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.assertValidSplit;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.startActivityAndVerifySplit;
+import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitAndAssertNotVisible;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitForFillsTask;
-import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitForVisible;
 
 import static org.junit.Assert.assertTrue;
 
@@ -91,7 +91,7 @@
             mReportedDisplayMetrics.setSize(new Size((int) (originalDisplaySize.getWidth() * 0.9),
                     originalDisplaySize.getHeight()));
             waitForFillsTask(secondaryActivity);
-            assertTrue(waitForVisible(primaryActivity, false));
+            waitAndAssertNotVisible(primaryActivity);
 
             // Return the display to its original size and verify that the activities are split
             secondaryActivity.resetBoundsChangeCounter();
diff --git a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingCrossUidTests.java b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingCrossUidTests.java
index 2adc1b7..ff16142 100644
--- a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingCrossUidTests.java
+++ b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingCrossUidTests.java
@@ -24,7 +24,7 @@
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.EMBEDDED_ACTIVITY_ID;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.startActivityCrossUidInSplit;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.startActivityCrossUidInSplit_expectFail;
-import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitForResumed;
+import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitAndAssertResumed;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -122,7 +122,7 @@
         // Start an activity that will attempt to embed TestActivityKnownEmbeddingCerts
         startActivityNewTask(SIGNED_EMBEDDING_ACTIVITY);
 
-        assertTrue(waitForResumed(EMBEDDED_ACTIVITY_ID));
+        waitAndAssertResumed(EMBEDDED_ACTIVITY_ID);
         TestActivityWithId embeddedActivity = getResumedActivityById(EMBEDDED_ACTIVITY_ID);
         assertNotNull(embeddedActivity);
         assertTrue(mActivityEmbeddingComponent.isActivityEmbedded(embeddedActivity));
diff --git a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingFinishTests.java b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingFinishTests.java
index 69ac897..c1fa777 100644
--- a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingFinishTests.java
+++ b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingFinishTests.java
@@ -22,8 +22,8 @@
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.startActivityAndVerifyNotSplit;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.startActivityAndVerifySplit;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.verifyFillsTask;
-import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitForFinishing;
-import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitForResumed;
+import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitAndAssertFinishing;
+import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitAndAssertResumed;
 
 import static androidx.window.extensions.embedding.SplitRule.FINISH_ADJACENT;
 import static androidx.window.extensions.embedding.SplitRule.FINISH_ALWAYS;
@@ -129,7 +129,7 @@
                 .preventSplitActivities().setFinishPrimaryWithSecondary(FINISH_NEVER).start();
         // Verify the paired finish behavior
         activityPair.second.finish();
-        assertTrue(waitForResumed(activityPair.first));
+        waitAndAssertResumed(activityPair.first);
     }
 
     /**
@@ -145,7 +145,7 @@
                 .preventSplitActivities().setFinishPrimaryWithSecondary(FINISH_ADJACENT).start();
         // Verify the paired finish behavior
         activityPair.second.finish();
-        assertTrue(waitForResumed(activityPair.first));
+        waitAndAssertResumed(activityPair.first);
     }
 
     /**
@@ -161,7 +161,7 @@
                 .preventSplitActivities().setFinishPrimaryWithSecondary(FINISH_ALWAYS).start();
         // Verify the paired finish behavior
         activityPair.second.finish();
-        assertTrue(waitForFinishing(activityPair.first));
+        waitAndAssertFinishing(activityPair.first);
     }
 
     /**
@@ -194,7 +194,7 @@
                 .setFinishPrimaryWithSecondary(FINISH_ADJACENT).start();
         // Verify the paired finish behavior
         activityPair.second.finish();
-        assertTrue(waitForFinishing(activityPair.first));
+        waitAndAssertFinishing(activityPair.first);
     }
 
     /**
@@ -209,7 +209,7 @@
                 .setFinishPrimaryWithSecondary(FINISH_ALWAYS).start();
         // Verify the paired finish behavior
         activityPair.second.finish();
-        assertTrue(waitForFinishing(activityPair.first));
+        waitAndAssertFinishing(activityPair.first);
     }
 
     /**
@@ -224,7 +224,7 @@
                 .preventSplitActivities().setFinishSecondaryWithPrimary(FINISH_NEVER).start();
         // Verify the paired finish behavior
         activityPair.first.finish();
-        assertTrue(waitForResumed(activityPair.second));
+        waitAndAssertResumed(activityPair.second);
     }
 
     /**
@@ -240,7 +240,7 @@
                 .preventSplitActivities().setFinishSecondaryWithPrimary(FINISH_ADJACENT).start();
         // Verify the paired finish behavior
         activityPair.first.finish();
-        assertTrue(waitForResumed(activityPair.second));
+        waitAndAssertResumed(activityPair.second);
     }
 
     /**
@@ -256,7 +256,7 @@
                 .preventSplitActivities().setFinishSecondaryWithPrimary(FINISH_ALWAYS).start();
         // Verify the paired finish behavior
         activityPair.first.finish();
-        assertTrue(waitForFinishing(activityPair.second));
+        waitAndAssertFinishing(activityPair.second);
     }
 
     /**
@@ -289,7 +289,7 @@
                 .setFinishSecondaryWithPrimary(FINISH_ADJACENT).start();
         // Verify the paired finish behavior
         activityPair.first.finish();
-        assertTrue(waitForFinishing(activityPair.second));
+        waitAndAssertFinishing(activityPair.second);
     }
 
     /**
@@ -304,7 +304,7 @@
                 .setFinishSecondaryWithPrimary(FINISH_ALWAYS).start();
         // Verify the paired finish behavior
         activityPair.first.finish();
-        assertTrue(waitForFinishing(activityPair.second));
+        waitAndAssertFinishing(activityPair.second);
     }
 
     /**
diff --git a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingLaunchTests.java b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingLaunchTests.java
index 5c2d696..38c34f1 100644
--- a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingLaunchTests.java
+++ b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingLaunchTests.java
@@ -22,7 +22,7 @@
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.getPrimaryStackTopActivity;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.getSecondaryStackTopActivity;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.startActivityAndVerifySplit;
-import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitForResumed;
+import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitAndAssertResumed;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -255,14 +255,14 @@
                 alwaysExpandedActivityId);
 
         // Verify that the always expanded activity is resumed and fills its parent
-        waitForResumed(alwaysExpandedActivityId);
+        waitAndAssertResumed(alwaysExpandedActivityId);
         Activity alwaysExpandedActivity = getResumedActivityById(alwaysExpandedActivityId);
         assertEquals(getMaximumActivityBounds(alwaysExpandedActivity),
                 getActivityBounds(alwaysExpandedActivity));
 
         // Finish the always expanded activity and verify that the split is resumed
         alwaysExpandedActivity.finish();
-        waitForResumed(Arrays.asList(primaryActivity, secondaryActivity));
+        waitAndAssertResumed(Arrays.asList(primaryActivity, secondaryActivity));
         assertValidSplit(primaryActivity, secondaryActivity, splitPairRule);
     }
 
@@ -296,14 +296,14 @@
                 alwaysExpandedActivityId);
 
         // Verify that the always expanded activity is resumed and fills its parent
-        waitForResumed(alwaysExpandedActivityId);
+        waitAndAssertResumed(alwaysExpandedActivityId);
         Activity alwaysExpandedActivity = getResumedActivityById(alwaysExpandedActivityId);
         assertEquals(getMaximumActivityBounds(alwaysExpandedActivity),
                 getActivityBounds(alwaysExpandedActivity));
 
         // Finish the always expanded activity and verify that the split is resumed
         alwaysExpandedActivity.finish();
-        waitForResumed(Arrays.asList(primaryActivity, secondaryActivity));
+        waitAndAssertResumed(Arrays.asList(primaryActivity, secondaryActivity));
         assertValidSplit(primaryActivity, secondaryActivity, splitPairRule);
     }
 
diff --git a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingPlaceholderTests.java b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingPlaceholderTests.java
index 693d854..bc00111 100644
--- a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingPlaceholderTests.java
+++ b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/ActivityEmbeddingPlaceholderTests.java
@@ -19,12 +19,12 @@
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.DEFAULT_SPLIT_RATIO;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.assertValidSplit;
 import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.verifyFillsTask;
-import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitForFinishing;
-import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitForResumed;
+import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitAndAssertFinishing;
+import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitAndAssertNotResumed;
+import static android.server.wm.jetpack.utils.ActivityEmbeddingUtil.waitAndAssertResumed;
 
 import static androidx.window.extensions.embedding.SplitRule.FINISH_NEVER;
 
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import android.app.Activity;
@@ -83,7 +83,7 @@
 
         // Finishing the primary activity and verify that the placeholder activity is also finishing
         primaryActivity.finish();
-        assertTrue(waitForFinishing(placeholderActivity));
+        waitAndAssertFinishing(placeholderActivity);
     }
 
     /**
@@ -104,7 +104,7 @@
         // the primary activity fills the task.
         Activity primaryActivity = startActivityNewTask(TestActivityWithId.class,
                 PRIMARY_ACTIVITY_ID);
-        assertFalse(waitForResumed(PLACEHOLDER_ACTIVITY_ID));
+        waitAndAssertNotResumed(PLACEHOLDER_ACTIVITY_ID);
         verifyFillsTask(primaryActivity);
     }
 
@@ -129,7 +129,7 @@
 
         // Finish the placeholder activity and verify that the primary activity is also finishing
         placeholderActivity.finish();
-        assertTrue(waitForFinishing(primaryActivity));
+        waitAndAssertFinishing(primaryActivity);
     }
 
     /**
@@ -193,7 +193,7 @@
 
         // Verify that the placeholder activity was finished and that the primary activity now
         // fills the task.
-        assertTrue(waitForFinishing(placeholderActivity));
+        waitAndAssertFinishing(placeholderActivity);
         assertTrue(primaryActivity.waitForBoundsChange());
         verifyFillsTask(primaryActivity);
     }
@@ -222,7 +222,7 @@
         Activity primaryActivity = startActivityNewTask(TestActivityWithId.class,
                 PRIMARY_ACTIVITY_ID);
         verifyFillsTask(primaryActivity);
-        assertFalse(waitForResumed(PLACEHOLDER_ACTIVITY_ID));
+        waitAndAssertNotResumed(PLACEHOLDER_ACTIVITY_ID);
 
         // Increase display width by 10% so that the primary and placeholder activities are stacked
         final Size currentSize = mReportedDisplayMetrics.getSize();
@@ -230,7 +230,7 @@
                 currentSize.getHeight()));
 
         // Verify that the placeholder activity is launched into a split with the primary activity
-        assertTrue(waitForResumed(PLACEHOLDER_ACTIVITY_ID));
+        waitAndAssertResumed(PLACEHOLDER_ACTIVITY_ID);
         Activity placeholderActivity = getResumedActivityById(PLACEHOLDER_ACTIVITY_ID);
         assertValidSplit(primaryActivity, placeholderActivity, splitPlaceholderRule);
     }
@@ -268,7 +268,7 @@
         // Verify that the placeholder was not finished and fills the task
         assertTrue(placeholderActivity.waitForBoundsChange());
         verifyFillsTask(placeholderActivity);
-        assertTrue(waitForResumed(Arrays.asList(placeholderActivity)));
+        waitAndAssertResumed(Arrays.asList(placeholderActivity));
     }
 
     /**
@@ -350,10 +350,10 @@
         // Launch the primary activity
         startActivityNewTask(TestActivityWithId.class, primaryActivityId);
         // Get primary activity
-        assertTrue(waitForResumed(primaryActivityId));
+        waitAndAssertResumed(primaryActivityId);
         Activity primaryActivity = getResumedActivityById(primaryActivityId);
         // Get placeholder activity
-        assertTrue(waitForResumed(placeholderActivityId));
+        waitAndAssertResumed(placeholderActivityId);
         Activity placeholderActivity = getResumedActivityById(placeholderActivityId);
         // Verify they are correctly split
         assertValidSplit(primaryActivity, placeholderActivity, splitPlaceholderRule);
diff --git a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/utils/ActivityEmbeddingUtil.java b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/utils/ActivityEmbeddingUtil.java
index ff60f60..0e415aa 100644
--- a/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/utils/ActivityEmbeddingUtil.java
+++ b/tests/framework/base/windowmanager/jetpack/src/android/server/wm/jetpack/utils/ActivityEmbeddingUtil.java
@@ -91,7 +91,7 @@
         startActivityFromActivity(activityLaunchingFrom, TestActivityWithId.class,
                 secondActivityId);
         // Verify both activities are in the correct lifecycle state
-        waitForResumed(secondActivityId);
+        waitAndAssertResumed(secondActivityId);
         assertFalse(isActivityResumed(activityLaunchingFrom));
         TestActivity secondActivity = getResumedActivityById(secondActivityId);
         // Verify the second activity is not split with the first
@@ -101,16 +101,17 @@
 
     public static Activity startActivityAndVerifySplit(@NonNull Activity activityLaunchingFrom,
             @NonNull Activity expectedPrimaryActivity, @NonNull Class secondActivityClass,
-            @NonNull SplitPairRule splitPairRule, @NonNull String secondActivityId,
+            @NonNull SplitPairRule splitPairRule, @NonNull String secondaryActivityId,
             int expectedCallbackCount,
             @NonNull TestValueCountConsumer<List<SplitInfo>> splitInfoConsumer) {
         // Set the expected callback count
         splitInfoConsumer.setCount(expectedCallbackCount);
 
         // Start second activity
-        startActivityFromActivity(activityLaunchingFrom, secondActivityClass, secondActivityId);
+        startActivityFromActivity(activityLaunchingFrom, secondActivityClass, secondaryActivityId);
 
-        // Get updated split info
+        // A split info callback should occur after the new activity is launched because the split
+        // states have changed.
         List<SplitInfo> activeSplitStates = null;
         try {
             activeSplitStates = splitInfoConsumer.waitAndGet();
@@ -118,15 +119,17 @@
             fail("startActivityAndVerifySplit() InterruptedException");
         }
 
-        // Get second activity from split info
-        Activity secondActivity = getSecondActivity(activeSplitStates, expectedPrimaryActivity,
-                secondActivityId);
-        assertNotNull(secondActivity);
+        // Wait for secondary activity to be resumed and verify that the newly sent split info
+        // contains the secondary activity.
+        waitAndAssertResumed(secondaryActivityId);
+        final Activity secondaryActivity = getResumedActivityById(secondaryActivityId);
+        assertTrue(splitInfoTopSplitIsCorrect(activeSplitStates, expectedPrimaryActivity,
+                secondaryActivity));
 
-        assertValidSplit(expectedPrimaryActivity, secondActivity, splitPairRule);
+        assertValidSplit(expectedPrimaryActivity, secondaryActivity, splitPairRule);
 
         // Return second activity for easy access in calling method
-        return secondActivity;
+        return secondaryActivity;
     }
 
     public static Activity startActivityAndVerifySplit(@NonNull Activity primaryActivity,
@@ -234,7 +237,7 @@
      */
     public static void assertValidSplit(@NonNull Activity primaryActivity,
             @Nullable Activity secondaryActivity, SplitRule splitRule) {
-        waitForResumed(secondaryActivity != null
+        waitAndAssertResumed(secondaryActivity != null
                 ? Arrays.asList(primaryActivity, secondaryActivity)
                 : Collections.singletonList(primaryActivity));
 
@@ -273,7 +276,7 @@
                 .equals(getMaximumActivityBounds(activity)));
     }
 
-    public static boolean waitForResumed(
+    private static boolean waitForResumed(
             @NonNull List<Activity> activityList) {
         final long startTime = System.currentTimeMillis();
         while (System.currentTimeMillis() - startTime < WAIT_FOR_LIFECYCLE_TIMEOUT_MS) {
@@ -291,7 +294,7 @@
         return false;
     }
 
-    public static boolean waitForResumed(@NonNull String activityId) {
+    private static boolean waitForResumed(@NonNull String activityId) {
         final long startTime = System.currentTimeMillis();
         while (System.currentTimeMillis() - startTime < WAIT_FOR_LIFECYCLE_TIMEOUT_MS) {
             if (getResumedActivityById(activityId) != null) {
@@ -301,7 +304,30 @@
         return false;
     }
 
-    public static boolean waitForVisible(@NonNull Activity activity, boolean visible) {
+    private static boolean waitForResumed(@NonNull Activity activity) {
+        return waitForResumed(Arrays.asList(activity));
+    }
+
+    public static void waitAndAssertResumed(@NonNull String activityId) {
+        assertTrue("Activity with id=" + activityId + " should be resumed",
+                waitForResumed(activityId));
+    }
+
+    public static void waitAndAssertResumed(@NonNull Activity activity) {
+        assertTrue(activity + " should be resumed", waitForResumed(activity));
+    }
+
+    public static void waitAndAssertResumed(@NonNull List<Activity> activityList) {
+        assertTrue("All activities in this list should be resumed:" + activityList,
+                waitForResumed(activityList));
+    }
+
+    public static void waitAndAssertNotResumed(@NonNull String activityId) {
+        assertFalse("Activity with id=" + activityId + " should not be resumed",
+                waitForResumed(activityId));
+    }
+
+    private static boolean waitForVisible(@NonNull Activity activity, boolean visible) {
         final long startTime = System.currentTimeMillis();
         while (System.currentTimeMillis() - startTime < WAIT_FOR_LIFECYCLE_TIMEOUT_MS) {
             if (WindowManagerJetpackTestBase.isActivityVisible(activity) == visible) {
@@ -311,11 +337,12 @@
         return false;
     }
 
-    public static boolean waitForResumed(@NonNull Activity activity) {
-        return waitForResumed(Arrays.asList(activity));
+    public static void waitAndAssertNotVisible(@NonNull Activity activity) {
+        assertTrue(activity + " should not be visible",
+                waitForVisible(activity, false /* visible */));
     }
 
-    public static boolean waitForFinishing(@NonNull Activity activity) {
+    private static boolean waitForFinishing(@NonNull Activity activity) {
         final long startTime = System.currentTimeMillis();
         while (System.currentTimeMillis() - startTime < WAIT_FOR_LIFECYCLE_TIMEOUT_MS) {
             if (activity.isFinishing()) {
@@ -325,6 +352,10 @@
         return activity.isFinishing();
     }
 
+    public static void waitAndAssertFinishing(@NonNull Activity activity) {
+        assertTrue(activity + " should be finishing", waitForFinishing(activity));
+    }
+
     @Nullable
     public static Activity getPrimaryStackTopActivity(SplitInfo splitInfo) {
         List<Activity> primaryActivityStack = splitInfo.getPrimaryActivityStack().getActivities();
@@ -378,4 +409,12 @@
             outSecondaryActivityBounds.set(leftContainerBounds);
         }
     }
+
+    private static boolean splitInfoTopSplitIsCorrect(@NonNull List<SplitInfo> splitInfoList,
+            @NonNull Activity primaryActivity, @NonNull Activity secondaryActivity) {
+        assertFalse("Split info callback should not be empty", splitInfoList.isEmpty());
+        final SplitInfo topSplit = splitInfoList.get(splitInfoList.size() - 1);
+        return primaryActivity.equals(getPrimaryStackTopActivity(topSplit))
+                && secondaryActivity.equals(getSecondaryStackTopActivity(topSplit));
+    }
 }