When switching tasks from the task has IME shown to another task
without showing IME (e.g. youtube apps.), the flickering might happen
because the next activity accidentally received the IME insets attached
in the previous activity.
If the IME is attached to one app window on that time, even the next
app window is behind the IME window, conceptually the window should
not receive the IME insets if the next window is not eligible IME
requester and ready to show IME on top of it.
Fix the logic in InsetsPolicy#adjustVisibilityForIme for the above
case.
Fix: 192337037
Bug: 194746204
Test: atest WindowStateTests#\
testAdjustImeInsetsVisibilityWhenTaskSwitchIsAnimating
Merged-In: Ib3a1eacedd3763bcf1e6eed82e7efdf01c50b204
Change-Id: Ib3a1eacedd3763bcf1e6eed82e7efdf01c50b204
(cherry picked from commit f4eb054460)
This CL fixes one of the issues with SurfaceView parent frame and
content syncing.
With BLAST, we have two surface controls each setting a scale. The
parent surface control sets a scale based on the requested surface
size and the SurfaceView layout size. The BlastBufferQueue surface
control scales the buffer to the requested buffer size if the buffer
has the appropriate scale mode.
The destination frame controls the second scaling and it must be
applied with the parent surface scale changes. This cl fixes flickers
where the requested fixed surface size changes without any view size
changes. This cl allows the caller to pass in a transaction to
BLASTBufferQueue#update which is updated with the destination frame
changes. This transaction can then be applied with the parent
surface changes.
This also fixes an issue where destination Frame was being set on
every buffer update and when we updated the BlastBufferQueue size.
Since buffer transactions can be queued up on the server side, a
stale value maybe applied for a few frames causing flickers.
Fixes: 194458377
Test: bug repro steps
Test: atest SurfaceViewSyncTest#testSurfaceViewSetFixedSize
Change-Id: I118bd1c3942b389e3951c3fd7389403895fc7b31
In current logic, we broadcast Bluetooth state OFF at BLE_ON state.
However, if Bluetooth gets crashed, we won't have the chance to send OFF
intent as we never get to BLE_ON.
This change makes the BluetoothManagerService skips the OFF intent only
if the previous state is a BLE state.
Bug: 189271317
Bug: 195032127
Test: manual
Change-Id: I3936766ab8bdd45d59550dacb64bdc0323bb424d
(cherry picked from commit 1b2f8bc9843b2d6ba7ba199a89412c8fb632f508)
When moving the security footer in the same container, correct the index if
it's before the desired position (because it will be removed from the
current position).
Also, extract moving logic so it can be easily tested.
Fixes: 195104944
Test: atest QSPanelTest QSPanelSwitchToParentTest
Change-Id: Ibc85cd5501010fcf9752d8af103500479c6f28c2
Merged-In: Ibc85cd5501010fcf9752d8af103500479c6f28c2
This reverts commit 9b34cca80f.
Reason for revert: restore info for S to not break tooling, can re-consider for T
Bug: 191386282
Change-Id: I3e6919c5ce8073f22c860e1be59264668643d910
Even if we're dozing b/c this # is ignored in low-power mode,
but we still want the display to already be at this refresh
rate when we exit doze.
Test: on device w/ udfps enrolled + preferred refresh rate config,
check dumpsys display when in AOD and check for refresh rate vote
(ie: PRIORITY_APP_REQUEST_REFRESH_RATE_RANGE = preferred rate)
Bug: 192699858
Change-Id: I9ae31e64c4d698eb9e7da46fad5331632b632090
This way other systems can see that the op is IGNORED and not ALLOWED
which will help with other privacy features when showing the mic
accesses.
Test: Make phone call, observe, flash with fix, make phone call, observe
Fixes: 195084844
Change-Id: I01bca852a9798e3de1aec6dfa7cd1ae8fdd6c87c
For the password security method, in order to provide a smoother
experience when closing the bouncer and transitioning to the home
screen, we tightly control ime insets animations. However, in
landscape mode, this request is denied which produces an immediate
call to onCancelled(). This leaves the bouncer up while unlocking the
phone (yikes), and leaves the user no way to get rid of the keyguard
until the screen is powered off.
If the call to control insets is denied, issue the finish callbacks to
ensure that downstream consumers know the bouncer is complete.
Fixes: 194782889
Test: manual - From lockscreen with password security method,
double-tap power to open camera, rotate to landscape, and hit the lock icon
Change-Id: Id34fb8932642b06b089f460713daed1d9a9fe6fa
This CL aims to clarify on what the return value of
InputConnection#setImeConsumesInput()
means for both the IME authors and editor authors [1][2].
In short, the semantics is exactly the same as
InputConnection#performSpellCheck()
hence this CL reuses its @return section.
Other than clarifying an API doc, this CL changes nothing.
[1]: Ic04cacfd73f1f4cb254bb16caf6b04c00c91a318
30fe6aa964
[2]: I8ac1ea4d53f747b0086ed415ff90793dfc6155bc
66b21086e3
Bug: 175362887
Fix: 194099171
Test: presubmit
Change-Id: Ibdfe81a9dd1448856797aaed2f14de1314da1cac
Merged-In: Ibdfe81a9dd1448856797aaed2f14de1314da1cac
(cherry picked from commit f9ca70be57)
Currently, mMobileIfaces is accessed from multiple threads, and
should be protected from concurrent accessing. However, since the
variable could be accessed frequently, holding the mStatsLock
would make this be blocked by network stats I/O operations.
Thus, protect the variable by making it volatile.
Test: Wifi on/off stress test
Bug: 192758557
Original-Change: https://android-review.googlesource.com/1765686
Merged-In: Ie7694a63f5203ee7c83830ca13d97219b7949fd7
Change-Id: Ie7694a63f5203ee7c83830ca13d97219b7949fd7
MediaRouter2Manager returned selected routes
as "transferable" routes.
This CL fixes it.
Bug: 194370296
Test: manually
Change-Id: I85e0e94bd38e07ee1a99369e9de5a4564aee6d58
Adds IconController#deactivate to allow clean transfer of view
ownership. Now we deactivate the face IconController once we know we
need to animate to the fingerprint state, and use the fingerprint
IconController to display subsequent animations.
This also fixes a hidden issue where the face IconController was
leaking (pulsing logic keeps running) even after BP is dismissed.
Bug: 194351208
Test: manual, for requireConfirmation=true and requireConfirmation=false
Test: atest com.android.systemui.biometrics
Change-Id: Iefd3df7a8706ce9213109862d509235a74aa8099