* BubbleMetadata encapsulates necessary info to display a bubble
* Replaces app overlay intent usages with BubbleMetadata
* Renames existing bubble APIs to use 'bubble' rather than 'app overlay'
Bug: 111236845
Test: existing tests pass
Change-Id: I6a85d3c41dda47139fb8d960cadf1c8e109cf29b
The added logging events are: blocking helper view displayed or
dismissed, any button click within the view, undo clicks and
system suggests of blocking helper.
* Move some of the getLogMaker logic of server's NotificationRecord
class to the common StatusBarNotification class.
* Use the StatusBarNotification.getLogMaker to produce blocking helper
logging.
* Add logging in the NotificationInfo for interaction and display of
the blocking helper view.
* Add logging in the NotificationBlockingHelperManager for system
suggests of blocking helper.
Bug: 112482290
Test: unittests and manual - viewed produced logs.
Change-Id: I3a5267d55faba21f6668d35ff8aa12deb0dc5921
Whenever there's a custom clock, notification icons should be on the top
left. The default clock will just show the dark shelf.
Test: atest NotificationStackScrollLayoutTest
Test: atest CollapsedStatusBarFragmentTest
Test: visual - with and w/o clock plugin
Test: visual - with and w/o RTL layout
Bug: 122301289
Bug: 111405682
Fixes: 120563185
Change-Id: I4c513d347f656262ee6f91bd208ab9f219e4419c
Also matched launcher with the stabilization flag only used for the new
quick step swiped right to left and vice versa.
Bug: 112934365
Test: atest QuickStepControllerTest
Change-Id: Ia6801f96e60c8764448bca6667b93846ef637318
* 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
Previously the test was marking entries as 'isBubble' automatically which
isn't quite correct.
This CL fixes that and has the side effect that enables bubbles for real.
This doesn't auto-bubble any notification, however, if the notification
is on an appropriately noisy channel & has an app overlay intent we will
bubble it.
Bug: 111236845
Test: atest BubbleControllerTest
Change-Id: I26c67ce002eec808591d7864b2366bb4140be386
With this CL we add a new key-value pair to
smart_replies_in_notifications_flags to control whether smart
suggestions should be turned on for heads-up notifications. By default
the suggestions are turned ON.
Bug: 122351821
Test: atest SmartReplyConstantsTest
Test: Run "adb shell settings put global
smart_replies_in_notifications_flags show_in_heads_up=false" and ensure
heads-up notifications do not contain smart suggestions.
Change-Id: I84292c10a4545112b0e993af33bb01a8cc18ce23
Docking pulses may take a long time and the wallpaper should fade away
to avoid aging.
Bug: 120464108
Test: atest SystemUITests
Change-Id: I8fac3a81b4b6b93089b58fbd30b67d8c6dae7139
Add a new key-value pair to smart_replies_in_notifications_flags that
controls the default tap-to-edit behaviour.
Bug: 111437455
Test: atest SmartReplyConstantsTest
Test: Try "adb shell settings put global smart_replies_in_notifications_flags edit_choices_before_sending=true" and observe
Change-Id: Ida90b98c28f4183697e84a6722768d41c72dd9cf
Some of the listeners care about doing things to notifications prior
to the entries being filtered and some of them care about it after the
entries are filtered.
This CL introduces new method onPreEntryUpdated and alters the existing
method to be onPostEntryUpdated so that listeners can know about both
events.
Test: atest NotificationEntryManagerTest#estUpdateNotification_prePostEntryOrder
Change-Id: Ifa56fbf27cbc8f58c8eda9c95c79a57f1a52c9ac
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
Media data will only be available when dozing to avoid duplication
on the notification shade.
Test: manual
Test: atest KeyguardSliceProviderTest
Bug: 111405682
Change-Id: I5e057496aa36c912293be54a4abfa62667b96db3
NotificationData.Entry -> NotificationEntry
Both NotificationData and NotificationEntry moved
`notification.collection` package.
Test: atest
Change-Id: Ia7158eb732711ddb324e514edb9884d518edab87
Up until now we've added smart suggestions to a notification from a
certain list (in order). When we've reached a suggestion that doesn't
fit in the notification we've simply skipped the rest of the
suggestions. With this CL we only skip the suggestion that's too long,
and instead try adding the less-prioritized suggestions.
Example:
Assume the notification can fit suggestions 1, 2, and 4 (suggestion 3 is
too long to fit):
"Action1", "Action2", "LongestActionEvererererrer", "Action4"
Behaviour before this CL: only the first two suggestions are shown:
"Action1", "Action2"
Behaviour after this CL: actions 1, 2, and 4 are shown:
"Action1", "Action2", "Action4"
Bug: 121250868
Test: atest SystemUITests
Change-Id: Icd90eebe1514e88a9dd0d48db050325764830155
This change removes the logic from NotificationEntryManager which snaps
an updated notification's view back into place and replaces it with a
NotificationEntryListener defined by the NotificationStackScrollLayout.
This allows us to remove a method from the NotificationListContainer
interface and gets us halfway to breaking the dependency from
NotificationEntryManager on NotificationListContainer.
Test: atest SystemUITests, manual
Change-Id: I744ece3fa660454d9725aa553ffebcfe8846a303
According to Android API council we shouldn't add a new semantic-action
flag to mark an action as contextual. Instead we should use a boolean
flag.
This CL adds that boolean flag.
Bug: 120842160
Test: build and run Notify app (in
vendor/google_experimental/users/cinek/), and ensure smart actions are
showing when the 'No Smart Actions' chooser is changed to
'Short Smart Actions'.
Change-Id: I5fc6dfa37ab28e3f29529cb6fda99c049783eb80
Conceptually, this should be a paired match with
onNotificationAdded(). Previously we were firing this method even
if the notification was no longer present (already removed) or
if it hadn't been added yet (was in pending).
Test: atest
Change-Id: I613f60aa8cf4e1aeb7bb13ff5883a221c9b623c6
This change introduces the ForegroundServiceNotificationListener
component, which contains the logic formerly in
ForegroundServiceController for updating its state in response to
notification events. ForegroundServiceNotificationListener adds a
standard NotificationEntryListener to the NotificationEntryManager,
allowing us to remove the explicit calls from NotificationEntryManager;
splitting this out to its own class prevents us from introducing a
circular dependency since NotificationEntryManager still needs to use
the query methods on ForegroundServiceController.
Test: atest SystemUITests, manual
Change-Id: Iec72aa3a9fd90e3f0079db3b2a3c4f1882e59731