diff --git a/services/tests/wmtests/AndroidManifest.xml b/services/tests/wmtests/AndroidManifest.xml index 0ed037c7e70a9..04db6861e694a 100644 --- a/services/tests/wmtests/AndroidManifest.xml +++ b/services/tests/wmtests/AndroidManifest.xml @@ -66,6 +66,18 @@ + + + = 0) { + appearedCookies[cookieIndex] = taskInfo.launchCookies.isEmpty() + ? null : taskInfo.launchCookies.get(0); + } + } + }; + Activity mainActivity = null; + try { + organizer.registerOrganizer(); + context.startActivity(intent, options.toBundle()); + try { + mainLatch.await(10, TimeUnit.SECONDS); + } catch (InterruptedException ignored) { + } + mainActivity = monitor.getLastActivity(); + + assertNotNull(mainActivity); + assertNotEquals(TrampolineActivity.sTaskId, mainActivity.getTaskId()); + assertNull("Trampoline task must not have cookie", appearedCookies[0]); + assertEquals("Main task must get the same cookie", cookie, appearedCookies[1]); + } finally { + organizer.unregisterOrganizer(); + instrumentation.removeMonitor(monitor); + if (mainActivity != null) { + mainActivity.finish(); + } + } + } + + public static class TrampolineActivity extends Activity { + static int sTaskId; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + sTaskId = getTaskId(); + startActivity(new Intent(this, MainActivity.class) + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); + finish(); + } + } + + public static class MainActivity extends Activity { + } } diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java index 6d552206c9aca..83f41e3e2910c 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java @@ -543,33 +543,7 @@ public class WindowOrganizerTests extends WindowTestsBase { @Test public void testTileAddRemoveChild() { - ITaskOrganizer listener = new ITaskOrganizer.Stub() { - @Override - public void addStartingWindow(StartingWindowInfo info, IBinder appToken) { - - } - - @Override - public void removeStartingWindow(int taskId, SurfaceControl leash, Rect frame, - boolean playRevealAnimation) { } - - @Override - public void copySplashScreenView(int taskId) { } - - @Override - public void onTaskAppeared(RunningTaskInfo taskInfo, SurfaceControl leash) { } - - @Override - public void onTaskVanished(RunningTaskInfo container) { } - - @Override - public void onTaskInfoChanged(RunningTaskInfo info) throws RemoteException { - } - - @Override - public void onBackPressedOnTaskRoot(RunningTaskInfo taskInfo) { - } - }; + final StubOrganizer listener = new StubOrganizer(); mWm.mAtmService.mTaskOrganizerController.registerTaskOrganizer(listener); Task task = mWm.mAtmService.mTaskOrganizerController.createRootTask( mDisplayContent, WINDOWING_MODE_SPLIT_SCREEN_SECONDARY, null); @@ -612,31 +586,12 @@ public class WindowOrganizerTests extends WindowTestsBase { public void testTaskInfoCallback() { final ArrayList lastReportedTiles = new ArrayList<>(); final boolean[] called = {false}; - ITaskOrganizer listener = new ITaskOrganizer.Stub() { + final StubOrganizer listener = new StubOrganizer() { @Override - public void addStartingWindow(StartingWindowInfo info, IBinder appToken) { - - } - @Override - public void removeStartingWindow(int taskId, SurfaceControl leash, Rect frame, - boolean playRevealAnimation) { } - @Override - public void copySplashScreenView(int taskId) { } - @Override - public void onTaskAppeared(RunningTaskInfo taskInfo, SurfaceControl leash) { } - - @Override - public void onTaskVanished(RunningTaskInfo container) { } - - @Override - public void onTaskInfoChanged(RunningTaskInfo info) throws RemoteException { + public void onTaskInfoChanged(RunningTaskInfo info) { lastReportedTiles.add(info); called[0] = true; } - - @Override - public void onBackPressedOnTaskRoot(RunningTaskInfo taskInfo) { - } }; mWm.mAtmService.mTaskOrganizerController.registerTaskOrganizer(listener); Task task = mWm.mAtmService.mTaskOrganizerController.createRootTask( @@ -689,31 +644,11 @@ public class WindowOrganizerTests extends WindowTestsBase { @Test public void testHierarchyTransaction() { final ArrayMap lastReportedTiles = new ArrayMap<>(); - ITaskOrganizer listener = new ITaskOrganizer.Stub() { - @Override - public void addStartingWindow(StartingWindowInfo info, IBinder appToken) { - - } - - @Override - public void removeStartingWindow(int taskId, SurfaceControl leash, Rect frame, - boolean playRevealAnimation) { } - @Override - public void copySplashScreenView(int taskId) { } - @Override - public void onTaskAppeared(RunningTaskInfo taskInfo, SurfaceControl leash) { } - - @Override - public void onTaskVanished(RunningTaskInfo container) { } - + final StubOrganizer listener = new StubOrganizer() { @Override public void onTaskInfoChanged(RunningTaskInfo info) { lastReportedTiles.put(info.token.asBinder(), info); } - - @Override - public void onBackPressedOnTaskRoot(RunningTaskInfo taskInfo) { - } }; mWm.mAtmService.mTaskOrganizerController.registerTaskOrganizer(listener); @@ -838,7 +773,7 @@ public class WindowOrganizerTests extends WindowTestsBase { verify(transactionListener).onTransactionReady(anyInt(), any()); } - class StubOrganizer extends ITaskOrganizer.Stub { + static class StubOrganizer extends ITaskOrganizer.Stub { RunningTaskInfo mInfo; @Override diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java index 2d4e4efd74ea9..9ac40ca032929 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java @@ -92,7 +92,6 @@ import android.view.SurfaceControl.Transaction; import android.view.View; import android.view.WindowManager; import android.view.WindowManager.DisplayImePolicy; -import android.window.ITaskOrganizer; import android.window.ITransitionPlayer; import android.window.StartingWindowInfo; import android.window.TransitionInfo; @@ -1216,7 +1215,7 @@ class WindowTestsBase extends SystemServiceTestsBase { } } - static class TestStartingWindowOrganizer extends ITaskOrganizer.Stub { + static class TestStartingWindowOrganizer extends WindowOrganizerTests.StubOrganizer { private final ActivityTaskManagerService mAtm; private final WindowManagerService mWMService; private final WindowState.PowerManagerWrapper mPowerManagerWrapper; @@ -1281,24 +1280,9 @@ class WindowTestsBase extends SystemServiceTestsBase { } } } - @Override - public void copySplashScreenView(int taskId) { - } - @Override - public void onTaskAppeared(ActivityManager.RunningTaskInfo info, SurfaceControl leash) { - } - @Override - public void onTaskVanished(ActivityManager.RunningTaskInfo info) { - } - @Override - public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) { - } - @Override - public void onBackPressedOnTaskRoot(ActivityManager.RunningTaskInfo taskInfo) { - } } - static class TestSplitOrganizer extends ITaskOrganizer.Stub { + static class TestSplitOrganizer extends WindowOrganizerTests.StubOrganizer { final ActivityTaskManagerService mService; Task mPrimary; Task mSecondary; @@ -1332,22 +1316,7 @@ class WindowTestsBase extends SystemServiceTestsBase { public void setMoveToSecondaryOnEnter(boolean move) { mMoveToSecondaryOnEnter = move; } - @Override - public void addStartingWindow(StartingWindowInfo info, IBinder appToken) { - } - @Override - public void removeStartingWindow(int taskId, SurfaceControl leash, Rect frame, - boolean playRevealAnimation) { - } - @Override - public void copySplashScreenView(int taskId) { - } - @Override - public void onTaskAppeared(ActivityManager.RunningTaskInfo info, SurfaceControl leash) { - } - @Override - public void onTaskVanished(ActivityManager.RunningTaskInfo info) { - } + @Override public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) { if (mInSplit) { @@ -1374,9 +1343,6 @@ class WindowTestsBase extends SystemServiceTestsBase { } }); } - @Override - public void onBackPressedOnTaskRoot(ActivityManager.RunningTaskInfo taskInfo) { - } } static TestWindowToken createTestWindowToken(int type, DisplayContent dc) {