- Don't dim when battery saver bar is showing.
- Bump alpha by 10% for light nav bar
Test: manual
Change-Id: I296aa68c0904f7972dd941eb1aac3b4c71114eee
Fixes: 63630024
When a fg service starts (as indicated by its presence in a
NOTE_FOREGROUND_SERVICES notification), we note the service
start time (as encoded in Notification.when in ActivityMgr).
SysUI will suppress the dungeon (foreground service
disclosure) notification until 5 seconds have elapsed since
the earliest service start time. After that, if the service
is still running, the disclosure will be shown.
Bug: 67819284
Test: runtest -x frameworks/base/packages/SystemUI/tests/src/com/android/systemui/ForegroundServiceControllerTest.java
Change-Id: I5b6df95eb673e2f551aaa3ecc5a7df617f815a90
BluetoothBatteryDrawable creates the drawable lazily using
the latest(and most correct) context. So it could get the
correct color from the theme.
Also add iconScale field in BluetoothBatteryDrawable so the size
of the battery icon could be scaled.
Bug: 67377756
Test: Manual - connected to bluetooth headphone and open the qs
page and detail page. Retest it after changing it to dark theme.
Change-Id: Ic6c871985a89a503221755eed4bc2605ab53f630
Add support for Supplier<Icon> in QSTile.State, allowing a method for
CustomTile not to cache the drawable for its IconViews. This fixes the
problem that the ImageViews in QQS and QS were trying to use the same
drawable and putting it in a bad state.
Test: Add 3rd party tile to first position in QS and turn on/off; visual
Change-Id: I408d6391a718fcb3f847e72bd303551d2d004dbb
Fixes: 67356768
There is the possibility of mCallback being null while
the Keyguard still has a PhoneStateListener registered
for onSimStateChanged callback. This can cause a NPE.
Bug: 66986066
Test: Manual, PIN/PUK locked SIM
Merged-In: Id8ca403a839cff994970c370973a91e8e5688722
Change-Id: I799c9521f787e800e259c3bdce9edee3f844f5f3
The transition from display power modes isn't tightly coupled
to the AoD lifecycle. We rely on a timeout to show and hide
the sysui scrim. In this case we increased it.
Change-Id: I13a0d33205c9f904afced63f231176151aee15c4
Fixes: 64077859
Test: receive notificaition in AoD, observe.
Because it wasn't laid out yet, icons would appear white.
Change-Id: I9338966299de253f36ae325553e82b76defe3b9d
Fixes: 66711268
Test: add icon with light statusbar in multiwindow, icon looks normal
Because the normal order would not factor in the
yTranslation.
Change-Id: Ie37b69ee5187c4f4bd58f90d8297cf73b7a4ed53
Fixes: 67017075
Test: swipe through notification in statusbar, observe right ordering
When entering recents on a low ram device, the system will hide the
statusbar to match the spec (go/android-go-recents).
Test: manual - enter recents
Bug: 67346921
Change-Id: I180899560aa1379b0a68cf63ae9b780fdef1746d
Fixed rounded corners for clear all button by using a themed
background color on a shape with rounded corners instead of
programmatically changing the background color.
Change-Id: Iaaf4f0d94d417b0064c7e6bf4895b49d9fa6561f
Fixes: 67368134
Test: manual - go to recents and scroll up to show clear all button
Instead indicate a lack of signal until we have a subscription to
tell us what to show.
Test: updated existing tests
Change-Id: I170f3782597584e5e761b5c9f9fce3cdbdc26a4f
Fixes: 65744290
This patch fixes two race conditions that affect the Looper used
to signal the completion of a notification to abandon audio focus
as well as the wakelock used between issuing a playback
command and its actual start. Annotations are added to clarify
which objects are used to synchronize which methods and variables.
Looper for notification playback completion:
Before a notification starts playing, audio focus is requested,
which causes the ducking of media apps. When the notification
completes, audio focus is abandoned. If a new notification is
to be played while one is playing, the current player is
stopped and the Looper on which we expect the MediaPlayer
completion callback is .quit(). But there is a race condition
between the quitting of the current Looper whenever a sound
is started (in startSound()) and when quit when playback
is stopped (command STOP), and when created in
CreationAndCompletionThread.run(). If the Looper is quit
when another notification starts to play, the completion
callback cannot be received, and audio focus will not be
abandoned.
The fix consists in synchronizing all access to mLooper
on mCompletionHandlingLock.
Wakelock:
Initializing and acquiring the wakelock, and releasing it
are done in different threads (client thread vs CmdThread).
There was no memory barrier between the initialization
and release. The fix consists in making all wakelock
operations synchronized on mCmdQueue.
Test: issue multiple notifications that interrupt eachother, verify focus is abandonned (in logs, check "abandonAudioFocus()")
Bug: 65866087
Bug: 64531811
Change-Id: Ie8f4091eaa96bd0bcb732e27423f6e31e76da98e
- When there is no thumbnail snapshot, an empty sized thumbnail path is
created since thumbnailWidth/Height are zero. Instead, like the parent
class, the path should default to the view width/height in such a case.
Bug: 66938643
Test: Launch PlayMovies video anew, go home, then to overview
Change-Id: I354ff0716ee44149f50ff11fa435161cf466c0cc
Hides the clear all button at the beginning and shows it when scrolling
the list up or when swiping an app away. The clear all button will not
hide when already shown. Users can also start the scroll gesture over
the clear all button to scroll the list.
Test: manual - use low ram device and go to recents and scroll
Change-Id: Ie2d22db9bdd66308ce8ef3acf77b9f707d638ade
Fixes: 65571889
SysUI context doesn't know about the dark theme change when trying to
set the tint on the BluetoothDeviceLayerDrawable, so change the icon to
one that isn't cached so it can use the QS context and use the right
tint when in dark mode.
Test: set dark background, visual
Change-Id: If9255e2d2155ebcd355ddf26f06385e73aab68d6
Fixes: 66497162
- When a task is docked from Recents, the last position is never updated
if the user never touches the divider. Ensure that the default dock
snap target is saved in this case as well.
Bug: 66903645
Test: Dock a task from Recents, go home, and hit recents
Change-Id: Ia229d2ba0eee792424fb9e9c043320cec71695dc
Fixes: 65780650
Test: 1) Enable FP swipe
2) Start navigation
3) Turn off screen
4) Turn on screen
5) Swipe for notifications should work while maps is on top of keyguard
Change-Id: I5d8c75db940bfdfa4e29643c1ba89a119ec6a954
WifiTile now owns a specific tile view that will animate the tint/alpha
of the slash but not the underlying drawable. Becasue we always animate
from the disconnected icon <-> disabled icon, this fixes the problem
where the disabled icon will start off as full-dark and appear to flash.
Fixes: 63534380
Test: turn wifi on/off; runtest -x
tests/src/com/android/systemui/qs/AlphaControlledSignalTileViewTest.java
Change-Id: I824572fdf00e122b7c17104b727171d81ff104c5
- Pipe through user id when an activity is pinned, to ensure we show the
right notification with the correct profile badge that launches into the
correct profile's PiP settings.
Bug: 65417722
Test: Enter PiP for work profile app, ensure that it shows the notification
for that profile, and launches the profile-specific PiP settings.
Change-Id: I62b8e1b23cb81bfc60c93f452cf950ab06cbf32d
The keyguard has windows on the default display and the remote display
selected by MediaRouter. Keyguard occlusion only applies to the default
display. To make the activity showWhenLocked flag work on secondary
displays, pass the display id of the locked secondary display from the
SystemUi to KeyguardController and make its isKeyguardShowing method
take a displayId.
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testSecondaryDisplayShowWhenLocked
Bug: 64994006
Merged-In: Ib31fc76e9df469e97a59a181f09d457ceed4ef5f
Change-Id: Ib31fc76e9df469e97a59a181f09d457ceed4ef5f