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) {