Bug: 202740657
Test: Enter PiP, go to home, tap on PiP - menu does not have split
button
Test: Enter PiP, open Messages, tap on PiP - menu shows split button
Change-Id: Ide755008f9b6ad844d7453fb024f2d6c7db4f36b
migrate the controller to a ViewController model instead.
This allows us to not have to keep track of old HUACs anymore!
Test: atest SystemUITests
Test: manual (verified via logging that #onDetach is called at the same
points that #destroy would have been called)
Bug: 205609837
Change-Id: I32b5df3306616a75ffe009c81b8966689fd11dda
HeadsUpAppearanceController#readFrom(oldController).
Instead, the old values are read from the parent controllers. This CL
plus the next CL will allow us to not keep track of old
HeadsUpAppearanceController instances; instead, each
HeadsUpAppearanceController knows how to correctly set itself up and
tear itself down without needing the old controller.
Bug: 205609837
Test: atest SystemUITests
Test: manual (verified via logging that new controller gets old values)
Change-Id: I15adc79982b5b7ca264e2bb45e92ba48b9844c1a
dagger and use it in CollapsedStatusBarFragment instead of using
StatusBar.java.
Note that HUAC can't be injected to the fragment directly because that
creates a dependency cycle: PhoneStatusBarView is injected into HUAC,
which is injected into the fragment, which provides PhoneStatusBarView.
Test: manual (verified HUAC callbacks still trigger, verified fragment
is still getting the correct value for shouldHeadsUpBeVisible)
Test: atest SystemUITests
Test: new unit tests
Bug: 205609837
Bug: 204792508
Change-Id: I33aa80f4866c9561302430cf9206cc96802896cc
Removing option because the touch points currently cannot be recorded
due to changes in how the cursor is drawn
Bug: 205709231
Test: manual
Test: atest RecordingServiceTest
Change-Id: If544d534be16f2a2a21129f1f014c5c98aa55885
Otherwise WindowState#mOrientationChanging IME window may be skipped
to be updated from forAllWindows. And even when window frozen timeout
is reached (DisplayContent#onWindowFreezeTimeout), if forAllWindows
still skips IME, the device will look like frozen forever. Unless
on/off screen to force canceling the state.
And since CL [1] has handled the case of IME with fixed rotation,
the restriction added in CLs [2],[3] can be removed. That eliminates
frozen for normal rotation animation.
[1]: I0b036594161898f9df6ad71f0adb5fe93880161a
[2]: Idfdf129adbfbee6634d8a27aa78da1f631bd213b
[3]: Idef12249806e4a6860b8cd190df4f0f8cad13c19
Bug: 207059118
Test: 1. Launch a portrait app which keeps showing IME.
2. Return to home be home key or swiping.
3. Hold the device in landscape.
4. Launch the app again.
The app should show in landscape directly and IME will
fade-in when it is drawn in landscape.
Change-Id: Iceaedbfdb75e68e9f7fb8fd4a1bf8f35a779797e
CL[1] using isRequestedVisibleAwaitingControl() in
ImeInsetsSourceconsumer#setControl to hide IME surface when it returned
false without waiting control or requesting visible to deal with the
unexpecting hide IME cases during the testing.
However, when calling IMM#toggleSoftInput to reqest showing keyboard
on the dialog implicitly that will set requrested visible on both the
caller window and the dialog window, since toggleSoftInput didn't
explicit set the target window but just using the caller window as
requester implicitly.
It causes a regression that can't hide the IME surface when dismissing
the dialog to back to the caller window that the IME insets source
control is null but isRequestedVisibleAwaitingControl still returned
true because isRequestedVisible has been set true for the
toggerSoftInput caller window.
Revert logic in setControl to use mIsRequestedVisibleAwaitingControl
in case the IME surface won't be removed when backing to the implicit
caller window of toggleSoftInput.
[1]: I3071af14bf78e23f9526d6a9c138ab6ae2e0e339
Bug: 207092186
Bug: 204524304
Test: manual
Test: atest CtsInputMethodTestCases
Test: atest WindowInsetsAnimationControllerTests
Change-Id: Ic5265a6c3f2eba77d43832d23309998bf3cb1671
WM delays to destroy window surface if the window is running an exit
animation, and clean it up after the animation finishes. In case the
clean up process was not triggered, we do it before starting an app
transition.
Note that this is a safe guard for potential bugs. The surface shall
be destroyed as soon as an animation finishes, so the clean up should
have been done before an app transition starts.
Bug: 205335975
Test: atest AppTransitionControllerTest
Change-Id: I9c37ab9ebc57ef48827df25ecc52bf09101ad419
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
WMS may provide stale configuration value when secondary display
is off. This CL makes WindowContext only receives Configuration updates
if the display of associated WindowContainer is not suspended.
Test: atest WindowContextListenerControllerTests
Test: atest InputMethodMenuControllerTest
Bug: 198965093
Change-Id: I3c2871823f1b104f89bb801f3bf5ecef01966bb3
1. Similar to ActivityRecord#setVisibility, check okToAnimate before
preparing transition.
2. Similar to ag/16063813, disable transition animation when screen
blocker is not removed.
Bug: 204035526
Test: atest WmTests:TaskFragmentTest
#testNotOkToAnimate_doNotStartChangeTransition
Change-Id: I55486b456e4fd0a93b74faedcdc8a6f01bcc3737
- It's possible for the nav bar configuration to change between locking
and unlocking the phone, which will prevent the alpha from being
restored on the bar layout correctly. This change updates the alpha
of both vertical/horizontal layouts in NavBarView since they should
always be in sync.
Bug: 206733387
Test: atest SystemUITests
Test: Lock screen in landscape app, turn screen on and unlock
Change-Id: I265d04e6e2192f2bb57b1f8d77390664236427fc
(cherry picked from commit 9b53d2ecab)
- It's possible for the nav bar configuration to change between locking
and unlocking the phone, which will prevent the alpha from being
restored on the bar layout correctly. This change updates the alpha
of both vertical/horizontal layouts in NavBarView since they should
always be in sync.
Bug: 206733387
Test: atest SystemUITests
Test: Lock screen in landscape app, turn screen on and unlock
Change-Id: I265d04e6e2192f2bb57b1f8d77390664236427fc
Current code assumes the presence of SplitScreen, so it crashes if
SplitScreen doesn't exist.
Bug: 207495281
Test: Transition in and out of PIP still works on phones.
Test: Transition from PIP to split screen on phones.
Change-Id: I6f2f05a1237c9e64f1df95b05347a1affa9b5a27
take #1b
In the config file, it's easy to adjust (per device):
* Using low_tick (default) vs tick
* Customize tick intensity
* Customize delay between ticks
Test: manual
Bug: 202867177
Bug: 207123411
Change-Id: I57dedc6480b83b7ea03fcff30e551cd900fead92
Do not create a hardware layer for entire notifications during shade expand/collapse; instead just layer the elements with actually overlapping rendering.
Bug: 191969252
Test: lots of shade expansion; use of perfetto to validate phone reaches rendering deadlines more often.
Merged-In: I86b626fb61c5844b968be33d982e418bf8938de8
Change-Id: I86b626fb61c5844b968be33d982e418bf8938de8
Apps shouldn't need to have the FLAG_TURN_SCREEN_ON
layout parameter on their full screen intent activity
in order for the full screen intent to show from AOD.
Test: atest StatusBarNotificationActivityStarterTest
Test: manual
Fixes: 202833729
Change-Id: If4a5d3dbd49367ddd7dc2895b83471d52fcfa47a
Merged-In: If4a5d3dbd49367ddd7dc2895b83471d52fcfa47a