When switching tasks between different users (i.e. primary and
work-profile user), if the source task has shown IME, when going to
the target task, IMMS will first unbind the current input method of
the current user and hide the soft-keyboard and the window token
by HIDE_SWITCH_USER reason, and then re-bind the input method of
the target user when focused to the target task.
If the hide soft-keyboard somehow being delayed and comes after the
target task has been focused and be the next IME target, user will
see the window removal transition on top of this IME target window.
(i.e. launching Google chat apps with IME shown from work-profile
and then swiping out to home screen)
Even if we disable window animation in Activity#onDestory in IME
client side, the next relayout can come before that, so window exit
transition still happens.
To fix this timing issue, add animateExit parameter in
WindowManagerInternal#removeToken for IMMS not to perform window exit
animation and to hide the window surface permanentaly, so we can
avoid the window surface becoming visible again unexpectedly during
relayout.
Fix: 197494607
Fix: 195449326
Test: atest WindowTokenTests#\
testRemoveWindowToken_noAnimateExitWhenSet
Test: manual as issue steps:
1. Enter Google chat
2. Start typing a message
3. Swipe home
4. Expect no IME surface flicker happens
Merged-In: I044257b5ac0d92dd06dae8eba996ea0ac6f1e659
Change-Id: I044257b5ac0d92dd06dae8eba996ea0ac6f1e659
This reverts commit 6a5ca92e75.
Reason for revert: This is affecting notification channels that are using the system sound and is resulting in users losing most of their notification settings
Change-Id: I350cf8190eec6296a597bef38b711900336ddf75
Fixes: 197129198
QS pull down was not being eased like the shade, or all apps drawer.
Now it's using the same interpolator.
Test: manually pull down QS from the top of the screen
Test: atest NotificationShadeDepthControllerTest
Test: atest ScrimControllerTest
Fixes: 196662148
Change-Id: I44387c6295d10633ebffa02b0e45c0144dd8ddfe
- AudioManager: entry point for getting
a Spatializer object, if supported
- Spatializer: entry point for spatializer
capabilities, system APIs for configuration
and compatibility with devices
- AudioAttributes: additions for behavior of
a track for virtualization
Bug: 191404931
Test: atest AudioAttributesTest SpatializerTest
Change-Id: I06f8acdd979f8d4374042f8209082c79f49a1f75
This logic was introduced to fix the bug that calls couldn't be be picked
up when device is sleeping, but the problem is not reproducible anymore.
Bug: 182975035
Bug: 196355935
Test: Manual, and pass existing tests.
1-1. Receive phone call while the screen is off.
1-2. Check the phone activity responds to touch events.
2-1. Set lock method (e.g. PIN or pattern)
2-2. From the lockscreen, double tap power to launch camera.
2-3. Take a photo.
2-4. Tap a small preview photo image to launch the preview in full
screen. Check no jarring during the transition.
Change-Id: I87f1b00e945f7cfd42d77d8f6621e951c23468d3
- Add WM_DEBUG_WINDOW_INSETS ProtoLogGroup to use for logging
general Insets logs in WM core.
- Refine InsetsSourceProvider#updateVisibility proto log format
to add insets type information.
- Add InsetsSurceControl#toString to print control target info.
Bug: 197189357
Test: adb shell wm logging enable-text WM_DEBUG_WINDOW_INSETS
Test: atest ProtoLogImplTest \
ProtoLogViewerConfigReaderTest \
WmTests:ProtoLogIntegrationTest \
LogDataTypeTest \
protologtool-tests
Change-Id: I1f01ce4d9fe5cb17f7bd60a424689260682b1dfc
Draw rounded corners beside divider bar which inset with task bar if
the task bar is expanded.
Bug: 196272915
Bug: 182511830
Test: atest WMShellUnitTests
Test: manul check the rounded corners rendered in proper position.
Change-Id: I14c5a9416d52bf06b3e4c8ac843c5a65c0b940b8
This will make sure the alpha is updated correctly before
showing the udfps affordance.
This CL also updates the dumpsys to be more accurate of the
actual alpha value being used.
Test: manual, atest UdfpsKeyguardViewControllerTest
Bug: 197160246
Change-Id: I86a73dacfd2fc4f5b910e1e1e4f6535e91d00da3
When switching tasks between different users (i.e. primary and
work-profile user), if the source task has shown IME, when going to
the target task, IMMS will first unbind the current input method of
the current user and hide the soft-keyboard and the window token
by HIDE_SWITCH_USER reason, and then re-bind the input method of
the target user when focused to the target task.
If the hide soft-keyboard somehow being delayed and comes after the
target task has been focused and be the next IME target, user will
see the window removal transition on top of this IME target window.
(i.e. launching Google chat apps with IME shown from work-profile
and then swiping out to home screen)
Even if we disable window animation in Activity#onDestory in IME
client side, the next relayout can come before that, so window exit
transition still happens.
To fix this timing issue, add animateExit parameter in
WindowManagerInternal#removeToken for IMMS not to perform window exit
animation and to hide the window surface permanentaly, so we can
avoid the window surface becoming visible again unexpectedly during
relayout.
Fix: 197494607
Fix: 195449326
Test: atest WindowTokenTests#\
testRemoveWindowToken_noAnimateExitWhenSet
Test: manual as issue steps:
1. Enter Google chat
2. Start typing a message
3. Swipe home
4. Expect no IME surface flicker happens
Change-Id: I044257b5ac0d92dd06dae8eba996ea0ac6f1e659