diff options
author | Wale Ogunwale <ogunwale@google.com> | 2020-03-21 22:27:35 -0700 |
---|---|---|
committer | Wale Ogunwale <ogunwale@google.com> | 2020-03-23 08:59:18 -0700 |
commit | 568f9f41c63f34a74c4e9e225ace29b124277a81 (patch) | |
tree | c74449a934d6c638dc0a595c686ce990ac20fa92 /tests/TaskOrganizerTest | |
parent | 5794658be028d9aedb2936ec737a3a0f4c5d2ebc (diff) |
Introduce WindowOrganizer
WM currently only allows the organization of tasks, however we will soon
be allowing the organization of DisplayAreas. To help with the code
structure, we are introducing WindowOrganizer interface which will
contain common APIs for all types of windows organizers (e.g.
applyTransaction) and also be the interfaece for getting the controller
for other organizers.
Test: they pass!
Bug: 147406652
Bug: 152113464
Bug: 152117221
Change-Id: Id2797b288ce92430206c25345d60e7b0e3be98c8
Diffstat (limited to 'tests/TaskOrganizerTest')
-rw-r--r-- | tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java | 40 | ||||
-rw-r--r-- | tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java | 12 |
2 files changed, 30 insertions, 22 deletions
diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java index cb75c8ba5873..f186ed3b75cf 100644 --- a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java +++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java @@ -17,9 +17,9 @@ package com.android.test.taskembed; import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; +import static android.window.WindowOrganizer.TaskOrganizer; import android.app.ActivityManager; -import android.app.ActivityTaskManager; import android.app.Activity; import android.app.ActivityOptions; import android.content.Context; @@ -27,6 +27,8 @@ 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; @@ -34,8 +36,10 @@ import android.view.SurfaceHolder; import android.view.View; import android.view.ViewGroup; import android.window.ITaskOrganizer; +import android.window.IWindowContainerTransactionCallback; import android.window.WindowContainerTransaction; import android.widget.LinearLayout; +import android.window.WindowOrganizer; public class TaskOrganizerMultiWindowTest extends Activity { class SplitLayout extends LinearLayout implements View.OnTouchListener { @@ -112,8 +116,7 @@ public class TaskOrganizerMultiWindowTest extends Activity { final WindowContainerTransaction wct = new WindowContainerTransaction(); wct.setBounds(mWc, new Rect(0, 0, width, height)); try { - ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct, - mOrganizer); + WindowOrganizer.applySyncTransaction(wct, mOrganizer.mTransactionCallback); } catch (Exception e) { // Oh well } @@ -127,6 +130,25 @@ public class TaskOrganizerMultiWindowTest extends Activity { class Organizer extends ITaskOrganizer.Stub { private int receivedTransactions = 0; SurfaceControl.Transaction mergedTransaction = new SurfaceControl.Transaction(); + IWindowContainerTransactionCallback mTransactionCallback = + new IWindowContainerTransactionCallback() { + @Override + public void transactionReady(int id, SurfaceControl.Transaction t) + throws RemoteException { + mergedTransaction.merge(t); + receivedTransactions++; + if (receivedTransactions == 2) { + mergedTransaction.apply(); + receivedTransactions = 0; + } + } + + @Override + public IBinder asBinder() { + return null; + } + }; + @Override public void taskAppeared(ActivityManager.RunningTaskInfo ti) { if (!gotFirstTask) { @@ -138,14 +160,6 @@ public class TaskOrganizerMultiWindowTest extends Activity { } public void taskVanished(ActivityManager.RunningTaskInfo ti) { } - public void transactionReady(int id, SurfaceControl.Transaction t) { - mergedTransaction.merge(t); - receivedTransactions++; - if (receivedTransactions == 2) { - mergedTransaction.apply(); - receivedTransactions = 0; - } - } @Override public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) { } @@ -158,9 +172,7 @@ public class TaskOrganizerMultiWindowTest extends Activity { super.onCreate(savedInstanceState); try { - ActivityTaskManager.getTaskOrganizerController().registerTaskOrganizer(mOrganizer, - WINDOWING_MODE_MULTI_WINDOW); - + TaskOrganizer.registerOrganizer(mOrganizer, WINDOWING_MODE_MULTI_WINDOW); } catch (Exception e) { } diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java index 177841d97ff5..a2f40dc0fd6f 100644 --- a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java +++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java @@ -17,19 +17,19 @@ package com.android.test.taskembed; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; +import static android.window.WindowOrganizer.TaskOrganizer; import android.app.ActivityManager; -import android.app.ActivityTaskManager; import android.app.Service; import android.content.Intent; import android.graphics.Rect; import android.os.IBinder; -import android.view.SurfaceControl; import android.view.ViewGroup; import android.window.ITaskOrganizer; import android.window.WindowContainerTransaction; import android.view.WindowManager; import android.widget.FrameLayout; +import android.window.WindowOrganizer; public class TaskOrganizerPipTest extends Service { static final int PIP_WIDTH = 640; @@ -44,14 +44,12 @@ public class TaskOrganizerPipTest extends Service { final WindowContainerTransaction wct = new WindowContainerTransaction(); wct.scheduleFinishEnterPip(ti.token, new Rect(0, 0, PIP_WIDTH, PIP_HEIGHT)); try { - ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct, null); + WindowOrganizer.applyTransaction(wct); } catch (Exception e) { } } public void taskVanished(ActivityManager.RunningTaskInfo ti) { } - public void transactionReady(int id, SurfaceControl.Transaction t) { - } public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) { } } @@ -68,9 +66,7 @@ public class TaskOrganizerPipTest extends Service { super.onCreate(); try { - ActivityTaskManager.getTaskOrganizerController().registerTaskOrganizer(mOrganizer, - WINDOWING_MODE_PINNED); - + TaskOrganizer.registerOrganizer(mOrganizer, WINDOWING_MODE_PINNED); } catch (Exception e) { } |