Commit Graph

23 Commits

Author SHA1 Message Date
Chavi Weingarten
afab14ff95 Merge "Remove getLeash from WindowContainerToken" into rvc-dev am: 5a4a5682a2 am: e00fbbe6c4 am: ecccd3de1e am: 906d4d2c1f
Change-Id: Ie01960a15f0134abc4e02a73ba5cf629d930ccd5
2020-04-30 00:46:44 +00:00
Chavi Weingarten
324bf54ea2 Merge "Re-parent children when Organized Window is no longer controlled" into rvc-dev am: 69722e1b03 am: 4555daa331 am: 4401021d81 am: b715429ab5
Change-Id: Ib8c0f4b1d249e5124b1992ce6840b89977c2f755
2020-04-29 21:34:15 +00:00
chaviw
7de50009a3 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
2020-04-29 09:36:35 -07:00
chaviw
da7b3c286b 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
2020-04-29 09:36:34 -07:00
Rob Carr
1417334c2d Merge "ViewRootImpl: Pass buffer to finishDrawing when requested" into rvc-dev am: 0a57530be1 am: afe03f9f46 am: f8664ea3d3 am: b58b579aa2
Change-Id: I59966bd101a15059a29e5dae84f9c5d32334b618
2020-04-09 21:48:59 +00:00
Robert Carr
6cc720b70a ViewRootImpl: Pass buffer to finishDrawing when requested
As the final enabler for the BLASTSyncEngine, we add a new relayout
result BLAST_SYNC. If the WindowState is participating in a BLAST sync
during relayout we return it to the client. If we return it to the
client the client will direct it's next draw in to a BLAST transaction
and report that transaction via finishDrawing. You can now observe
the BLASTSyncEngine working end to end in TaskOrganizerMultiWindowTests.
We do a few small clean-ups in TaskOrganizerMultiWindowTest while we
are there.

Bug: 153561718
Test: TaskOrganizerMultiWindowTests
Change-Id: I719b731350b942aafa444a33972aaef8973422ea
2020-04-08 11:18:09 -07:00
Wale Ogunwale
c041d6cab3 Merge "Add TestApi interfaces for window organizers" into rvc-dev am: 1df5eb0130 am: d5c303746b am: f8385e93f1 am: 79bbf1a611
Change-Id: I026e9bfd3e26f34026509b5fa69a9f1a6e585995
2020-04-01 14:34:42 +00:00
Wale Ogunwale
adf116ec95 Add TestApi interfaces for window organizers
Enables testing the API surfaces from CTS.

Bug: 149338177
Test: they pass!
Change-Id: I7e1f2852585a10c20d299bd87e9a87f828d06d6a
2020-04-01 13:25:23 +00:00
Winson Chung
7b659198e1 Merge "Add task organizer based task embedder" into rvc-dev am: a531f922c9 am: 885c9c1431 am: 2fd7d58492 am: 00ec165899
Change-Id: Ica96281039f8b40dc2877d60cca081c4cfe94530
2020-03-31 22:06:16 +00:00
Winson Chung
a1f869d10e Add task organizer based task embedder
- Split TaskEmbedder into its current VirtualDisplay implementation
  and an implementation that uses task org to create and manage
  the task
- Use the task org embedder implementation in separate bubble task view
- Skip task org tasks from triggering task resizing
- Add task org callback for back press on task root if requested

Bug: 148977538
Test: atest CtsWindowManagerDeviceTestCases:ActivityViewTest
Test: atest WmTests:TaskOrganizerTests
Change-Id: Id422bb2547197c617f914ed7cf5085e02a1c3fb5
2020-03-30 23:29:08 +00:00
TreeHugger Robot
936f356077 Merge "Introduce DisplayArea organizer" into rvc-dev am: 7cf2aeac02 am: 6a252128b0 am: 7c418f660e am: 88b70ebdbe
Change-Id: Iab8c0dd0341bb592387738d26df63542af4130fe
2020-03-24 16:25:01 +00:00
Wale Ogunwale
dec3408b50 Introduce DisplayArea organizer
Similar to task organizer this allows for the organization of display
areas.

