diff options
| author | chaviw <chaviw@google.com> | 2020-04-27 12:33:30 -0700 |
|---|---|---|
| committer | chaviw <chaviw@google.com> | 2020-04-29 09:36:35 -0700 |
| commit | 7de50009a336fc42c81ee4ff5407a059b1d51596 (patch) | |
| tree | 2fb5220420e6c56fb40fcfffcfd037d352ef5bb9 /core/java/android/window/TaskOrganizerTaskEmbedder.java | |
| parent | da7b3c286be7dc2d91f5476d8e2ce0f36799b42f (diff) | |
Remove getLeash from WindowContainerToken
If the WindowContainer was revoked from a registered organizer, the
client could still call getLeash to system server and control the leash
for the WindowContainer. Instead, pass the leash back to the client in
onTaskAppeared and onDisplayAreaAppeared. Once the WindowContainer is
revoked from the client, the leash will reference the old
WindowContainer SurfaceControl and will not be able to control the
WindowContainer anymore.
Test: Split screen
Test: DisplayAreaOrganizerTest
Test: WindowOrganizerTest
Bug: 154558563
Change-Id: I1f6eb987a2a3fecfef912a3009ee52989c85ff4b
Diffstat (limited to 'core/java/android/window/TaskOrganizerTaskEmbedder.java')
| -rw-r--r-- | core/java/android/window/TaskOrganizerTaskEmbedder.java | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/core/java/android/window/TaskOrganizerTaskEmbedder.java b/core/java/android/window/TaskOrganizerTaskEmbedder.java index b63741ec69c4..2fb46509f337 100644 --- a/core/java/android/window/TaskOrganizerTaskEmbedder.java +++ b/core/java/android/window/TaskOrganizerTaskEmbedder.java @@ -21,7 +21,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; import android.app.ActivityManager; import android.app.ActivityOptions; -import android.app.TaskStackListener; import android.content.Context; import android.graphics.Rect; import android.util.Log; @@ -215,14 +214,14 @@ public class TaskOrganizerTaskEmbedder extends TaskEmbedder { private class TaskOrganizerImpl extends TaskOrganizer { @Override - public void onTaskAppeared(ActivityManager.RunningTaskInfo taskInfo) { + public void onTaskAppeared(ActivityManager.RunningTaskInfo taskInfo, SurfaceControl leash) { if (DEBUG) { log("taskAppeared: " + taskInfo.taskId); } mTaskInfo = taskInfo; mTaskToken = taskInfo.token; - mTaskLeash = mTaskToken.getLeash(); + mTaskLeash = leash; mTransaction.reparent(mTaskLeash, mSurfaceControl) .show(mTaskLeash) .show(mSurfaceControl) |
