summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Carr <racarr@google.com>2020-03-10 12:50:30 -0700
committerRob Carr <racarr@google.com>2020-03-10 14:34:51 -0700
commitab17978c713a40a8b028a010376271a1ebbc3fa8 (patch)
tree34d7f83904aee7e06202e54860b48d68deb00f14
parentd2d3e4d92dad44ffb736b60e274492ca5daec18d (diff)
TaskOrganizer: Send newest TaskInfo in taskVanished
When leaving PIP SysUI might need to know the target mode and bounds to animate correctly. taskInfoChanged may not have yet been dispatched though. A simple solution is to provide the info in TaskVanished. Bug: 150716630 Test: Existing tests pass Change-Id: I871f745198d6b4bc92cc5701128c5489c154f4f9
-rw-r--r--core/java/android/view/ITaskOrganizer.aidl2
-rw-r--r--packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/stackdivider/SplitScreenTaskOrganizer.java2
-rw-r--r--services/core/java/com/android/server/wm/TaskOrganizerController.java2
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java2
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java8
-rw-r--r--tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java2
-rw-r--r--tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java2
8 files changed, 12 insertions, 11 deletions
diff --git a/core/java/android/view/ITaskOrganizer.aidl b/core/java/android/view/ITaskOrganizer.aidl
index 5ccdd30a9d97..565f694b8a55 100644
--- a/core/java/android/view/ITaskOrganizer.aidl
+++ b/core/java/android/view/ITaskOrganizer.aidl
@@ -27,7 +27,7 @@ import android.app.ActivityManager;
*/
oneway interface ITaskOrganizer {
void taskAppeared(in ActivityManager.RunningTaskInfo taskInfo);
- void taskVanished(in IWindowContainer container);
+ void taskVanished(in ActivityManager.RunningTaskInfo taskInfo);
/**
* Called upon completion of
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
index 3933af00a47a..8ccbcfcad6f7 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
@@ -271,7 +271,8 @@ public class PipTaskOrganizer extends ITaskOrganizer.Stub {
}
@Override
- public void taskVanished(IWindowContainer token) {
+ public void taskVanished(ActivityManager.RunningTaskInfo info) {
+ IWindowContainer token = info.token;
Objects.requireNonNull(token, "Requires valid IWindowContainer");
if (token.asBinder() != mToken.asBinder()) {
Log.wtf(TAG, "Unrecognized token: " + token);
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/SplitScreenTaskOrganizer.java b/packages/SystemUI/src/com/android/systemui/stackdivider/SplitScreenTaskOrganizer.java
index 5cc87996269b..48ea4aef9968 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/SplitScreenTaskOrganizer.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/SplitScreenTaskOrganizer.java
@@ -88,7 +88,7 @@ class SplitScreenTaskOrganizer extends ITaskOrganizer.Stub {
}
@Override
- public void taskVanished(IWindowContainer container) {
+ public void taskVanished(RunningTaskInfo taskInfo) {
}
@Override
diff --git a/services/core/java/com/android/server/wm/TaskOrganizerController.java b/services/core/java/com/android/server/wm/TaskOrganizerController.java
index b38c18bf15f3..4093fe5cb288 100644
--- a/services/core/java/com/android/server/wm/TaskOrganizerController.java
+++ b/services/core/java/com/android/server/wm/TaskOrganizerController.java
@@ -128,7 +128,7 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub
void removeTask(Task t) {
try {
- mOrganizer.taskVanished(t.getRemoteToken());
+ mOrganizer.taskVanished(t.getTaskInfo());
} catch (Exception e) {
Slog.e(TAG, "Exception sending taskVanished callback" + e);
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
index 049c8e1e5746..9f3bf02384b0 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
@@ -1019,7 +1019,7 @@ public class ActivityStarterTests extends ActivityTestsBase {
public void taskAppeared(ActivityManager.RunningTaskInfo info) {
}
@Override
- public void taskVanished(IWindowContainer wc) {
+ public void taskVanished(ActivityManager.RunningTaskInfo info) {
}
@Override
public void transactionReady(int id, SurfaceControl.Transaction t) {
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
index 48a583cad7a3..53a3682a1efa 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
@@ -129,7 +129,7 @@ public class TaskOrganizerTests extends WindowTestsBase {
final Task task = createTaskInStack(stack, 0 /* userId */);
final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
final ITaskOrganizer organizer2 = registerMockOrganizer(WINDOWING_MODE_PINNED);
-
+
stack.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
verify(organizer).taskAppeared(any());
stack.setWindowingMode(WINDOWING_MODE_PINNED);
@@ -345,7 +345,7 @@ public class TaskOrganizerTests extends WindowTestsBase {
public void taskAppeared(RunningTaskInfo taskInfo) { }
@Override
- public void taskVanished(IWindowContainer container) { }
+ public void taskVanished(RunningTaskInfo container) { }
@Override
public void transactionReady(int id, SurfaceControl.Transaction t) { }
@@ -399,7 +399,7 @@ public class TaskOrganizerTests extends WindowTestsBase {
public void taskAppeared(RunningTaskInfo taskInfo) { }
@Override
- public void taskVanished(IWindowContainer container) { }
+ public void taskVanished(RunningTaskInfo container) { }
@Override
public void transactionReady(int id, SurfaceControl.Transaction t) { }
@@ -539,7 +539,7 @@ public class TaskOrganizerTests extends WindowTestsBase {
mInfo = info;
}
@Override
- public void taskVanished(IWindowContainer wc) {
+ public void taskVanished(RunningTaskInfo info) {
}
@Override
public void transactionReady(int id, SurfaceControl.Transaction t) {
diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java
index 8f7bebb8a9e4..6eb4587c8b55 100644
--- a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java
+++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java
@@ -139,7 +139,7 @@ public class TaskOrganizerMultiWindowTest extends Activity {
mTaskView2.reparentTask(ti.token);
}
}
- public void taskVanished(IWindowContainer wc) {
+ public void taskVanished(ActivityManager.RunningTaskInfo ti) {
}
public void transactionReady(int id, SurfaceControl.Transaction t) {
mergedTransaction.merge(t);
diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java
index bd17751f183e..ade5c2e21fd9 100644
--- a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java
+++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java
@@ -49,7 +49,7 @@ public class TaskOrganizerPipTest extends Service {
} catch (Exception e) {
}
}
- public void taskVanished(IWindowContainer wc) {
+ public void taskVanished(ActivityManager.RunningTaskInfo ti) {
}
public void transactionReady(int id, SurfaceControl.Transaction t) {
}