Fixes visibility issue where keyguard could enter a bad state where QS
remains visible even though it should be hidden.
Previously, keyguard could enter a bad state if QS was closed while it
had a detail panel open that had animations disabled.
To fix issue, run animations when closing detail panels, even if they
requested not to be animated on close.
Test: Turn off all animations (i.e. adb shell 'settings put global
animator_duration_scale 0.0 && settings put global
transition_animation_scale 0.0 && settings put global
window_animation_scale 0.0'), open QS, tap user icon, tap close,
ensure you are taken back to the lock screen and that the UI looks
normal
Test: Rapidly tap the user icon and bottom of keyguard in quick
succession, ensure that keyguard UI never enters a bad state
Fixes: 193549640
Fixes: 193545214
Change-Id: Ie092f83031edaff0240194832b5499df3b4eab12
This CL fixes a crash in a test that was introduced by a last minute
change in http://ag/15235792. This crash was not caught by the
presubmits for some reason.
Bug: 192194319
Test: atest ActivityLaunchAnimatorTest
Change-Id: I082514703a2c5500686a6bfe3cec3501653032b3
This way the shade animation on the video will look nicer.
Test: manual
Test: atest NotificationPanelViewTest
Fixes: 191540562
Change-Id: If7be978e2ffadcbe8e0f0656e5746328445b73d2
This CL prevents a crash in SysUI when starting a launch animation that
ghosts a View that is not attached to a ViewGroup. We now skip the
animation when that happens.
Bug: 192194319
Test: atest ActivityLaunchAnimatorTest
Test: atest GhostedViewLaunchAnimatorControllerTest
Change-Id: I6f2616776a092307c84d8f64fbbb798eb1bebafb
By deferring resolution of the Uri to Launcher, we risk a
SecurityException. This is extremely important to avoid as if we the
SecurityException is thrown, we can no longer make any updates to the
widget.
Bug: 192986188
Test: locally with Signal
Change-Id: I5421ff5494b405ab9d48afd678fd72dc570a655b
SystemUI does not need to re-calculate background color of starting
window because Shell library is bound to SystemUI, so status bar can
get background color directly, also this can support to get the
background color from snapshot starting window.
Also fix the starting window listener did not receiveing background
color successful because makeSplashScreenContentView is execute on
another background thread, so there should block the splash screen
thread until the background color is estimated.
Bug: 192213918
Bug: 192659309
Test: manual launch apps from Notification and Launcher, ensure the
color is correctly send to SystemUI or Launcher.
Change-Id: I626cb23d7aebfe4e032fad285bfad374c0e11cea
- ThemeOverlayController intentionally chooses transparent as the theme
color if there aren't any wallpaper colors (ex. a Live Wallpaper that
doesn't send WallpaperColors objects to WallpaperManagerService)
- Rather than refactor old code, we patched by ensuring any attempts to
use less-than-opaque colors for a theme are replaced by using a default
color (ag/15193364)
- However, WallpaperPicker sends transparent colors when setting a new
theme color
- WallpaperPicker's ColorUtils.toColorString turns a color into a 6
characters hex code when transmitting it to framework via JSON stored in
a setting.
- Six characters can only contain red, green, and blue channels, not
alpha.
- When the six character string is parsed by Integer.parseInt(), the
resulting color has 0 alpha, and the new theme color is rejected in
favor of the default color
- Using Color.parseColor ensures that alpha is correctly set, whether
callers use a 6 or 8 character hex code, and ensuring the input to
Color.parseColor starts with a # sign ensures it will work properly
Test: Add logs to WallpaperPicker, verifying points at which it
manipulates hex codes, ensuring WallpaperPicker is receiving colors
with a full alpha channel and merely losing it upon converting it to
a 6 digit string. Make this patch to framework. Check implementation of
Color.parseColor, ensure we meet its requirements for arguments by
sanitizing inputs from callers (i.e. add a # sign in front). Uninstall
patches wallpaper picker, reverting to system image, and verify theme
colors are assigned properly.
Bug: 193044118
Change-Id: Idcdf5d41ee422d5a1b12cec415da9198b8405a5a
Listener is only active when the overlays are showing (see Icce7846c5637711d8abad1121095fd7a25ed644f).
Fix: 186372522
Test: atest SidefpsControllerTest UdfpsControllerTest AuthControllerTest
Test: manual (Settings -> enroll fingerprint, flip device in all orientations)
Change-Id: I9981aecd08decf03336caccc313a86aead441797
title.
The root cause is that it the QAWClient#getServiceLabel invoked an
outdated serviceInfo, which causes an IOException.
Test: atest
Fixes: 188789272
Change-Id: I0a2aae165d8057cfb1b1d30690c96a31d3455a2f
- Show the keyguard bouncer errors so users are aware of auth errors
- Also fixes a bug where we wouldn't proceed to the activity (ie:
notification click) if the user authenticated from the alt bouncer
using passive auth. now, the bypass logic includes when the alt bouncer
is showing.
Test: manual
Fixes: 186313318
Fixes: 192355757
Change-Id: I3caffd2e89b9ae596b11ca4a05665db53491c2d2
Configuration change events are only generated when switching to/from portrait/landscape modes and can't be used for udfps overlays.
Fix: 190832486
Test: manual (put device in landscape, start auth, flip 180 degrees)
Change-Id: If03d8ee3ec479b91eab93622a6e93f00b3f14765
- When the keyguard hides the nav bar, take into account the screen-off
animation so that we can hide it earlier when the animation starts
Bug: 190368572
Test: atest StatusBarKeyguardViewManagerTest
Test: In three button nav w/ AOD, turn off the screen
- also try above with interrupting the screen off animation
- also try above with power button instantly locks disabled
Change-Id: I504cd55e243976586b0544100e46d2b14fa33850
Addresses a race condition when the view is attached and the modality switch is in progress.
Also fixes an issue with the confirmation button being re-enabled after a configuration change.
Bug: 190832486
Test: atest AuthBiometricFaceToFingerprintViewTest
Change-Id: I701d9d6f03474df2dda6f48e506208ddf7eab2c3
Also, pause the proximity sensor directly when we dock/undock.
This ensures that we don't wait for some other event to occur
before changing the state of the proximity sensor.
Fixes: 192670703
Test: atest SystemUITests
Change-Id: If2b429639df76bbd4cf8adecc987dcf18ae45925
If the user is in a bad state where controls exist in the carousel but
their keys have been removed from the manager, allow the dismiss button
to remove the player from the carousel directly.
The device isn't expected to get into this state normally but this will
allow users to remove the bad controls without needing to reboot.
Also added dump to MediaCarouselController to help debug future reports.
Bug: 190799184
Test: atest MediaDataManagerTest MediaControlPanelTest
Test: take bugreport, verify MediaCarouselController data is in dumpsys
Test: manual - force bad controls state, verify can still remove
Change-Id: I7af130c90c7b661cc7cc8bbeb3ca1fd5d81c8913