* Introduces BadgedImageView / BadgeRenderer for icon & badging
-> These are both semi-temporary until I move things over to using
icon library
* Introduces "shouldShowInShade" bit on NotificationData, this is used
to indicate whether a bubble's notification should display in the
shade or not
* BubbleController uses NotificationEntryListener to annotate notifs
bubble state & add / update / remove bubbles
* Cleans up expansion / dismissing / visibility in BubbleController
General notif / dot / bubble behaviour:
* When a bubble is posted, the notification is also in the shade and
the bubble displays a 'dot' a la notification dots on the launcher
* When the bubble is opened the dot goes away and the notif goes away
* When the notif is dismissed the dot will also go away
* If the bubble is dismissed with unseen notif, we keep the notif in shade
go/bubbles-notifs-manual has more detailed behavior / my manual tests
Bug: 111236845
Test: manual (go/bubbles-notifs-manual) and atest BubbleControllerTests
Change-Id: Ie30f1666f2fc1d094772b0dc352b798279ea72de
- Move the battery percentage next to the system icons in quick settings
- Always show the percentage, and optionally show the estimate text
based on battery settings
- Move the estimate text into the BatteryMeterView
- Move the fetching of the estimate off of the main thread
Test: visual
Change-Id: Ie37952079b2394c67464f69eb8a2f0089b08875d
Fixes: 119799219 - padding
Fixes: 120996084 - moving estimate fetch off main thread
Bug: 116481529
These are unused since P, when the icons all moved into the same icon
container and are all managed by StatusBarIconController
Also remove an unused class StatusBarIconContainer
Test: atest SystemUITests
Change-Id: I636449b51c009ccfaeebc559b1f7fb31487cc5fe
Sets the clickability based on QS expansion. Then, when it's expanded,
it is not clickable as QSPanel captures clicks. The top status bar is
always clickable
Test: manual, including brightness slider
Change-Id: Id41473f823285f115240effbea7a2d52596b9bfe
Fixes: 120873445
1. Enables image wallpaper in AOD.
2. Enables a mask with 70% black scrim and vignette effects.
3. Add feature flag in developer options which is default disabled.
Bug: 111861907
Bug: 118470430
Test: Manually test the flow
Test: runtest systemui
Test: atest ImageWallpaperTransformerTest
Test: atest AodMaskViewTest
Change-Id: Iff2642d52264e88012f4759842a59aaf5bc45b38
Captures clicks on QuickStatusBarHeader so they don't go through and
collapse QS (broken in ag/4773943). This includes the black status bar
(therefore, it's independent of expansion).
Small targets in QSFooterImpl that were obscured were registering
clicks, as QSFooterImpl is VISIBLE even if its elements are not.
Test: Manual
Change-Id: Ie36096355c8a0e8417194ef0f123d5e7b95a7e95
Fixes: 120873445
Fixes: 120677657
Introduces BubbleExpandedViewContainer to wrap the currently expanded
view and render the triangle
* This view should also handle rendering the header
* ActivityView will live here too eventually maybe
Test: visual - enable bubbles, open a bubble, note the pointer
Bug: 111236845
Change-Id: I49569a0355eab29c9f1b6bb9abe1cd2d10b9b27b
* changes:
3/n: For passive modalities, add plumbing for "try again"
2/n: Multi-modal support for BiometricPrompt
1/n: Move BiometricDialog management to BiometricService
When "try again" is showing, authentication is canceled internally.
BiometricService caches the client's info so that authentication can
be restarted when "try again" is pressed. Because authentication
is not running when "try again" is showing, BiometricService also needs
to have a TaskStackListener so that BP can be dismissed and an error can
be sent to the client when the app loses focus.
IBiometricServiceReceiver has been split into two. One for BiometricPrompt
to receive messages from BiometricService, and another for BiometricService
to receive messages from SystemUI/<Biometric>Services.
When we get locked out, don't send the last onAuthenticationFailed
to the client, since "Authentication failed" will be shown briefly
and be replaced by "Device locked out" which is janky
Bug: 111461540
Test: Tested with requireConfirmation enabled/disabled
Test: Tested onConfigurationChange corner cases, e.g. when "try again"
or "confirm" buttons are showing, rotate the device. Buttons
persist correctly and don't appear when unexpected
Test: Tested task stack corner cases, e.g. when "try again" is showing,
press home button. BP dismisses and client receives ERROR_CANCELED
Test: BiometricPromptDemo receives all callbacks
Change-Id: I62126708ce8db8b358c666a07aa7c39607642c9d
This change modifies the UI displayed when the new interruption model is
enabled after long pressing a notification or tapping the settings icon
in the notification side menu. The text links for blocking the channel,
toggling its importance, or canceling out of the dialog are replaced
with buttons with icons and clearer text descriptions.
Test: atest NotificationInfoTest
Bug: 116622974
Change-Id: I06ead5c4da77319df3ebe4c48d863dede37bf2f4
- Fix a bug where the notifications weren't being posted
- Add attribution to the notification guts
Bug: 111452544
Test: atest
Change-Id: Id19e58cf66a62b179cb684783b264dad8a5371b0
Smart Action look similar to Smart Replies with an icon next to the
button text.
Smart Actions can be added either by an app, or by the framework itself
(through NotificationAssistantService).
The idea is that Smart Actions are really actions relating to the
content in the notification message.
The priority order of smart replies vs. actions will be dealt with in a
follow-up CL (i.e. whether we should prioritize showing smart actions
over smart replies).
Example notifications:
System generated:
https://screenshot.googleplex.com/f6p8uOMygeT.png
App generated:
https://screenshot.googleplex.com/VR6On1eh4CW.png
2 app generated actions:
https://screenshot.googleplex.com/QuM5e792xhb.png
Bug: 111406942
Test: manual tests = add custom actions directly in sys ui and ensure
they're shown in message notifications.
Test: atest SystemUITests
Change-Id: I0ce959b74e89bcabc69b76c50c1877e70d6f06df
Minor changes to colors and layout of chip.
Redesign of dialog using new mocks.
Dialog launches Permission Hub
Test: visual & atest PrivacyDialogBuilderTest
Fixes: 117646163
Bug: 112331475
Change-Id: Ic8008f05fcb139c2581794abbb47c00819c20d7f
- Disable rotation suggestion button if the navbar is on
non-default display because there is no accelerometer sensor.
- Avoid leakage by removing navbar fragment from fragment
host when display is removed.
Bug: 117746225
Bug: 117744614
Test: atest SystemUITests
Test: manual - create a virtual display with system decoration.
The navbar on the virtual display should not change when
rotating or changing density of default display.
And after releasing the display, use command "dumpsys
activity service com.android.systemui/.SystemUIService |
grep NavigationBarFragment" to check the number of instances.
Change-Id: Icdc8634628ace21395b7eb9d77c6b1067850d1b2
- Add an API to BatteryController to get an estimated time remaining
string.
- BatteryController will now check up to once per minute what the
estimated time will be and builds the string using PowerUtil.
- If the "show percentage" setting is on, the estimated time remaining
string (and battery icon) will show next to the system icons in QS
- Also make the battery percent in QS obey the setting
Test: visual
Bug: 116481529
Change-Id: Iaafa00127c8b8baae40956254a1237c8b7ac079b
Bug: 117347671
Test: Followed steps in b/119296586#comment1
Test: Background/color changes properly when launching BP from
managed / unmanaged profiles
Change-Id: Ia0368041540b65b41957d2adbcaa75c0739f62f1
Logic extracted from chip view into its own controller.
QuickStatusBarHeader is called when there are changes and sets the
visibility for the chip
Changed behavior when there is a top notch. When the chip is
visible and there's a notch the BatteryMeterView is set
to GONE.
Test: Visual & atest (PrivacyItemControllerTest)
Fixes: 119309613
Change-Id: Iab04a8da3f81e81bf6558d63650740b118809359
This change modifies the UI that appears when a notification is
long-pressed to include a third option when the notification could
potentially buzz or make sound, allowing the user to promote or demote
the notification's channel such that it will not alert (or will start
alerting) for future notifications.
Test: atest SystemUITests
Bug: 116622974
Change-Id: Ia070d0ef1b181b4de8b3d49ace9ff2a65fed8deb
Creates a chip and a dialog to show the current apps using certain app
ops (location, microphone, camera).
Dimens are estimated. Settings button dismisses dialog for now.
Test: atest && visual
Bug: 117646163
Change-Id: Ida5b42acf331d6c9da06141379eadc0da5e72df2
Screen recording can be launched via long press on screenshot in
the global actions menu if the local feature flag is enabled.
Otherwise, long press on screenshot will also trigger a screenshot.
Demo videos: https://drive.google.com/open?id=1oJzfzJb8aGXSUqn4CZ_Yn7qWmJ2dvRd5
Test: manual
Change-Id: I373d38ad86291ff6f26f7dca3195001bd8f5ee16
Bug: 111395687
Bug: 118826991