trigger One-Handed mode many times quickly in a short time
To prevent entering or exiting OHM quilcky in a shot time.
Bug: 185304468
Test: manual
Test: atest WMShellUnitTests
Change-Id: Ibc5ade564da241d5871b3b037c97bd68a6b03a5d
- Pass TaskSnapshot to Shell directly.
- Parallel process: create a splash screen worker thread to create the
splash screen view and pre-draw the icon drawable, and use splash
screen thread to do stuff about window's lifecycle like add/remove
window. We don't use shell main thread here so the starting window
won't blocking any task execute on main thread.
- Trigger addStartingWindow directly when startActivity, also
removeStartingWindow directly without post the animation thread.
- Do not defer addStartingWindow for prepare surface, on the contrast
it should be execute before prepare surface.
- Remove ActivityRecordTests#testAddRemoveRace, it wasn't been test as
expected because in original logic the add and remove starting window
are post to animation thread, so the test was actually testing on
handler#postAtFrontOfQueue and handler#removeCallbacks.
For now it will only cause OutOfMemoryError.
Bug: 183665220
Bug: 182836977
Test: atest StartingSurfaceDrawerTests SplashscreenTests
Change-Id: Ie9a529c7d81f07f923394eb69944518f3e9010ce
Previously Winscope considered only the `isVisible` property to determine if the window was visible or not. This failed in cases such as `com.google.android.googlequicksearchbox/android.app.ContextImpl` when launching apps, where `isVisible=true` and `alpha=0`
Bug: 181630910
Bug: 182720234
Test: atest FlickerTests WMShellFlickerTests
Change-Id: I75fab0c6de02e43265002986901353f8e230baa5
To provide a new Interpolator formula for One-Handed transition
animation.
Bug: 178355565
Test: manual
Test: atest WMShellUnitTests
Change-Id: I78d998569618dc52c8b6fce6cb4a71f13ad01ba8
Previously some assertions didn't run on the whole trace because of a missing `forAllEntries` statement in the library. When activating this statement these tests fail and should be disabled.
Test: atest FlickerTests WMShellFlickerTests
Bug: 183547024
Bug: 181630910
Change-Id: I28f92e2d9de1a5465a4da5971c438bc4c0b311f9
We are enabling a new lint check where the min sdk != compile sdk.
It has produced a lot of errors and adding the baseline file(s)
allows us to continue work without introducing more problems.
Bug: 150847901
Test: m lint-check
Change-Id: Ide8a8fe80ba31396f23853ab266afcbcc33af9a6
Rotating the display while the PIP task had just appeared caused
a race between the alpha entry animation starting and the rotation
controller handling that changes the PIP bounds, resulting in
a bounds mismatch between the surface that was animated and the
PipBoundsState.mBounds
This CL tracks whether we're still waiting for the alpha entry
animation to start when a rotation callback comes in, and
restarts the fade in after adjusting to the rotation.
Bug: 184664409
Test: In gesure nav, open YT go to fullscreen landscape mode and
launch another an activity from a notification - verify PIP fades
in and its bounds match the ones in PipBoundsState
Change-Id: I339d5088fb5f23f08fe8d548b9d02a34c16779d6
The method was ignored before and now should be activated to enable 3 button mode. Some tests become flaky in 3-button mode and should be disabled for the moment.
Test: atest FlickerTests WMShellFlickerTests
Bug: 162925924
Change-Id: Ife24ad85c302da6fc193f1a5a226722cfed51b2b
The methods setTaskWindowingMode and resizePrimarySplitScreen
can be replaced with the methods of WindowContainerTransaction
and TaskOrganizer.
Bug: 174040691
Test: CtsWindowManagerDeviceTestCases
Change-Id: I975457887a87464456675010c7531738fa5f62f4
This makes StageCoordinator implement the TransitionHandler
interface.
In general, this currently expects 'enter' transitions to
contain 2 tasks (one in each split). The current UX is undefined
when one only one of the splits is occupied, so for now it will
throw an exception if that case is hit.
There is a split-screen API called startTasks which takes a list
of tasks (currently only supports 2) and associated options and
creates a transition to both enter split-screen and launch those
tasks into their respective stages.
These are the currently accounted-for entrypoints into
the handler interface:
- Core-initiated (handleRequest)
- in split: trigger=HOME that is opening -> full dismiss.
- in split: trigger=task with a stage parent that is last closing in
that stage -> dismiss with other stage onTop
- NOT split: trigger=task with stage parent -> exception
- Shell-initiated
- NOT split: startTasks -> enter split with 2 tasks
- in split: snap-to-dismiss -> dismiss with other stage on top
Bug: 182002789
Test: atest SplitTransitionTests
Or use the experimental pair-launch split-screen and observe
protologs to see clean transition-infos.
Change-Id: I4f4dd431ad5642cf98b4a01c32eb1d09e5b9a11e
Rename PlaybackState#isActiveState() to #isActive()
and make it public.
This is according to API review.
This CL also includes STATE_SKIPPING_TO_QUEUE_ITEM
as an active playback state.
Bug: 184612506
Test: build successful && atest PlaybackStateTest
Change-Id: I4757038d63adc3478f19f177265ebd198fb5f424
Apps can't actually suppress the bubble, that is only
done by the system so that method is @hide.
Did a similar thing for setSuppressNotification for
consistency.
Test: atest NotificationManagerTest (see CTS CL)
Bug: 184204395
Change-Id: Ia17453507daf5bba4408bd6b386efa225c3051dd
change though one-handed mode is off
Add more condition check when Talk back announce one-handed mode
related.
Bug: 182475904
Test: manual
Test: atest WMShellUnitTests
Change-Id: I0644146eaa6d7d6701af94fe6caceee5e6c3be8b
- Increase the spring stiffness to catch up to the finger sooner
- In certain cases, moving into and out of the dismiss area quickly
will start the physics animator multiple times which can trigger
the update callback multiple times per frame, so only update if
the bounds have changed
Bug: 183756396
Test: Drag into and out of the
Change-Id: I85a94948ef23b9dc1d569ab3706af899e0d67ef1
Deprecate also the query on WM for pip bounds in PhonePipMenuController
Video: http://recall/-/aaaaaabFQoRHlzixHdtY/n6eylZkmVGfJwp0nl42un
Bug: 172587320
Test: Play in spotify when PiP is in playing state, see video
Test: atest WMShellFlickerTests:com.android.wm.shell.flicker.pip
Change-Id: Ieca6b3e136d5fff6818474ef012ea6b415515fb4
It was missed while migrating to wm-shell, add it back and follow
new thread arch.
Fix: 182688580
Test: Open link from Bubbles
Change-Id: I6c205a376e964ab1aaafaedea6508597ee667e23
- Whenever the shelf height changes, we still call into movement bounds
changed which triggers menu resize even if not in pip
Bug: 183756396
Test: Open/close all apps, ensure no pip logs when not in pip
Change-Id: Ia27be382316f44bb161a0f3beecd6859813d0a66