Fixes: 205503732
Test: tap rotation button in vibration only mode
Change-Id: I8fe29afc03353943b56fea9e80618441f7bca174
(cherry picked from commit 8f30dd7aea)
- Do not bring split to top on entering PiP
When swiping up to home (or other cases) triggers one of the
split-screen children enters PiP, do not try to bring the other task
to top since the pair should be considered invisible.
- When entering PiP from split screen or non-auto PiP case, use the
alpha information in PictureInPictureSurfaceTransaction to hide the
task which would later be turned back on to avoid flicker.
Bug: 190855091
Bug: 205894095
Video: http://recall/-/aaaaaabFQoRHlzixHdtY/42RWtayanp2qG0mHSf4Q5
Test: manual, enter PiP from split-screen, see Video
Change-Id: I1559748cd583c20d79ee458822d66e7801733d3a
Now FOLD_UPDATE_START_CLOSING event is emitted when the angle decreases.
After each angle update, a timeout is started to finish the animation.
When the timeout is reached, FOLD_UPDATE_ABORTED is emitted.
The timeout logic has been moved from
PhysicsBasedUnfoldTransitionProgressProvider to DeviceFoldStateProvider.
This change should not create problems to
FixedTimingTransitionProgressProvider, as it doesn't use any
intermediate FOLD_UPDATE event.
Test: Locally on device
Test atest com.android.systemui.unfold.updates.DeviceFoldStateProviderTest
Bug: 208977663
Change-Id: Ibc5df1e089d6543e7cf6ee2e0ce3d48a0b24cc07
When AnimatorScale is set to zero (possible from settings),
the fold animation is disabled.
The change to UnfoldLightRevealOverlayAnimation is needed
because the overlay view is added independently from
UnfoldTransitionProgressProvider callbacks every time the
internal screen is turned on.
Test: Tested on device &&
atest com.android.systemui.unfold.util.ScaleAwareUnfoldProgressProviderTest
Bug: 208791440
Change-Id: Icda9ed6d708873768c4ac533b9c790ae1631b45c
Update resources in floating rotation button
when configurations such as screen density, screen size,
current locale have changed.
Bug: 200103245
Test: change display size, locale, fold/unfold
-> check that floating rotation button resources
are updated
Change-Id: I140eeaf6df3dcca2fca42d5f9dd44ab59d068e57
Since live-tile is enabled, the foreground app is still the original
activity, the display rotation doesn't change by the recents app
activity. So the condition added in commit 95cb52a doesn't need to
be enabled.
Bug: 205979005
Test: 1. Disable auto-rotation and home rotation.
2. Launch an activity in portrait.
3. Rotate the device to landscape and press rotation button.
4. Enter overview (recents).
5. Return to the application (keep in landscape).
6. Return to home and launch the app again (restore to portrait).
Change-Id: Iccf87b2d66d57911cd49f2ea9080a71a85801e4c
Test: in 3 button mode, nav buttons in taskbar are dark on light wallpaper; in both 3 button and fully gestural, IME dismiss button is dark on light IME
Bug: 204256643
Change-Id: Ib6488a393e9cf021c806a5caf5b81654cf5164eb
The meaningful contents of FeatureFlags only relates to debug
builds and has been moved into the debug version of
FeatureFlagManager.
Bug: 203548872
Test: atest SystemUITests && manual
Change-Id: Ifcef0cfe4e2d07daec34dfc7a6cbe2d305b312b5
* Compute and save a StagedSplitBounds object for every
pair to determine it's position, size, divider, etc.
* Moved GroupTask to Launcher
* Moved StagedSplitBounds from launcher to wm/shell
because sharing is caring.
Bug: 203006080
Change-Id: I8513e027f8c9606fbed1283013eafea2cf905f3f
Removes the FeatureFlagReader which some "flags" still used because
they were read from resources instead of the flaggin system.
Flags can now specify a resource id where their default value can be
read from (if there is a resource definition for it).
Bug: 203548827
Test: atest SystemUITests && manual
Change-Id: Ifb895fd6c5b40d4adfe2997f4ce1f4d7d2145183
Merged-In: Ifb895fd6c5b40d4adfe2997f4ce1f4d7d2145183
Flags are no longer statically compiled into the shared library.
A "GET_FLAGS" api has been added to SystemUI that returns a list
of Flag objects, as defined in SystemUI.
Communication happens via a simple "ordered" broadcast.
FlagManager#getFlagsFuture() returns a ListenableFuture pointing at
the list of flags. Be sure not to call Future#get on the main
thread - the call will block indefinitely as the broadcast receiver
is handled on the main thread.
Instead, add a listener to the future or call #get on a separate
thread.
Bug: 203548827
Test: manual
Change-Id: I8720e0905662a6371e7aabf04341df46b8943a9c
Since both of splitting tasks in split screen go to overview together
now, update to snapshot all pending animations when rotating while
showing overview to ensure both of splitting task snapshots are taken
with proper bounds before rotation.
Bug: 200813008
Test: atest RecentsAnimationControllerTest
Test: enter overview after activated split screen, observed task
thumbnails showing with correct bounds after roation.
Change-Id: Id1101bf8be67593f85a43c1d4afae769ffc737d3
- Add a shell component and interface for Launcher to use to get recent
tasks including paired splits (pending integration w/ split controller)
Bug: 202740477
Test: atest WMShellUnitTests:com.android.wm.shell.recents.RecentTasksControllerTest
Signed-off-by: Winson Chung <winsonc@google.com>
Change-Id: I34d834061ed2391d89cf56d6a2fd262868707674
Merged-In: I34d834061ed2391d89cf56d6a2fd262868707674
The FlagManager now partially implements the FlagReader interface.
The FeatureFlagManager, part of SystemUI proper, now uses the
FlagManager to read flag values, helping to ensure consistency between
the two separate systems.
Bug: 203548827
Test: manual
Change-Id: Ia3b103f783a846cfe9437cd8e6b987962cebabde
This adds the FlagManager class which currently has 3 methods:
- #getFlagsFuture
- #setFlagValue
- #eraseFlag
The first makes an async call to SystemUI to retrieve the flags
it knows about. It returns a collection of Flag objects from which
one can get the id, type, and default values.
The other two are fairly self-explanatory, sending intents to
SystemUI telling to set or erase flags. Any app calling these
methods must have the FLAGS_PERMISSION defined in the FlagManager
library.
Only boolean flags are supported at the moment.
Bug: 203548827
Test: manual
Change-Id: Id15ff481edcb83c67ce4cdad6cdda27d28a40652
This basically ties applicationthread binder token to remote
transitions. Shell is first boosted (to run the shell transition
logic) and if it then delegates to a remotetransition, it will
then request that process also be boosted.
Bug: 183993977
Test: add logging in WPC.setRunningRemoteAnimation and verify calls
during transitions
Change-Id: I94babc327e935ea81271942287a83b948dd11f8b
Temporary removes usages of SysUI shared
resources as it leads to crashes in Launcher
tests.
Bug: 204727471
Test: install launcher, try autorotate suggestion
Change-Id: I82dae0b2f5a9d2cb83f8a60e3c08353dc1bb60b6
Moves handling of floating rotation button when navigation
bar is not created to the launcher. This button was not
showing when taskbar is visible as it was initialized in
navigation bar (which is not created for large screens).
Bug: 200103245
Test: rotate phone when autorotate disabled on inner screen
Test: showing rotate suggestion when gesture nav enabled/disabled
Change-Id: I0619acd9d24eb4ba36bdb601517f9a8370ee999a
Merged-In: I0619acd9d24eb4ba36bdb601517f9a8370ee999a
Disables unfold animation for statusbar when it is
perpendicular to the screen fold.
Moves ScopedUnfoldTransitionProgressProvider from launcher
to shared SysUI/Launcher code.
Introduces NaturalRotationUnfoldProgressProvider which emits
transition events only when in natural rotation.
Added proper disposal of resources when status bar is detached
as PhoneStatusBarView is re-created when folding/unfolding.
Bug: 201518277
Test: manual
Test: atest com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProviderTest
Change-Id: If4da3afca2b41c3675ccf6838e9ad6dac1b6f82e
Changes unfold overlay implementation from a window
to surface control view host. To make sure that the
unfold overlay is drawn by the time when we remove
screen blocker we synchronously apply a transaction
with drawn overlay and apply another empty transaction
with vsyncId+1.
Also these changes disable the unfold transition when
using power button by filtering only first screen turning
on events after unfolding the device.
Bug: 197538198
Test: manual fold/unfolds
Test: killing SysUI process, checking rotation animation, magnification
Test: atest com.android.systemui.unfold.updates.DeviceFoldStateProviderTest
Change-Id: I8e0bc635b041595602145b313548b14fcabd157e
* Make suspend/resume methods public
* TaskbarDelegate acts as the AutoHideUiElement
for the purposes of simplicity (vs having Taskbar
itself in launcher implement the interface).
* We re-use existing mNavBar setter in AutoHideController
since we know when tablet is showing there is no
navigation bar present
Bug: 193938507
Test: Taskbar shows when requesting auto-hide suspend.
Change-Id: I36429b4ea357646cf6b6dac7a048905b1986be16
This is needed to properly scrim taskbar when bubbles
are expanded with the manage menu open.
Added tests around hiding / showing the menu and
verifying the state.
Bug: 197139718
Test: BubblesTest NewNotifPipelineBubblesTest
Change-Id: I52e41344f9273398cea606c227dfcf3b8cc6394d
When going from a non-launcher task to another non-launcher task
that is in a different orientation, we just animate the new task
opening in the new orientation (no screen rotation animation). To
make this work, though, we need to unrotate all the going-away
windows because they are in the old orientation.
Added CounterRotator to a utility area in shell so it can be
shared with other components (like Sysui shared lib).
Bug: 183993924
Test: atest OpenAppColdTest
Change-Id: I0263dfb8d529b6fc3dfbe3775e3e6e0b77f6ca8a