Before, we call Activity#finish() to finish activities when removing
TaskFragment. This may start a CLOSE transition before the organizer has
a chance to request the actual transition type.
Now, we allow the organizer to finish activities through WCT so that the
operation is atomic and the organizer can request the correct transition
type.
Bug: 240519866
Test: atest WmTests:TaskFragmentOrganizerControllerTest
Test: atest CtsWindowManagerDeviceTestCases:TaskFragmentOrganizerTest
Change-Id: I54671fb2dd34dca952468305429a90d89953de69
We used to only check title/contentDescription/actionIntent of
RemoteAction for uniqueness and ignore the isEnable/shouldShowIcon.
Bug: 234679022
Test: Verify the isEnabled change updates PiP menu
Change-Id: I769507253594b016802b71368ac4a9036f2ad21f
Special "app bubble" that is ordered at the front of the list unless
something else was selected. This is guarded behind the flag to
enable floating tasks, and a new flag to allow floating tasks to be
bubbles.
Test: manual - enable the flags and create a floating task
=> floating task appears in a bubble
Bug: 237678727
Change-Id: Ibf66e8bae07800b5f64598c9b50de7a7995d09e6
When dragging the same app to the other side, we will try to reuse the
task in background instead of directly launching a new instance.
Bug: 241181313
Test: atest WMShellUnitTests
Change-Id: Ifd1329ae0b634d8b27a6960e4500458a09cf69f4
Add back flags to allow start background activities since besides
drag-and-drop, start a shortcut into split also need these permission.
Fix: 243101552
Test: atest StageCoordinatorTests
Test: long press on a shortcut to enter split
Change-Id: I9159734836183c811642dffe1a9faebb2ccc23a5
This CL implements SplitController#set(clear)SplitAttributesCalculator,
and also invokes #computeSplitAttributesForParams
in #computeSplitAttributes to compute the split attributes based
on the current device state.
fixes: 241043111
fixes: 241043028
Bug: 207494880
Test: atest WMJetpackUnitTests
Change-Id: I0e3aadba451f2e585b048bfe2417239ed2f3ba3c
This CL introduces SplitLayout and update bounds computation methods
to support horizontal layout. It also introduces #computeSplitLayout
to compute the current split layout, which always returns the default
splitLayout currently. #computeSplitLayout will extend to consider
SplitLayoutCalculator in later CL.
fixes: 241042437
Bug: 241043028
Bug: 207494880
Test: atest SplitPresenterTest
Change-Id: I037a2b2fa38d05c4fe97e4734cc044148ad15806
This CL enables to update the current top SplitContainer if
there's a folding state change.
Test: manual - following CLs use this CL
Bug: 207494880
Bug: 241043111
Change-Id: Ia4d08d7f71d935101f3aeda94384295db2fa2214
As we add visibility info in TaskFragmentParentInfo, we can update
the parent Task visibility in onTaskFragmentParentInfoChanged.
It can be furthur used in update SplitContainers of visible containers.
Test: atest WMJetpackUnitTests
Bug: 243609832
Bug: 207494880
Change-Id: Iad4b8d46bad75c352fc6a1a732ef796cdbfad4f9
This CL adds a TaskFragmentParentInfo class and extends
onTaskFragmentParentInfoChanged to dispatch display ID and
visibility of the parent Task.
It makes SplitController able to track visibility and display
changes and used to update SplitContainers if there's a folding
state change.
Test: atest SplitControllerTest TaskFragmentOrganizerControllerTest
Bug: 243609832
Bug: 207494880
Change-Id: If3d5db621b20d4005ce0b60e46ac98e1d1e962e3
Because most of the dependent features are not yet ready, revert it back
in T_QPR1.
Bug: 247950006
Test: pass existing
Change-Id: I451cb0d640f935c542a0e79df8c08945d5c4776c
Before, we are checking TransitionInfo.isIndependent, which is true when
the parent is TRANSIT_CHANGE. However, we already animate the change
parent here, so we should skip the child for such case.
Bug: 207070762
Test: manually verify the animation
Change-Id: I3d1342ef27c97b2c8bb7270975f1f089c4462d5b
Creates a new package within shell for floating tasks along with a
basic controller and interfaces for sysui and launcher to use to
manage floating tasks.
A single floating task is allowed at a time and they can only be
created if a sysui flag is turned on.
The floating task is backed by a TaskView, floats above all other
content, and can be moved via a handle at the top of the view. The
view sticks along the left and right edges of the screen, can be
stashed (similar to PIP), and can be removed by dragging to a dismiss
target in the middle of the screen (similar to PIP & bubbles).
The tests included trigger the sysui flag on and off to ensure the
flag behavior (i.e. that you can't create one unless the flag is on).
Test: atest FloatingTaskControllerTest
Bug: 237678727
Change-Id: I490c44685825e14166869b2cf7c2994ee0e30ba7
By our motion specs, drag drop to enter split case
should show split contents after drop rather than
run animation to enter split.
We already have a function for drag drop tell split
screen for logging events. Use this function to set
a flag to skip next time entering animation and reset
it after entering.
Fix: 247108671
Test: manual
Test: pass existing tests
Change-Id: Ie1a511bc4846021a79db726ef7a42590b33b8afb
* Multi-instance reason is kind of a default reason
if the enterSessionId hasn't been set.
* Explicitly set Launcher enter reasons so we don't
rely on Launcher being a default enter reason
Bug: 231369744
Test: Enter split screen from launcher, chrome new
window multi instance, and notification drag.
Logged enter reason when logging to verify.
Change-Id: I7af3b2c2b8c067ca4e6eadff037582d340cad0f5
If the keep clear algorithm is enabled, PiP window will avoid the
keep clear areas and move away from occluding keyboard.
When IME is shown, we trigger the movement right away, for a smoother
experience.
If there is another animation ongoing, we delay moving PiP again, so
that it's more smooth overall.
Finally, we always apply gravity bottom with keep clear areas flag on,
so that it goes back down after IME dismiss.
Test: manually, http://recall/-/blXo3gy66k4fDYh7gFkrpe
Bug: 183746978
Change-Id: I32c52e4b6dd3c083b2168fda6a8b3b13facdac69
Instead of specific transition types, just try to get captions
and if it doesn't exist, make one. As we add more "source"
windowing modes, we'll have to just check more listeners. This
should hold-over until there's a centralized task-state manager.
Also, try to create captions on "warm-starts" (TO_FRONT) so that
apps that are in history before desktop-mode will get a caption.
Bug: 246851689
Bug: 246637353
Test: enable shell-transitions and switch into/out-of desktop
mode with varying sets of warm/cold-start apps
Change-Id: If9e1ad35692b63bf8abd6185b037715b285645c9
Drag notification to launch activity is aborted since the app is not
visible.
This CL adds the background activity allowed flag to make activity
launches successful.
Bug: 237985674
Test: Drag the notification to home. Check the activity is launched.
Change-Id: I6513e7d5d7b17c4a41c32316fd7504fe1bf2e793
In core, windowing mode is being set in TDA with ag/19902621. Thus, set
windowing mode with RooTaskDisplayAreaOrganizer instead of
RootDisplayAreaOrganizer.
Bug: b/241168290
Test: services/tests/wmtests
Change-Id: Ib7e6701839f83ab4125a9630d20203f8c5e415ba
We were tracking active freeform tasks in the RecentTasksController.
This causes some issues when we want to share that information to other
controllers like DesktopModeController.
Move tracking of active tasks to a separate repository that controllers
can query and listen for updates.
Bug: 244348395
Test: atest DesktopModeTaskRepositoryTest RecentTasksControllerTest
Change-Id: I7a460020f6b2133225e292a04f29ae1dd27e964b