Bug: 147423001
Test: tested behavior both in old and new flows (no change to
notifications flow; visual changes to new flow)
Change-Id: If3a170c73609edb4f74db81b9109d83cc160b206
SurfaceControl now has #setBackgroundBlurRadius, which receives a radius in pixels
pointing out how much the content behind the current window should be blurred.
Bug: 141640413
Test: visual; on power menu and shade
Test: adb shell dumpsys activity service com.android.systemui
Change-Id: I367f8a7199d5b37ad476d3c2bc02c8900f8c1f9e
Credential-related stuff should use effectiveUserId instead of userId.
Otherwise, authenticating for work profile will not work when one-lock
is enabled.
Fixes: 147653255
Test: Comment1 and Comment2 in the bug linked above
Test: atest com.android.systemui.biometrics
Change-Id: Icd9ad3fc69695cec509e3532b2b54d93833b94b5
This is the first step to create another new window for status bar.
Small window => TYPE_STATUS_BAR: The bar on top of screen.
Large window => TYPE_NOTIFICATION_SHADE: Anything else.
Bug: 136993073
Test: build then flash
Test: atest WmTests SystemUITests
Test: atest RegisterStatusBarResultTest InsetsFlagsTest
Manual Test:
- Bouncer can show when leave showWhenLocked activity.
- StatusBar can show when comes HUN in fullscreen mode.
- StatusBar can play enter/leave animation in fullscreen mode.
- Able to drag notification panel when bubble/glow existing.
- Switch to market launcher, and run above tests.
- Drag notification panel from launcher several times and observe it
works fine.
Change-Id: Id9f72cd0e21f01b50d57f02ea60f97c6460926b7
- Linking the conversation notification to the newly created
channel and triggering a ranking update
- Incorporating the flag for whether notifications/channels with
invalid shortcut ids should be allowed
Test: atest
Bug: 137397357
Change-Id: Ice1d545f2405a6c9b9eefaf1fd5481622ad72d7b
- Remove them from the non-conversation controls
- Make sure to turn on bubbles globally if a person
is bubbled
Test: atest
Bug: 137397357
Change-Id: I5ae102d739acf4d821af8380287cdf21bca7abd9
The new config resource allows for an overlay to specify additional QS
Tiles. These tiles will be available on a fresh flash of the device, as
well as when the user resets the tiles in QSCustomizer.
If the tiles are custom tiles and the apk is not installedi or the
TileService is disabled, the tile will just be discarded.
Test: atest QSTileHostTest
Test: add the grayscale custom spec to the config value and check that
the tile appears on reset.
Bug: 147493661
Change-Id: Ifbb8cc8ac7ef16c4b67ebbc776703e9ac8208c43
Right now, the controller does nothing. Follow up CL's will add
functionality to it. This CL is meant as a MVP starting point.
Bug: 147245740
Test: atest SystemUITests
Change-Id: I7772449ad7a27dbca079cb6a0100c5776a7261f9
Also default the flag to allow more notifications into that
space to on.
Test: atest
Bug: 137397357
Change-Id: I225f462879bdb28411cc631a3e259b4c71ba7394
Previously GroupCoalescer would delay all notifs in a group until some
max time limit had been reached. However, it can take a full group
upwards of 400ms to be delivered, but we don't want to delay ALL group
notifications by 400ms, because updates to individual children would
also have to wait that long.
Instead, switch to a debounce system where each time a grouped
notification is posted, it sets a timer for a relatively short amount of
time (~50ms). If another notification from the same group comes in, the
timer is reset. And there's still a max of 500ms for safety purposes.
This way, something that is truly a large group post can take up to
500ms by constantly resetting its timer, but a one-off group update can
take place almost immediately.
Test: atest SystemUITests:GroupCoalescerTest
Change-Id: I9808258069c00e7d994035edcfb154b93f75d15a
This CL adds the following controllers for dealing with Controls in
SystemUI:
* ControlsController - Handles favorites and communication with other
controllers
* ControlsBindingController - Handles binding to the different services
and comunication with them.
* ControlsProviderLifecycleManager - Handles binding with one service
and forwards API calls to it.
* ControlsListingController - Handles finding and listing apps that
satisfy the service requirement
Additionally, this CL adds first versions of the management screen to
add or remove favorites. These are persisted.
To enable:
* adb shell settings put secure systemui.controls_available 1
* restart
To launch management activity:
* Enable controls
* adb shell am start
com.android.systemui/.controls.management.ControlsProviderSelectorActivity
Missing from this CL:
* Multi user support
* Documentation in the controller classes
* Graceful rebinding
* Throttling of Binder calls
* Better dumps
Test: atest com.android.systemui.controls
Test: manual testing of favorite management activities
Bug: 147732882
Change-Id: Ib4932b7f8fd3f2e3ee0ef1c28ddda1bec66c41e4
Round one - needs polish, and actions may be added or removed
in the future, and demote isn't working yet.
Bug: 137397357
Test: atest
Change-Id: Ia52598bec58fc54b8bde29168cd419a24d1e4dab
To create a notification section:
- Override Coordinator#getSection to return your desired NotifSection
- Ensure your new section is added in the correct order to
NotifCoordinators.mOrderedSections
Test: atest SystemUiTests
Change-Id: Ia3f83f4b662cdfb198981e94fba67f97eab767b8
Keep the base statusbar.notification.collection package *only* for
classes that need to access package-private members of
NotificationEntry/GroupEntry/etc.
At some point, we should move NotifEntry et al into their own package
like "core" but that will involve a massive scary CL.
Test: atest
Change-Id: I10808f8ce6bd4ae4ce8c1ac194bde6b8a6fea758