This will allow apps to delegate posting to persistently
running apps, to decrease the numbers of times apps need to wake up
just to post a notification.
Bug: 111452544
Test: runtest systemui-notification
Change-Id: I1ead239747f2871f222d0ce6a971d1448a0766ad
(on AndroidTV there is no need for wallpaper and RAM is wasted)
Bug: 74517029
Test: Push a low resolution wallpaper to the device (adb push new_wallpaper /data/system/users/0/wallpaper),
reboot and check the buffer size for com.android.systemui.ImageWallpaper (adb shell dumpsys SurfaceFlinger)
Change-Id: I992175997ed09360e8fc9c2cabf354fb4fabd1f9
- Previous FillContexts should be shown on subsequent FillRequests.
- Client state should be properly propagated.
Test: atest MultiScreenLoginTest
Test: atest CtsAutoFillServiceTestCases # to make sure it didn't break anything
Fixes: 112051762
Bug: 113281366
Change-Id: I17de046385bd923279684d461afd24b49ad6f89a
Move notifications into the min bucket after they've
been seen (plus a variable delay based on type).
Test: ExtServicesUnitTests
Bug: 111475013
Change-Id: Id577162d063dc1b0ad370f66af7a503e294c5b65
This is useful in cases such as using an email address as either email or
username.
Test: atest UserDataTest FieldsClassificationTest
Fixes: 111437231
Change-Id: I04c84cc635497ab89464c2e5795f87b9f5ae1995
Apply some rules about what notifications are automatically
silenced.
Test: make ExtServicesUnitTests &&
adb install -r $OUT/testcases/ExtServicesUnitTests/ExtServicesUnitTests.apk &&
adb shell am instrument -w android.ext.services.tests.unit/android.support.test.runner.AndroidJUnitRunner
Bug: 111475013
Change-Id: Idf0434c0688b3249a9fc2d5aa655665e71e53249
- onRestore, the ZEN_MODE_CONFIG_ETAG shouldn't change
even though creationTime for zen automatic rules are updated
Test: ZenModeHelperTest.java
Change-Id: If241143f6759553b3297e5d7f12e3a3caddbd17d
Fixes: 111415419
Allow the notification assistant to block or silence
incoming notifications, or demote notifications after they
are posted
Also temporarily silence everything by default
Plus: bonus refactoring of the cancel notification runnable so I could
write just one of those tests :)
Bug: 111475013
Test: manual, runtest systemui-notification
Change-Id: Ifa04a21919f60d06080cd63e7d7747180b641308
For packages:
android.service.wallpaper
android.service.vr
android.service.voice
android.service.trust
android.service.textservice
android.service.restrictions
android.service.resolver
android.service.quicksettings
android.service.power
android.service.pm
android.service.persistentdata
android.service.oemlock
android.service.notification
android.service.media
android.service.gatekeeper
android.service.fingerprint
android.service.euicc
android.service.dreams
android.service.diskstats
android.service.chooser
android.service.carrier
android.service.battery
android.service.autofill
android.service.appwidget
android.service
This is an automatically generated CL. See go/UnsupportedAppUsage
for more details.
Exempted-From-Owner-Approval: Mechanical changes to the codebase
which have been approved by Android API council and announced on
android-eng@
Bug: 110868826
Test: m
Change-Id: I50fb66b55bbc82cc505b483c98f8bd09ae0b5020
Merged-In: I51645d8a8cdce3015749fc27e34830e822ef41ae
For packages:
android.service.wallpaper
android.service.vr
android.service.voice
android.service.trust
android.service.textservice
android.service.restrictions
android.service.resolver
android.service.quicksettings
android.service.power
android.service.pm
android.service.persistentdata
android.service.oemlock
android.service.notification
android.service.media
android.service.gatekeeper
android.service.fingerprint
android.service.euicc
android.service.dreams
android.service.diskstats
android.service.chooser
android.service.carrier
android.service.battery
android.service.autofill
android.service.appwidget
android.service
This is an automatically generated CL. See go/UnsupportedAppUsage
for more details.
Exempted-From-Owner-Approval: Mechanical changes to the codebase
which have been approved by Android API council and announced on
android-eng@
Bug: 110868826
Test: m
Change-Id: I51645d8a8cdce3015749fc27e34830e822ef41ae
For example, when an app uses one activity to enter username, another for
password.
Bug: 112051762
Test: atest MultiScreenLoginTest # new API
Test: atest CtsAutoFillServiceTestCases # to make sure it doesn't break anything
Test: m -j update-api
Change-Id: Ia95888901ab72f75938efb87103cd76f5ec8ce09
If the apps has provided their own choices, they will be used, as opposed
to the "smart replies" from NAS.
Otherwise, smart replies will be applied to the notifications
with a freeform RemoteInput but without choices.
The smart reply model is not ready yet, so canned response is hardcoded
and it is disabled by default. To test it out, run
adb shell setprop persist.sys.smart_replies_experiment true
Also, to get rid of the target >= P SDK requirement, you may want to run:
adb shell settings put global smart_replies_in_notifications_flags enabled=true,max_squeeze_remeasure_attempts=3,requires_targeting_p=false
Test: atest SystemUITests
Test: atest frameworks/base/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenerServiceTest.java
Test:
1. adb shell setprop persist.sys.smart_replies_experiment true
2. adb shell settings put global smart_replies_in_notifications_flags enabled=true,max_squeeze_remeasure_attempts=3,requires_targeting_p=false
3. Send a message to myself, observe the hardcoded smart replies.
Bug: 111674540
Change-Id: Ia61a77faef7c4dcba0501abfec80e3e8cc7274e4
All NotificationListenerService callbacks and methods will
still work for managed profiles, but NotificationAssistantServices
must operate within their current user.
Fixes: 111429721
Test: runtest systemui-notification
Change-Id: I9747db80f986e172e309f8f17559c943ce265c76
In P we introduced a private concept of AOD wallpapers, in Q
we're making it a public surface.
Bug: 111395593
Test: make
Change-Id: I4c406386f0ee15dc8734a24b040482b6cb807126
The metadata-based approach does not work with AAPT2.
Fixes: 80422287
Test: atest FieldsClassificationTest
Test: m -j update-api ExtServices
Change-Id: Ib7b626e77518e7eb4fcb88d85129cb67ed090c28
Specifically, a change in state from one DND provider
shouldn't result in another's state being cleared if they
aren't yet bound (or are intentionally unbound).
Fixes: 111251709
Test: cts, cts-verifier
Change-Id: I42a0ba935577e708d9df02e2a6d3620e42395a51
(cherry picked from commit 8f05600189)
Specifically, a change in state from one DND provider
shouldn't result in another's state being cleared if they
aren't yet bound (or are intentionally unbound).
Fixes: 111251709
Test: cts, cts-verifier
Change-Id: I42a0ba935577e708d9df02e2a6d3620e42395a51
In O the settings were in the 'allow' section, not the 'disallow'
section, so the conditional needs to be reversed.
Test: runtest systemui-notification, manual
Change-Id: Icfcb328ac1d44b83b11d185be40c4ec696ebfb25
Fixes: 111313535
Here is the flow:
NAS generates Adjustment -> NMS convert this to RankingUpdate ->
SystemUI.NotificationListener receives the RankingUpdate in either
onNotificationPosted / onNotificationRankingUpdate (Depend on does NAS
provides the adjustment before the notification is en-queued) ->
NotificationEntryManager determines the need of reinflation ->
NotificationInflater inflates / reinflates the view with these
extra bits like smart actions.
Note: We do re-inflation here as simply adding a button to the existing
notification view seems problematic. For example, if the original
notification does not have any action, we will need to inflate the
template with the action container.
Screenshot:
https://hsv.googleplex.com/5731489463402496
Test: atest SystemUITests
Test: atest com.android.server.notification.NotificationAdjustmentExtractorTest
Test: Modify ExtServices to provide adjustment in
createEnqueuedNotificationAdjustment, post a notification with
a entity in a sample app, observed the notification is updated.
(Testing the onNotificationPosted flow)
Test: Modify ExtServices to provide adjustment in onNotificationPosted
by calling adjustNotification. Post a notification with
a entity in a sample app, observed the notification is updated.
(Testing the onRankingUpdated flow)
Test: Repeat the above test, but explicitly make the RowInflaterTask
slow by inserting Thread.sleep. This can test the onRankingUpdated
flow when the row is not yet inflated.
BUG: 110527159
Change-Id: I98aee3ac62f60b189ea92ac9fc000127325dfead