Test: they pass!
Bug: 147406652
Bug: 152113464
Bug: 152117221
Change-Id: Id0dbec20f0aedc5162f4ff7be81b2dafb0c8f3c9
2020-03-24 06:30:13 -07:00
Wale Ogunwale
1966d1856e Merge "Introduce WindowOrganizer" into rvc-dev am: e5cfca4454 am: b5f6daab3f am: ef812e4b33 am: b5d8518fd4
Change-Id: I6bf5ee5afce3aae36945d726d29f581f0ef25fbe
2020-03-24 03:26:41 +00:00
Ashwini Oruganti
e989c5e734 Merge "Add an exported flag in manifest" 2020-03-23 18:38:40 +00:00
Ashwini Oruganti
e178c24db3 Add an exported flag in manifest
With b/150232615, we will need an explicit value set for the exported
flag when intent filters are present, as the default behavior is
changing for S+. This change adds the value reflecting the previous
default to the manifest.

These changes were made using an automated tool, the xml file may be
reformatted slightly creating a larger diff. The only "real" change is
the addition of "android:exported" to activities, services, and
receivers that have one or more intent-filters.

Bug: 150232615
Test: TH
Exempt-From-Owner-Approval: mechanical refactoring
Change-Id: I4457ff2bd466a4c56fed2570e110f251031c2385
2020-03-23 18:34:09 +00:00
Wale Ogunwale
568f9f41c6 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
2020-03-23 08:59:18 -07:00
Wale Ogunwale
5794658be0 Move some window related files to android.window package
Window management files on the client side have normally been dumped in
either android.view or android.app package. This CL starts to
centralized them in android.window package so there is better
separation.

Test: they pass
Bug: 147406652
Bug: 152113464
Bug: 152117221
Change-Id: I4d64bd256e9b3581af0ccf9396f7dd2454132719
2020-03-22 09:47:43 -07:00
Rob Carr
ab17978c71 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
2020-03-10 14:34:51 -07:00
Robert Carr
02524d097c TaskOrganizer: Add BLASTSyncEngine example
Add support to the TaskOrganizerMultiWindowTest for resizing
two tasks synchronously.

Bug: 139371701
Test: TaskOrganizerMultiWindowTest
Change-Id: I57fabf9a32fd02d461acd0e6ef4265df844eb2b7
2020-02-12 14:08:11 -08:00
Robert Carr
e10ee3d2eb Introduce BLASTSyncEngine
Test: wmtests/TaskOrganizerTests, TaskOrganizerTests demo apps
Change-Id: I82c2e184e93782549bc4f78e0986a026d7ef8d03
2020-02-06 12:25:51 -08:00
Evan Rosky
0037e5f901 Add TaskTile concept to Window Manager
This adds the concept of a TaskTile to the WM. Due to
complexities in the current Stack/Task relationship, tiles
can't actually be part of the hierarchy, so the Stack
level has to internally resolve configurations as if they
were.

The TaskTiles themselves *are* ActivityStacks though from
the client/sysui perspective, though.

Bug: 133381284
Test: Added TaskTileTests
Change-Id: I9baad5ec899b4fab323a36c1533a40081727a2f7
2020-01-31 10:26:45 -08:00
Robert Carr
00c0dbe2cb TaskOrganizer: Add WINDOWING_MODE_MULTI_WINDOW support
Also add small test activity.

Bug: 139371701
Test: TaskOrganizerTests. TaskOrganizerMultiWindowTest.
Change-Id: I0bea25a5c8eef25fba88a0d056ef464035749a59
2020-01-30 12:58:32 -08:00
Robert Carr
8a2f913ac4 Introduce TaskOrganizer
A first take at the TaskOrganizer API for allowing SysUI to control task presentation.
In this CL we introduce the first two primitives:
        1. The interface itself for implementation by SysUI
        2. Support for organizing a given windowing mode (but atm really only PIP)
We include a sample app that manages the PIP from an APPLICATION_OVERLAY window.

Bug: 139371701
Test: wmtests/TaskOrganizerTests. TaskOrganizerPipTest
Change-Id: I44a8ed311bc5f06285bba2c6ff3b37a7d19a9190
2020-01-09 13:04:18 -08:00