The ApiDemos app triggers onTaskInfoChanged when transitioning from
landscape to portrait PiP due to its implementation (fixed in a separate
CL in same topic). Here we defer applying the TaskInfo received in
onTaskInfoChanged till the entering transition finishes.
Video: http://rcll/aaaaaabFQoRHlzixHdtY/c1n3cqwBydRxDrwxKHqI0H
Bug: 180630127
Test: enter PiP w/ autoEnter from landscape in button navigation
Test: atest WMShellUnitTests:com.android.wm.shell.pip.PipTaskOrganizerTest
Change-Id: I3bc07dbb45a281d5c9b0bbfff7478e57b8944c60
This does 2 things:
1. Leash-setup was originally made asymmetric to handle tasks
switching between organized and non-organized; however, now the
tasks don't do that so we can symmetrize this again.
2. TaskInfoChanged reporting was added to ensureActivityVisibility.
This causes noise as it can repeatedly send unchanged TaskInfos to
shell. The result is that the legacy split organizer will reposition
its surface while it is on an animation leash. To avoid this, keep
track of the last positions and only update it if it changes. This
maintains a contract that as long as the task's actual position
doesn't change (ie. during an animation), the shell won't clobber
changes made by legacy-transition's leashing. This can be cleaned
up once we move to shell transitions where ownership is better
defined.
Bug: 172840531
Test: open 2 apps in split and observe no offset in launcher
Change-Id: I262e3a53b7497192e234d4a8ba215e10ed73a145
This adds:
- push back rotation starting by 5 degrees. Until the user input has
more than 5 degrees of rotation, we assume the user doesn't really want
to rotate it and only want to move/resize, so it's less jarring/jittery.
- Dampen the rotation once the user rotates past a certain amount.
Bug: 181068706
Test: Manual.
Change-Id: I0fd95d9cb2ad2eff053ce92817af22513d11cc62
Makes the following changes:
1. Adds a boolean visible parameter to the onTaskChanged method of
SplitScreenListener to allow the launcher to determine which task is
on top of a stage
2. Allows the launcher to specify a fill-in intent when asking to open
a PendingIntent on the main or side stages.
3. Allows the launcher to ask to remove a task from the side stage.
Bug: 179176511
Test: manually tested against the foldable taskbar launcher.
Change-Id: I9fa530f546af58779ccf71d0753d9b6d3479fd0b
Per go/cdd-proposal-pip-size, the absolute minimum size when overridden
should be 48dp.
Bug: 174302616
Test: atest PinnedStackTests#testEnterPipWithTinyMinimalSize \
WMShellUnitTests:com.android.wm.shell.pip
Merged-In: I2f0dfd9a79049aaf696fde8703994deaecce63f5
Change-Id: I2f0dfd9a79049aaf696fde8703994deaecce63f5
This is mostly to clean-up CL diffs so its easier to tell
what is changing. The main change here is replacing naked
parint == null checks with TransitionInfo.isIndependent() which
can do extra logic to handle cases where, even though a change
has a parent, it might be animating independently with in it.
The easiest example is display rotating while an app is opening.
This also fixes a small bug when removing a non-visible task.
Bug: 179270750
Test: atest TransitionTests
Change-Id: Ibd72b0721f33602b26bcc5c7060fc959aed04377
Before, the size compat UI is reparent to Task with its original layer
(likely 1), which may not be the higheset layer when the Task contains
more than one children.
Fix: 181541449
Bug: 178327644
Test: verify with launching a non-resizable activity from another
Change-Id: I9e812ca8c0c1fd5b93a6e074a5e4df164c8fa03b
- We should separate the construction from the initialization
and make sure everything is initialized in order on the shell
main thread.
Bug: 181262334
Test: atest PinnedStackTests
Change-Id: I4f52864972146c7440794625e1de370ecea75006
- The flag allows us to remove the tasks which are managed by
TaskOrganizer when TO dies.
Bug: 179676966
Test: Launch a Bubble, kill SysUi and check if the Bubble remains in
ActivityStack.
Change-Id: Ie0ccafd2b4b0393b777b69b7fb70c0ea74f95963
Share the assertions between close with dismiss and close with swipe.
Bug: 172037252
Test: atest WMShellFlickerTests:PipCloseWithSwipe WMShellFlickerTests:PipCloseWithDismissButton
Change-Id: I03904f1de78d3204f9bdd0d6207ec4947f1404dd
This change includes a series of API review changes. The most
significant update is the addition of cancellation signals to
API methods where needed.
Renames some internal classes and interfaces to support the
API changes and to simplify tests and improve quality.
Test: numerous presubmits
Bug: 175830670
CTS-Coverage-Bug: 180419562
Change-Id: I9b1b950a2779fc902ecf4d6394e3c35171926700
Fixes: 172490423
Test: send updates on left/right side in portrait/landscape
=> see that flyout is positioned correctly
Change-Id: I3dd84f467f17e8429a0ba2cc23f45e8c89474557
Fixes: 180045233
Test: select different bubble while expanded, collapse stack
=> see that newly selected bubble is on top of stack
=> no weird animations like in b/178499353
Change-Id: I6d95763a4dd08fd8d1e30dd93131ff27b4fd7c2c
Redirect IME inset control to wm shell during multi-window split. And
register IME position listener to make divider bar non-interactive while
IME showing.
Bug: 179262787
Test: manual check
Test: atest WMShellUnitTests
Change-Id: Ia83a29c823962221aedb1cc317928f6b4b7ddcae
Fixes included in this change
- PiP bounces back to fullscreen. The animation direction is not cleaned
up after animation finishes and when display rotation callback
happens and calls into PipTaskOrganizer#onMovementBoundsChanged, it
accidentally invokes the onTaskVanished. Therefore, this does not
happen on the first try but following attempts.
- PiP window offsets to the bottom caused by duplicated display changed
callbacks, bail early if we know for sure the DisplayLayout objects
are identical. Also, when display rotation callback happens, the
PipBoundsState#getNormalBounds is still in landscape though the
internal rotation has been set in PipController#startSwipePipToHome.
Known issue
- PiP window flickers at the end of the transition, will track in
different bug.
Video: http://rcll/aaaaaabFQoRHlzixHdtY/hAdwMhKMaYTylRcnW24Utg
Bug: 179721427
Bug: 179718773
Test: repeatedly enter PiP from landscape with autoEnterPip, see video
Change-Id: I77c6f441563bc54720b9ef2952526691c495a777