- Dragging to right to dismiss no working.
- Dragging to left to dismiss closes all apps
- Not able to put app in split after left drag to dismiss
- Pressing back on last activity in one split dismisses both.
- Don't move home task forward when startActivityFromRecents with launch
root set.
Fixes: 176061049
Test: they pass!
Change-Id: Ic1219b747e995ee8833b31433356bd44435118da
This does the basics to adapt recents animation to shell transition.
Replaces startRecentsActivity with a normal startActivity. Once
we make a full switch to shell transitions, we can hopefully remove
it.
Updates the TransitionHandlers in shell and RemoteTransitions to
support attaching a WindowContainerTransaction to a transition's
finish. For recents, this is used to move the "pausing" app (the
one getting animated into the recents carousel) back to the front
if the gesture doesn't go all-the-way into recents.
Bug: 162503077
Test: enable shell transit. launch an app, use gesture to open
recents. use gesture to start going to recents, but then
release early to return to the app.
atest ShellTransitionTests
Change-Id: Ied54f1b2c70c5c129b2f5798117d6d8a85360998
Ability to specify that 2 root tasks are adjcent there by allowing them
to occlude their parent. Similar to how the legacy primary/secondary
split windowing modes are used to occlude their parent.
Also, occlude parent if a child in multi-window mode as a matching
bounds.
Bug: 177166639
Test: AppConfigurationTests#testSplitscreenPortraitAppOrientationRequests
Change-Id: I7d54bfa188700a76b0bca911d2011123c21553ad
This adds IRemoteTransition interface for other processes (like
launcher) to register for playing transition animations.
Then there are 2 supported ways to "register":
1. Is to attach an IRemoteTransition to ActivityOptions. To
support this pathway, requestStartTransition now takes a
TransitionRequest object which can contain whatever info
is needed at the time. One piece of that is the passed-in
IRemoteTransition.
2. Is to register directly with shell (via systemuiproxy for
now) with a TransitionFilter. This filter allows shell
transitions to dispatch a transition to a remote without
need to make queries over binder.
This also hooks up launcher animations by converting the new
transition info to the old RemoteAnimationTargetCompat stuff.
Bug: 169035082
Test: launch app from launcher and observe the icon animation.
atest ShellTransitionTests
Change-Id: I8014a6f46cffda3a48a1a4ae101e2643078f4a14
Allows for bulk reparenting of tasks from one container to another and
also setting launch root in the same call to wm-core.
Bug: 175416931
Test: CTS and split-screen tests pass!
Change-Id: I362f89bc0ccc14e4152a2040a7198fd542ffe4d5
the screen has entered one handed mode
Add a new DisplayArea feature color background layer to fix it.
Bug: 157124724
Test: manual
Test: atest WMShellUnitTests
Test: atest DisplayAreaPolicyBuilderTest
Change-Id: I16beddb182125551621d0083dba2f259140d7b78
Sends the "trigger" taskinfo associated with a transition when
applicable. This can be used by the transitionplayer to make
decisions about how to start and play transitions.
Additionally, TaskInfo is provided in each Change object if
they are tasks. This provides all the information needed to
choose how to handle split.
Shell's transitionplayer makes use of this to add support for
"handlers" to deal with specific transition requests. Currently
a single handler is added to process split-screen transitions.
Bug: 169035082
Test: Use split-screen (enter, exit via swipe up/down,
exit via dismiss top)
Change-Id: I53a03dd85cb260505e66d5d87a34afa4ab1f8cc8
This CL adds flags per-change in a transition so that
extra meta-information (like is-wallpaper, shows-wallpaper,
translucent, starting-window-transfer) can be passed to
shell.
This then treats wallpaper like other activities WRT to
transitions (collect/send to shell) except for a couple
differences:
1. When any window is collected, if it shows wallpaper, then
the wallpaper will be automatically collected too.
2. During TransitionInfo construction, wallpaper containers
are excluded from promotion and root-leash calculation.
This also adds starting-window transfers to the transition
and adds support in the example player.
Bug: 169035082
Test: launch any non-wallpaper app (eg. messages), then press
home-button to bring home to front. The wallpaper should
be included with the home fading-in.
Change-Id: I7ceea614e16c2686f533937db10436f66764255e
Since the display cutout is a type of insets and the display cutout can
be obtained from WindowInsets, it makes sense that InsetsState has the
display cutout instance. In this way, we can send the display cutout to
client via W#insetsChanged instead of W#resized.
This can be a step to remove the class of ClientWindowFrames, and can
also be a step to make client compute its window frame locally.
Fix: 175858810
Bug: 161810301
Test: atest WindowAddRemovePerfTest ImeInsetsSourceConsumerTest
InsetsControllerTest InsetsStateTest ViewRootImplTest
WindowInsetsControllerTests ActivityRecordTests
DisplayPolicyLayoutTests LaunchParamsControllerTests
TaskSnapshotSurfaceTest WindowMetricsActivityTests
WindowMetricsWindowContextTests WindowMetricsTest
WindowFrameTests WindowStateTests WmDisplayCutoutTest
Change-Id: I9a930b1d2f7df3cea2b29629b767a4a5f31bca17
- Add hasImeWindowSurface in TaskSnapShot
- Add InsetsSourceControl#getAndClearSkipAnimationOnce for skiping
IME showing animation once when starting window with IME surface
Bug: 166736352
Bug: 153145997
Test: manual as below steps
0) Enabling developer options -> Quick settings developer tiles ->
Window animation scale to slow down transition animation.
1) Launch an app with focusing an editor to show soft-input
2) Swipe out app task to back to launcher
3) Using quick switch or taping shortcut to bring back the app task
4) Verify that should be no IME showing animation happens during
task transition.
Change-Id: I83ffc03119e01da71ad12f8ad8043cf0730dfd50
- Create TaskDisplayArea in another TaskDisplayArea through
DisplayAreaOrganizer
- Store the TDA organizer in mOrganizersByFeatureIds
Bug: 175136051
Test: atest WmTests:DisplayAreaOrganizerTest
Change-Id: Iafb7737f269e97ac46e6c7be543564f44ef13d97
- Let WMShell able to draw task snapshot surface.
- Create new class StartingWindowInfo to pass needed data from WM to
Shell.
- Rename TaskSnapshotSurface -> TaskSnapshotWindow in WMShell.
- Mirror and modify a new TaskSnapshotWindowTest in WMShell.
Bug: 131727939
Test: atest WindowOrganizerTests ActivityRecordTests
TaskSnapshotWindowTest StartingSurfaceDrawerTests
Test: build and flash, check shell able to show/remove
TaskSnapshotWindow
Change-Id: I70dec8ce2bf1ed7d876657324e51357690c8b396
Allows shell to have information on the parent container for tasks so it
can do things like attach other surfaces to it. E.g. split-screen
divider.
Also, have DisplayAreaOrganizer ctor take an executor so incoming calls
from the binder threads can be posted to the main thread.
Bug: 175416931
Test: They pass!
Change-Id: Ia3d0b978cf43badd8c495b75708aa027fe9a2aa1
Some stuff changed underneath, so we can do a little bit
of housekeeping
Bug: 169035082
Test: nothing changed
Change-Id: I70c668d5760cd6fb9ddfd56720e0b712bd7520fc
Bug: 174932174
Test: I solemnly swear I tested this conflict resolution.
Exempt-From-Owner-Approval: refactoring with team leads buy-in
Change-Id: I9262a08ffc1ccede8e519d0eed90ed2bfcf0232c
As general background, OWNERS files expedite code reviews by helping
code authors quickly find relevant reviewers, and they also ensure
that stakeholders are involved in code changes in their areas.
Some teams under frameworks/base/ have been using OWNERS files
successfully for many years, and we're ready to expand them to cover
more areas. Here's the historical coverage statistics for the last
two years of changes before these new OWNERS changes land:
-- 56% of changes are fully covered by OWNERS
-- 17% of changes are partially covered by OWNERS
-- 25% of changes have no OWNERS coverage
Working closely with team leads, we've now identified clear OWNERS on
a per-package basis, and we're using "include" directives whenever
possible to to simplify future maintenance. With this extensive
effort, we've now improved our coverage as follows:
-- 98% of changes are fully covered by OWNERS
-- 1% of changes are partially covered by OWNERS
-- 1% of changes have no OWNERS coverage
This specific change is automatically generated by a script that
identifies relevant "include" directives.
Bug: 174932174
Test: manual
Exempt-From-Owner-Approval: refactoring with team leads buy-in
Merged-In: I3480ddf2fe7ba3dfb922b459d4da01fa17a2c813
Change-Id: I3480ddf2fe7ba3dfb922b459d4da01fa17a2c813
Turns out this can just be checked when the transition starts.
However, added a flag so that shell knows.
Bug: 162500279
Test: enable shell transitions, lock screen, then open camera and
close camera.
Change-Id: I57703ed8040172496f7091cdae11489df8724c53
- Add @BinderThread/@ShellMainThread/@SysUIMainThread annotations
for some common shell classes and callbacks
- Add mechanism to inject shell-anim/shell-main/sysui-main/etc
executors (removed AnimationThread static instance)
(Note: The shell main thread will still be the sysui main thread)
Bug: 161979899
Test: atest WMShellUnitTests
Change-Id: I4adfeaebe5b79fab7c9451eef7b54fcdf4d8d40a
Allow DA organizer to create new TaskDisplayArea.
Fix: 173455508
Test: atest WmTests:DisplayAreaOrganizerTest
Change-Id: I7d4e88f43ae14561720c6942ca0e9f82dc28e9f6
This adds relative offsets so that animating surfaces can
be reparented with the knowledge of how to position them
within their new parents.
This also creates a "rootleash" which serves as a place for the
transition player to put animating surfaces into where they
can all be siblings. This provides control over z-ordering
during the animation and removes relative cropping
constraints. This rootleash surface is a child of the
deepest container that is an ancestor to all animating
targets. It's layer is picked to be the top-most(z) of the
ancestor's direct children which contains animating
targets.
This then Updates the example transition in shell to use
the rootleash.
Bug: 169035082
Test: atest TransitionTests
Change-Id: If40872138cbb6087b46be4a93c298bad94e88ca1
Previously was just using whatever the legacy transition system
used. However, that system would wait too late (until after
round-trips to the client) in order to prepare some transitions.
Since the new transitions utilize "snapshots", they need to
collect earlier in the lifecycle to work properly.
This first CL deals mostly with activity start/finish and
task to-front/to-back. It also adds some utilities like the
ability to abort a transition (needed because activitystarter
works this way) and the ability to un-ready a transition/
sync transaction to enable trampolines.
This also switches the transit types to the new constants.
Bug: 169035022
Test: Existing tests (TransitionTests) pass
Change-Id: I05f3a2e8e27ccaed7077d648daf033aeabc333f9
Reparent IME container so that it's bounds and config will be updated to
match the RootDisplayArea.
Bug: 156355859
Test: manual: test with dual display policy
Change-Id: Ia9c4f6c73c2a6b8ecbf2cd9f6feb39967ebff80c
- Added a new DisplayArea feature for hide display cutout
- Added a new config for enable/disable hide display cutout
- Resize and shift display areas to exclude the cutout areas.
- Force dark status bar when there is a cutout area at top
- Update bounds & offsets for different rotations.
Bug: 157388722
Test: atest HideDisplayCutoutControllerTest
atest HideDisplayCutoutOrganizerTest
atest WMShellTest
Change-Id: Iad2c8b1eff1ea4523f8a7e362c9e851d8594141c
Mirror PhoneWindowManager#addSplashScreen to StartingSurfaceDrawer,
which make WMShell able to draw the splash screen starting window.
- Use StartingSurfaceController#DEBUG_ENABLE_SHELL_DRAWER to switch
drawer when developing this feature.
- Temporarily put StartingSurfaceDrawer in ShellTaskOrganizer, the
drawer should be controlled by a controller which should be create
while porting ActivityRecord#addStartingWindow to Shell.
Ref doc: go/delegate_starting_window
Bug: 131727939
Test: atest AppWindowTokenTests WindowOrganizerTests ActivityStackTests
Test: atest WMShellTest ShellTaskOrganizerTests
StartingSurfaceDrawerTests
Test: check from winscope that the splash screen window can
attach to/detach from the ActivityRecord.
Change-Id: I6dfc9ff75807e2f9479149d14f219c91a6527393
We are not allowing client to register for feature that has alreay been
registered. Update the doument to make it clear.
Fix: 172027455
Test: just document update
Change-Id: I66823d073aaf65eef044329b6f793f58a0643643
A list of existing DisplayAreas of the given feature are returned when
registering the organizer, and the organizer will not receive
onDisplayAreaAppeared() for these DisplayAreas.
Fix: 162028888
Test: atest WmTests:DisplayAreaOrganizerTest
Test: atest OneHandedDisplayAreaOrganizerTest
Change-Id: I3f4c5921a31c06e5b6c0040397df15cdee6ebcdd
Adding MANAGE_ACTIVITY_TASKS permission as the replacement, but
still grant the deprecated MANAGE_ACTIVITY_STACKS permission for
app compatibility.
Bug: 157876448
Test: presubmit
Change-Id: I894ee66e058b1024a731d3be4b33b69626451f08
Currently some of the information about a task created by createRootTask
is returned with the method and the rest like leash is return in
onTaskAppear. Mixing both async and sync infromation return styles
complicates the mental model for this. So, we will have this be
completely aync for now.
Also, fixed an issue where the windowing mode for organizer created
task was not set correctly before the organizer gets the first task
appear signal.
Bug: 169266958
Test: Split-screen works!
Change-Id: Ia4180d5a42838bf566fbf75f40466dfd8237e0f1
- Rename TransitionType to TransitionOldType, and define a new
TransitionType.
- Calls prepareAppTransition which takes a new TransitionType when app
transition related event happens.
The TransitionOldType and related logic will eventually removed. Until
migration finishes, we keep both.
Bug: 166736358
Test: Pass existing tests, since no new logic is enabled.
Change-Id: I984f68d5ecfae56fbfe7d91babbfddcf34378f6c
- Post callbacks from WM Core on executor.
- Added lock to protect critical sections.
Bug: 171384876
Test: They pass!
Change-Id: Ia1808b66104c2a1e6efb9f43c31e6a3a2f67a952