- If the content is able to bubble, the bubble option will show in
the menu
- If that notif is able to bubble (either via bubble metadata or via
notification contents), then show the menu
- Adds tests for the bubble menu option, also tests selection for alert
and silence buttons; removes unused test code
Test: atest NotificationInfoTest NotificationGutsManagerTest
Test: manual - post a bubble with bubbles test app, longpress on notif
and demote it via menu => bubble is gone
- long press on notif and promote it via menu => bubble is
created
Bug: 138116133
Bug: 143173197
Change-Id: I2f2767ec12c49e5d3a8d2a7b86db5457d062275c
The European Commision prescribes an auto-standby feature for TV panels:
After some hours of inactivity, the device has to go from on-mode to
standby-mode or off-mode, or another condition not exceeding the
applicable requirements for standby-mode or for off-mode.
After a long time of no user activity the device should go to sleep,
even if wakelocks are held (eg. during video playback).
Test: 1. Set attentive timeout low, to 35s:
`adb shell settings put secure attentive_timeout 35000`
2. Play a YouTube video
3. Observe warning dialog appearing after 5s
4. Verify: Clicking a remote button or changing the setting higher hides
the warning. Remote button press is consumed.
5. Verify: After 35s of not pressing a button the device goes to sleep
6. Verify: If "Stay awake" developer option is enabled, then
warning is not displayed and device does not go to sleep after 35s
7. Verify: No warning or sleep if setting is set to -1
Test: `atest frameworks/base/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java`
Bug: 137633812
Change-Id: I551b6cffc336437fb1c5a00b4102f68ae0e003e9
Makes AuthController, GlobalActionsComponent, InstantAppNotifier,
SizeCompatModeActivityController, and TvStatusBar all injectable.
Prior to this CL, CommandQueue contained within it a SystemUI object
that it used to start itself up and add itself to components. With
this change, the SystemUI object is no longer necessary, as Dagger
will ensure that a CommandQueue is available to those who need it.
Bug: 143702229
Test: atest SystemUITests
Change-Id: I2763a6d918b41fe27a2370fdd820da476654e14f
* The tinting logic isn't good for developers, this change removes that
logic and respsects whatever icon they provide, HOWEVER, if it is not
adaptive it gets put on an adapative shape, consistent with launcher
* Updates the dot colour to be based on colour sample from the app icon
bitmap rather than the notification colour, consistent with launcher
* Updates Notification documentation to reflect changes
Test: manual with Bubbles test app (options for all the icon types)
Bug: 138943209
Change-Id: I8abfcef9ac1dcdd9f74643e84ef40a97385b744b
If there is any plugin that implements GlobalActionsPanelPlugin
with package name as defined in the config,
SystemUI will use that instead of the wallet plugin.
Test: manual
Change-Id: I63db81287ef40f085d5b542fe01eff29adeb1477
This adds a mini player in the QQS, and media carousel in QS
Incorporates the WIP layout changes from ag/9415169
To enable: adb shell settings put system qs_media_player 1
then toggle dark mode, or adb shell stop && adb shell start
Known issues with color overlays not updating until you press a button,
and old sessions do not get automatically removed from the carousel.
Test: manual
Change-Id: Iaeda470a920cb115c28ec98f04d74f255e1d5a12
Must edit the QS area to add the new Controls tile and have set:
adb shell settings put system qs_controls_tile_enabled 1
Test: visual
Change-Id: I7359d394d6d0a5eb408de7049bf0b3051c83e361
This moves most of the logic out of the view and into
StatusBarWindowViewController. It is not beautiful, but
it is cleaner than before.
This removes the final call to Dependency.get(FalsingManager.class).
This also fixes a small, old bug in
StatusBarWindowView.onInterceptTouchEvent where the results
of calling hte super method were being unintentionally ingored.
(This bug would have been introduced nearly seven years ago.)
Bug: 141751146,136279712
Test: atest SystemUITests
Change-Id: I5e09c1c0f2a3098db1a47837ddce3d382099f483
* changes:
Animate panel to transparent if profile is managed
17/n: Show credential UI if setDeviceCredentialAllowed(true) and no biometrics
16/n: Add PIN/Password
15/n: Allow Auth UI to start in credential UI
14/n: Animate to device credential UI when lockout occurs
13/n: persist device credential across configuration changes
12/n: Add LockPatternView for setDeviceCredentialAllowed(true)
11/n: Animate panel to full-screen when "Use Password" is pressed
Removing old confirm device credential logic
Includes lock icon, title, subtitle, description, lock pattern view.
Corner radius and padding animates nicely from !=0 --> 0.
Support for password/pin will come in a subsequent CL.
Unit tests for AuthCredentialView will be added when
password/pin are implemented.
Support for persisting across configuration changes
and landscape view will also be added in a subsequent
change.
Test: BiometricPromptDemo with the following:
1) Confirm pattern, callback received
2) Rejected, error string shown
3) Lockout (5 attempts), countdown string shown,
pattern view disabled until countdown is over
4) Cancel pattern auth, callback received
Test: atest BiometricServiceTest
Test: atest com.android.systemui.biometrics
Change-Id: Idc01e33be0074a6c8a43f60b172a4391bfbe5e8a
To support, adding members to UsbDevice to mark devices as having audio
playback and audio capture capabilities.
Bug: 136080195
Test: Run "UsbAccess" test bed. Connect audio and non-audio USB devices
and see the additional prompt shown/not-shown.
Change-Id: Ie7c614d9ed30a163c350b18a54b8a9115698779d
When flashlight is disabled, specify that it's because the camera is in
use.
Fixes: 138872957
Test: manual
Change-Id: I40836d8a51fca625d2a4391ba6a7315dd9d895eb
Implementing a piece of SystemUI (TvStatusBar) for notifying users when
audio recording is conducted by applications (other than Assistant,
which is the only exception for now).
Bug: 134942150
Change-Id: I57b50816e9b4379c22e4281568ef990d96fd2498
Test: build, flash, run any app that records audio
This CL implements a (somewhat hacky) way to enable HTML attributes in
the mobile data type content description strings. This way we can use
some basic styling in the Quick Settings cellular data tile which uses
it in a TextView.
We do this by assuming that the content description is valid, escaped
HTML, and send two separate CharSequences to all of the listeners, all
of which can then decide if they need the regular content description or
the prettified version.
Test: atest SystemUITests; system ui demo mode
Bug: 141177147
Change-Id: Idf387111b0cdc34ad3762eac0ec6c2b484b393e3
Merged-In: Idf387111b0cdc34ad3762eac0ec6c2b484b393e3
This CL implements a (somewhat hacky) way to enable HTML attributes in
the mobile data type content description strings. This way we can use
some basic styling in the Quick Settings cellular data tile which uses
it in a TextView.
We do this by assuming that the content description is valid, escaped
HTML, and send two separate CharSequences to all of the listeners, all
of which can then decide if they need the regular content description or
the prettified version.
Test: atest SystemUITests; system ui demo mode
Bug: 141177147
Change-Id: Idf387111b0cdc34ad3762eac0ec6c2b484b393e3
A bunch of things, but they are (mostly) hidden behind a flag:
- Made the NotificationEntry#bucket concept more generic
- Added logic to NotificationData to set a bucket int on each entry
- Flag config_usePeopleFiltering in systemui.config turns on new behavior
- Reduced the number of hacks in NotificationData to 1. Now it sets the
buckets n the entries only once post-sort
- NotificationEntry has a basic check for "people"
- NSSL delegates to NotificationData/NotificationSectionsManager for
creating sections
- NotificationSectionsManager can now manage any number of sections
The basic gist of this change is to enable and partially implement a
"people" notification section. In order to do that, we have to do a
little bit of cleanup to make NotificationSections more generic, then
find a way to differentiate "people" notifications.
To generify the sections logic, this change furthers the concept of
notification "buckets". A bucket is entirely a concept shared between
NotificationData and NotificationEntry, but with the intention that each
bucket will get its own section. Once a set of buckets is decided upon,
NSSL tells NotificationSectionsManager to create the necessary sections.
NSSL also will need to ask the sections manager to check the entire list
of view in the panel for section boundaries, since they can be anywhere
and there can be any number of them.
The people filtering is currently straightforward. NotifiationEntry
checks for EXTRA_PEOPLE_LIST or EXTRA_MESSAGES and checks for people
information on a notification. If it exists, then that entry gets sorted
to the top and will get its own bucket set (if the setting is on).
Test: visual
Bug: 140232781
Change-Id: I7fa5c4d7509f2ca5f485216f2de0160c91802235
Assume that doze sensors will be prox gated.
Not doing so would be a bad idea anyway since the device would wake
up way more often than it should and drain battery.
Another improvement on this CL is that regular DozeSensors prox
checks are trying to use a binned brightness sensor instead.
Fixes: 138765669
Test: atest DozeSensorsTest DozeTriggersTest
Test: single tap from AOD (observe no re-registration of lift)
Test: 'reach' from AOD (observe no re-registration of lift)
Test: receive notification with prox covered or unobstructed
Change-Id: I1961ff9b16480ba1a60c397570494dd7acb4802d
(cherry picked from commit f40bd8fbb6)
Merged-In: I1961ff9b16480ba1a60c397570494dd7acb4802d
Builds on ag/9335278 to show "..." below tiles that support direct to
detail view on touch.
Test: manual
Change-Id: I1c192656505bac228a3935f0aa498c37a468d973
* changes:
9/n: Add work profile background, enable new dialog by default
8/n: Ensure accessibility works on new implementation
7/n: Gracefully handle configuration change during animations
6/n: Add fingerprint support to the refactored UI
Protoype for modifying color of tiles. Provides 2 modes:
qs_color_enabled: allows changing background of tiles
qs_color_icon: allows changing color of icon (only use with
qs_color_enabled)
Enable using:
adb shell settings put system <name> <value>
where name is one of (qs_color_enabled|qs_color_icon) and value is (0|1)
With qs_color_enabled, color of individual tiles can be changed using
adb shell settings put system qs_color_enabled/<spec> <color>
where spec is as defined in QSFactoryImpl and color is one of
(red|green|blue|yellow|accent).
Test: manual
Change-Id: I66096cfa5cb8570074b1547ca3e41bd0888973fa
* changes:
4/n: Rename files to make more sense
3/n: Tapping outside of the dialog should cancel authentication
2/n: Start plumbing authentication signals to the UI
1/n: Refactor BiometricPrompt UI hierarchy
Test: presubmit setup on source branch
Bug: 130289146 Create a Gradle build for SystemUI
Bug: 136279712 Daggerize FalsingManager
Bug: 137324767 "Unable to instantiate service com.android.systemui.doze.DozeService" exception breaks launcher tests
Bug: 137563419 Remove Bouncer reveal delay from bypass flow
Bug: 138787339 Allow Services and Activities to be injected into directly.
Bug: 139128921 [AS 3.5 RC2, SDK API 29 rev 2] Overload resolution ambiguity: while removing element from HashMap
Bug: 64712476 Import translations for dev branches
Change-Id: Ib7fd4706c070907fd556c3532957f3b1b046de6d
Also flatten the directory, there isn't much point in having a sub package
right now.
Bug: 123378871
Test: atest com.android.systemui.biometrics
Change-Id: I598f1909f6e6940d73da37921d9b5cd2c02f4331
The UI is split into a few components now
1) BiometricPromptContainerView - top level, contains the work profile
background view, the panel (rounded background)
2) BiometricPromptBiometricView - nested within, displays contents for
biometric auth
The panel must be one level higher (in hierarchy) than the biometric
dialog to allow future non-biometric views to be added cleanly, and to
allow separate animations for the background/foreground.
Bug: 123378871
Test: Demo app with text that requires scrolling; dialog bounds are correct,
view elements are contained within the dialog bounds
Test: atest BiometricDialogImplTest
Test: atest BiometricDialogViewTest
Test: atest AuthBiometricViewTest
Test: atest AuthBiometricFaceViewTest
Change-Id: Ie4e5a8641a10229154a1011afefacb823aadf565
* Status bar height can change and we're not accounting for it
* Introduces landscape value of bubblePaddingTop that is smaller so
that there is more space for app content in landscape
Bug: 135487618
Test: manual - requires changes in other CL's in stack, but then:
- have bubbles, expand stack
- rotate device
=> notice that spacing between status bar + expanded view
is smaller in landscape & larger in portrait
Change-Id: Ib6e98c7ee51408fb8bb51ecb3b4875fc618de8b3
Test: presubmit setup on source branch
Bug: 130289146 Create a Gradle build for SystemUI
Bug: 136279712 Daggerize FalsingManager
Bug: 137324767 "Unable to instantiate service com.android.systemui.doze.DozeService" exception breaks launcher tests
Bug: 137563419 Remove Bouncer reveal delay from bypass flow
Bug: 138787339 Allow Services and Activities to be injected into directly.
Bug: 139128921 [AS 3.5 RC2, SDK API 29 rev 2] Overload resolution ambiguity: while removing element from HashMap
Bug: 64712476 Import translations for dev branches
Change-Id: Ib7fd4706c070907fd556c3532957f3b1b046de6d
Dependency is no longer a subclass of SystemUI. It gets initialized
directly as part of the application, just like the rest of Dagger.
It was an awkward implementation of SystemUI anyways.
Bug: 137324767
Change-Id: Icf49e9262e8c0710210a8bc0231c4d16396ffdf3
Test: atest SystemUITests
Assume that doze sensors will be prox gated.
Not doing so would be a bad idea anyway since the device would wake
up way more often than it should and drain battery.
Another improvement on this CL is that regular DozeSensors prox
checks are trying to use a binned brightness sensor instead.
Fixes: 138765669
Test: atest DozeSensorsTest DozeTriggersTest
Test: single tap from AOD (observe no re-registration of lift)
Test: 'reach' from AOD (observe no re-registration of lift)
Test: receive notification with prox covered or unobstructed
Change-Id: I1961ff9b16480ba1a60c397570494dd7acb4802d
Before we were saying "Swipe to open" on bouncer and some users though
it was a bug, not we're being more explicit and saying "Swipe up to try
again"
Test: manual
Fixes: 134042651
Change-Id: I1a057819253252cc3912ff6b66505a8d55dc93ae
This CL only reroutes swipes on the right side of the screen (left side
for RTL) to perform a two-finger swipe, opening QS instead of
notification shade.
Enable: "adb shell device_config put systemui qs_split_enabled false"
Test: manual
Change-Id: I96feed6440121b0c07606b398c9e2bb82570ef11