From da7b3c286be7dc2d91f5476d8e2ce0f36799b42f Mon Sep 17 00:00:00 2001 From: chaviw Date: Fri, 24 Apr 2020 11:25:08 -0700 Subject: Re-parent children when Organized Window is no longer controlled When an Organized Window is no longer controlled by a specific client, we create a new SurfaceControl and reparent the children so the client no longer has control over the WindowContainer Test: Pip, TaskOrganizerMultiWindowTest Bug: 154558563 Change-Id: I76e0da115fd48f982a82bd6e2351e7171934acfc --- .../test/taskembed/TaskOrganizerMultiWindowTest.java | 15 ++++++++------- .../com/android/test/taskembed/TaskOrganizerPipTest.java | 5 +++-- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'tests/TaskOrganizerTest') diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java index 86c3fa0fe034..da4afec8a172 100644 --- a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java +++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java @@ -18,29 +18,24 @@ package com.android.test.taskembed; import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; -import android.app.ActivityManager; import android.app.Activity; +import android.app.ActivityManager; import android.app.ActivityOptions; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.Rect; import android.os.Bundle; -import android.os.IBinder; -import android.os.RemoteException; import android.view.Gravity; import android.view.MotionEvent; import android.view.SurfaceControl; import android.view.SurfaceHolder; import android.view.View; import android.view.ViewGroup; -import android.window.ITaskOrganizer; -import android.window.IWindowContainerTransactionCallback; +import android.widget.LinearLayout; import android.window.TaskOrganizer; import android.window.WindowContainerTransaction; -import android.widget.LinearLayout; import android.window.WindowContainerTransactionCallback; -import android.window.WindowOrganizer; public class TaskOrganizerMultiWindowTest extends Activity { class SplitLayout extends LinearLayout implements View.OnTouchListener { @@ -173,6 +168,12 @@ public class TaskOrganizerMultiWindowTest extends Activity { setContentView(splitView); } + @Override + protected void onDestroy() { + super.onDestroy(); + mOrganizer.unregisterOrganizer(); + } + private void addFlags(Intent intent) { intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION); } diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java index 2a1aa2e1de65..0a7a6d56249f 100644 --- a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java +++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java @@ -24,10 +24,10 @@ import android.content.Intent; import android.graphics.Rect; import android.os.IBinder; import android.view.ViewGroup; -import android.window.TaskOrganizer; -import android.window.WindowContainerTransaction; import android.view.WindowManager; import android.widget.FrameLayout; +import android.window.TaskOrganizer; +import android.window.WindowContainerTransaction; public class TaskOrganizerPipTest extends Service { static final int PIP_WIDTH = 640; @@ -76,5 +76,6 @@ public class TaskOrganizerPipTest extends Service { @Override public void onDestroy() { super.onDestroy(); + mOrganizer.unregisterOrganizer(); } } -- cgit v1.2.3-59-g8ed1b