| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Connect if we're not already connected
bug: 261638193
test: Manual - https://drive.google.com/file/d/1Hm2X5YFoccjDYQ5KPo72uHahFjN0WR6T/view?usp=sharing
Change-Id: I25020f13188fb0972f08dfcf96846524333cca34
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
where possible. By invoking the constructor, we are not reusing the
cache that will mitigate binder calls for reading state. There is an
instance of LockPatternUtils that is injectable via dagger. Some
classes, however, cannot inject this. (i.e. view, service, or static
method). I've removed the instances where I could to hopefully mitigate
binder calls and jank.
Fixes: 268192609
Test: Check to see if bouncer works properly mostly.
Change-Id: I56a19fa6e419f1a7af28171edf4ebaccf55e9929
|
| |
|
|
|
|
|
|
|
|
|
| |
ACTION_USER_SWITCHED only applies to the foreground user and will not
trigger for concurrent secondary users. By replacing this with
UserTracker, the switching logic can be modify to track what is relevant
for a given display/user.
Bug: 249831072
Test: atest SystemUIUnitTests
Change-Id: I6f5d482072ae92d7dda5e1753901b3f5dc521312
|
| |
|
|
|
|
|
|
|
|
|
| |
Replacing getCurrentUser calls in SystemUI with UserTracker to help
centralize source of truth.
Bug: 249831072
Test: atest SystemUITests
Change-Id: I23bd747192adcd715b96442f0834254ad0bb44a3
Merged-In: I23bd747192adcd715b96442f0834254ad0bb44a3
|
| |
|
|
|
|
|
|
|
| |
ag/19735654 removed the code that read the cached setting value, but
not the field that stored it or the code that wrote it.
Bug: 252815574
Test: atest NotificationLockscreenUserManagerTest
Change-Id: Ie88d7038237ec1d4cbd05591a48005fb34edc566
|
| |
|
|
|
|
|
|
|
|
| |
Replacing uses of Dependency.get as it is deprecated. Deleted
NonPhoneDependencyTest as it has been disabled since this CL: ag/12474869
Bug: 218352036
Test: atest NotificationLockscreenUserManagerTest
Change-Id: Ifd7489a4084cf36331ab68c597be09e25572ce5b
Merged-In: Ifd7489a4084cf36331ab68c597be09e25572ce5b
|
| |
|
|
|
|
|
| |
Bug: 200269355
Test: atest SystemUITests
Change-Id: I3e418dfd7d3512ac811e67733e32818622a0a415
Merged-In: I3e418dfd7d3512ac811e67733e32818622a0a415
|
| |
|
|
|
|
| |
Bug: 200269355
Test: atest SystemUITests
Change-Id: I8d0546eab8f66ad76636c1212c15cda386f522da
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
occluded.
This issue was originally raised in the S timeline, but had already been fixed by the refactor to use UnlockedScreenOffAnimationController, which called updateIsKeyguard(/*force*/ true) from onFinishedWakingUp(). This solved the problem of re-triggering the redaction, but it also intriduced a new bug where the keyguard could end up briefly showing on top of the occluding activity when AOD was supported but off. As a result, they limited the call to when the AOD was on (and animations were controlling, etc). This CL uses the opposite check to make sure we recalcualte redaction (and only redaction, not the whole keyguard) when waking up while occluded.
We also needed to make sure that we rerun the notification pipeline when updating public information so that any necessary public views are sure to inflate. That rerun has been limited in scope to conditions where the public mode information has detectably changed.
Bug: 237349699
Bug: 238990302
Bug: 239828798
Test: CTS Verifier NotificationPrivacyTest on emulator, AOD off, AOD on
Change-Id: I95443ee6b77377aceb54b983d34131628027da9b
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixes: 230581048
Test: manual
1. Post messaging style notification w/ Notify.apk
2. Enable redaction of sensitive notifications on lock screen
3. Lock device
Observe: Notification is showing redacted view on lock screen
Change-Id: I393ae6c465b2e86a3dbb88414f784fe871390f38
Merged-In: I393ae6c465b2e86a3dbb88414f784fe871390f38
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Revert "Update NotifLockscreenUserMgrGoogle constructor"
Revert "Update ArcNotifLockscreenUserMgr constructor"
Revert submission 17183599-pipeline-clearall
Reason for revert: b/232727914 b/232587284
Reverted Changes:
I84e9f909e:Update ArcNotifLockscreenUserMgr constructor
Ic88341de0:Update NotifLockscreenUserMgrGoogle constructor
Ibc66576d2:Don't show "Clear All" w/ redacted notifs
Change-Id: Ie7469cb568471f4739a8c591ccc6d669895a8315
Merged-In: Ie7469cb568471f4739a8c591ccc6d669895a8315
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Update the NotificationLockscreenUserManager code to listen for
account removals and notify the new listener method onUserRemoved
- Use this to trigger removals in the bubble data repository / UI
Some users may have a parent user (e.g. work profile can belong to
a parent user). We store persisted bubbles under the parent user and
have a separate field for the specific bubble user. To support this,
I pass the parent of the removed user.
Test: atest BubbleVolatileRepositoryTest BubbleDataTest
Bug: 218525763
Change-Id: Ia147cbac15ebce70bbbcc52926089f33901a99dc
Merged-In: Ia147cbac15ebce70bbbcc52926089f33901a99dc
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The logic that determined when to show the Clear All Silent button in the
Silent notification header was occurring when the Silent (and Minimized)
sections update. At this time, there was no up-to-date information about
whether or not the notification has senstive content
(SensitiveContentCoordinator occurs later in the pipeline), and no
information about whether or not sensitive content can even be shown or
must be redacted (handled by NotificationStackScrollLayoutController).
Additionally, the visibility of the Clear All button in the shade footer
wasn't being adjusted at all under the new pipeline.
To remedy this, the following changes were made in this CL:
1. `boolean NotificationEntry#isSensitive()` has been dismantled. Rather
than relying on some separate code to properly set this value at some
point, instead the concept of "Sensitive Content" is derived directly
from the SBN + Ranking, and is kept separate from the state of the
user's settings, as well as the state of the lockscreen (whether we
would currently need to redact).
2. NotificationLockscreenUserMananger is the de-facto place for tracking
and querying redaction state. This includes checking if the user's
settings *would* require redaction (#needsRedactionInPublic), and
whether a user is actually public (#isLockscreenPublicMode).
3. In order to keep clients in sync, a new observable interface is
exposed on NotificationLockscreenUserManager that clients can use to be
notified when to requery #needsRedactionInPublic, due to user settings
changes. This replaces NotificationEntry#OnSensitivityChangedListener
4. SensitiveContentCoordinator has been removed entirely; the pipeline
no longer needs to invoke NotificationEntry#setSenstive, since it no
longer exists.
5. NotifStats has been updated to include additional information
extracted from the NotifCollection necessary to dynamically query for
redaction in the View layer, without needed to re-process the entire
list; specifically, we track a Set of users that currently have
sensitive notifications in the shade. This set is tested against the
user's settings (tracked separately from the pipeline in
NotifLockscreenUserManager).
Test: atest
Test: 1. Turn on notification redaction (no sensitive contents on lockscreen)
2. Receive a silent sensitive notification
3. Lock the device
4. Double tap camera
5. expand shade
Observe: Clear all hidden in footer and in silent header
Fixes: 213443266
Fixes: 230581048
Change-Id: Ibc66576d28a48f7c82cad875ed2dcb57a7b23f10
Merged-In: Ibc66576d28a48f7c82cad875ed2dcb57a7b23f10
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is the first step in moving over to the new public
android.util.Dumpable api.
Bug: 217567642
Test: m SystemUI
Merged-In: Ibaebcfb2c6c5326d0c45b8c72d868c76655d89a0
Change-Id: Ibaebcfb2c6c5326d0c45b8c72d868c76655d89a0
|
| |/
|
|
|
|
|
|
|
|
| |
Lock screen settings should be cached to avoid hitting an IPC with
ContentProviders.
Test: manually change lock screen privacy settings
Test: atest NotificationLockscreenUserManagerTest
Bug: 224779945
Change-Id: I6ae410a3c46b65cb15b0eacefa19ae272939f1b2
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Android T allows apps to declare a runtime receiver as not exported
by invoking registerReceiver with a new RECEIVER_NOT_EXPORTED flag;
receivers registered with this flag will only receive broadcasts from
the platform and the app itself. However to ensure developers can
properly protect their receivers, all apps targeting T or later
registering a receiver for non-system broadcasts must specify either
the exported or not exported flag when invoking #registerReceiver;
if one of these flags is not provided, the platform will throw a
SecurityException. This commit updates all the exposed receivers
with a new RECEIVER_EXPORTED_UNAUDITED flag to maintain the existing
behavior of exporting the receiver while also flagging the receiver
for audit before the T release.
Bug: 161145287
Test: Build
Change-Id: I5faa64ae0d2b22b62390bf13cb2b87fd6926e0c7
|
| |
|
|
|
|
| |
Bug: 176924824
Test: manual dump and read
Change-Id: I1fb4e0cae43d9a6dfea038c40cd31aa66d96a6a2
|
| |
|
|
|
|
|
|
| |
queries
Fixes: 204764178
Test: atest NotificationLockscreenUserManagerTest NotificationLockscreenUserManagerGoogleTest
Change-Id: I456135f23ee0949faec0202250e26a632dc8a5c5
|
| |
|
|
|
|
|
|
| |
Fixes: 169655596
Fixes: 204183781
Fixes: 204770080
Test: atest SystemUITests
Change-Id: I96cd96d1a037e7cca301242b1dba25ecdd72be9a
|
| |
|
|
|
|
|
|
|
| |
Bug: 200956118
Bug: 199388061
Test: manual
Test: atest SystemUITests:ShadeListBuilderTest SystemUITests:NotifSpecBuilderTest
Change-Id: I36f6f2ac2a503daa01594248a1e6cffcfbd5c348
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Dependency.get() automatically registers its managed objects to the
DumpManager if they implement Dumpable. However, if code is refactored
that removes all usages of Dependency.get() in favor of Dagger
injection, then there is no longer a guarantee that the class in
question will be registered to DumpManager (and so included in bug
reports).
Instead, remove the auto-registration feature of Dependency in favor of
manually registering all dumpables with the DumpManager.
Bug: 198713580
Test: atest
Change-Id: Ie02a44fb7da0b76bf53da874cc9eee030a1b9173
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NotificationLockscreenUserManagerImpl.mCurrentUserId is set in the
constructor and when a user switch broadcast is received. If a user
switch occurs before the receiver is registered, mCurrentUserId will
have a stale value.
This results in SystemUI not acting on the CLOSE_SYSTEM_DIALOG intent,
because the intents user id is compared with the stale mCurrentUserId.
Fixed by updating the current user after the receiver has been
registered.
Bug: 191094807
Bug: 180434613
Test: Add sleep to force the race, and verify the bug no longer occurs.
Change-Id: I972d87a56875e42c87b2418da8ea5be40a776621
|
| |
|
|
|
|
| |
Bug: 186481467
Test: atest
Change-Id: Ie5b07bda46c2d217f5eb3be341595a6cb70fdd57
|
| |
|
|
|
|
|
|
|
|
| |
Specifically, whether user and device policy manager settings
means that a notification should be hidden or redacted on
the lockscreen
Test: cts verifier
Fixes: 173090853
Change-Id: Ic09a2b05a1acce5d3d63732861bdc69b274a1eba
|
| |
|
|
|
|
| |
Fixes: 160886843
Test: SystemUITests
Change-Id: I88a10b370d9022bbc226eabce3b41293e55c7f96
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is far easier to move _everything_ into SysUIComponent, and then
selectively promote things back to GlobalScope and/or WMScope than
it is to try to do it one at a time. With this change, though lots
of files are touched, very little actually changes structurally.
After this change goes in, folks should stop using @Singleton quite
so freely. Most things should live in @SysuiSingleton. @Singleton
is due to quickly be replaced by @GlobalScope.
Bug: 162923491
Test: atest SystemUITests && manual
Change-Id: Idc31d3d83b030581fb1fa869f7fafc4f2d3a8828
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`StatusBarManager#onNotificationClick` and
`StatusBarManager#onNotificationActionClick` are signals we send to
system server about notification clicks. This CL adds a shim so that we
can have an in-process callback about the exact same events.
This CL also adds NotificationInteractionTracker, which basically just
merges the NotificationClickNotifier callbacks with the notification
collection and will be able to answer the question "has the user
interacted with this notification"
Lastly, this modifies the logic in ForegroundServiceLifetimeExtender
which now checks the interaction flag for notifications. So if a user
tapped on a notification action (for instance) which _then_ triggers a
notification cancel, it will succeed. It _does not_ as of yet release
the notification from lifetime extension upon interaction. So if a
notification is canceled and then interacted with, it will still live
the full amount of time.
Test: atest SystemUITests
Bug: 144324894
Change-Id: I42201d6e7b7ffe9ad4f19c774b638a36a51750ef
|
| |
|
|
|
|
|
|
|
|
| |
This is a direct conversion, split into a separate CL in order to
improve readability of the later CL(s) in this relation chain. There
are no functional changes to the code.
Bug: 153554168
Test: builds, atest
Change-Id: Ic476fbb09d159a17cb811a49002b28b4fa823a57
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously if the current (primary) user didn't allow sensitive
notifications to show all their info on the lockscreen, then
notifications for managed profiles also wouldn't show their sensitive
info despite the user intentionally allowing work profile notifications
to be shown on the lock screen.
Now, if a notification is sent to a managed/work profile, then we only
use the work profile setting to redact the sensitive notification
information on the lockscreen. For all other notifications, we
additionally check the current user's redactivility setting.
Test: atest NotificationLockscreenUserManagerTest
Fixes: 143536631
Change-Id: I468ca0b68188a594ebf0b78ebcc3bc0bb93687ac
|
| |/
|
|
|
|
|
|
|
|
|
| |
If the user has a setting to not show silent notifications on the
lockscreen, then all notifications that don't make noise from all
notification sections aside from the media section should hide. For
example, silent notifications categorized in BUCKET_PEOPLE.
Test: atest NotificationLockscreenUserManagerTest
Fixes: 152934785
Change-Id: I98c0f0d0ac17463f92cc0228903d13ab226c5c1a
|
| |\
| |
| |
| |
| |
| | |
* changes:
Register broadcast for all users
Update redaction upon profile changes
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Otherwise NLUM might not receive events after switching to guest.
Bug: 145135488
Test: manually switch users
Change-Id: If0e0ab2161571fe561bc9460788efbcbb7050621
|
| |/
|
|
|
|
|
| |
Test: atest NotificationLockscreenUserManagerTest
Test: atest KeyguardSliceProviderTest
Bug: 144299702
Change-Id: Ia91cab4ebeaa36a7f26588197c4aba3291f88d28
|
| |\
| |
| |
| |
| |
| | |
* changes:
Minified people row
Current user and work profile availability in peoplehub
|
| | |
| |
| |
| |
| |
| | |
Fixes: 144285253
Test: manual, atest
Change-Id: I94afce96f6e164e7f4d4bb212920e3de8c5c1208
|
| |/
|
|
|
|
|
|
|
|
|
|
| |
@MainHandler, @MainLooper, @MainResources -> @Main
@BgHandler, @BgLooper -> @Background.
Also, move the providers for Handlers and Loopers into the
ConcurrencyModule.
Bug: 146510722
Test: atest SystemUITests
Change-Id: I991735e1fdca397784427409a2ae696a7374f584
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Coordinators added to NotifCoordinators will be passed the
initialized NotifListBuilder and NotifCollection when they're
ready for Pluggables, NotiLfetimeExtenders and NotifCollectionListeners
to be registered.
This CL adds the KeyguardCoordinator which filters notifications based
on whether the keyguard is showing and user lockscreen notifcation
settings
Test: atest KeyguardCoordinatorTest
Bug: 145134683
Change-Id: Ie5a2c0f696a6eedbed203b1b5809164742d23132
|
| |
|
|
|
|
|
|
| |
Also, clean up a bunch of other injectable objects.
Bug: 144503618
Test: atest SystemUITests
Change-Id: I5ec005ee21689d800238fa30c86ef6e08b832bbf
|
| |
|
|
|
|
|
|
| |
This call is cached locally by Settings
Fixes: 140058091
Test: make
Change-Id: Ia5eb335e2de69b39095b7d151d4d1e128c9abbd8
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ye olde NotificationData class was responsible for a few general things:
- Keep a list of visible `NotificationEntry`s
- Filter / sort the visible entries
- Keep a sorted / filtered list of those entries
- Answer lots of questions about the entries themselves (rank,
isAmbient, list of entries for current user, etc.)
- Keep track of the current RankingMap
- Set priority buckets on entries
- Tell the group manager when things changed
The basic idea here is to remove NotificationData in favor of 3 other
changes:
1. Any place which needed to query NotificationData for info about the
entry (in particular its ranking) can just ask the entry for it now.
Entries all keep a reference to their rank
2. NotificationEntryManager now just maintains its own list of visible
notifications. It was already the point of contact to get a handle to
NotificationData so this makes call sites simpler.
3. Create a simpler NotificationRankingManager (maybe delete this
eventually) to encapsulate the sorting logic and hang on to the latest
RankingMap
Test: atest SystemUITests
Change-Id: I14073e103c6d50da37207ca8fd86828da0aaaff9
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL migrates most of the remaining classes to use
BroadcastDispatcher. Some classes left are Views or created before the
BroadcastDispatcher can be injected.
Adds docs for instructions on using the BroadcastDispatcher.
Using the broadcast dispatcher, the time system_server spends
dispatching common intents to SystemUI like SCREEN_OFF and SCREEN_ON can
be seen to decrease from ~70-150ms (in a Q build) to ~2-4ms.
Additionally, once a broadcast is received by the dispatcher, time
until it is fully dispatched inside SystemUI is not impacted greatly.
Most broadcasts are fully dispatched after ~20ms with a few of them
taking ~100ms.
Test: atest SystemUITests no regressions
Test: build and boot
Test: tried some random broadcasts and they are properly dispatched
Test: BroadcastDispatch dump
Test: adb shell dumpsys activity broadcasts
Bug: 134566046
Change-Id: I26a592be66b053f25669b5481b58bf7f07bfd0da
|
| |
|
|
|
|
|
|
|
|
|
| |
NotificationEntry.key -> getKey()
NotificationEntry.notification -> getSbn()
.key -> mKey
.notification -> mSbn
Test: atest
Change-Id: Idcc56af5d941d600b2958afb9ed898fd7ab361cc
|
| |
|
|
|
|
|
|
|
| |
Test: atest SystemUITests
Test: adb shell dumpsys activity service
com.android.systemui/.SystemUIService \ dependency DumpController
NotifLog
Bug: 141470043
Change-Id: I4263333da209a4765cd9a3dd1931780d2041b3bf
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Merging UnlockMethodCache and KeyguardMonitor into KeyguardStateController,
making it injectable and introducing KeyguardStateController#isUnlocked
in order to make it easier to keep track of the lock screen state.
Test: atest SystemUiTests
Test: unlock with face, lock again
Test: unlock with password, lock again
Bug: 139363827
Change-Id: I37ac8c7826101852c61382559be9868125c15fac
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Bug: 139051615
Test: atest SystemUITests && atest SystemUIGoogleTests
Change-Id: Ic4dd5978001c208504c137cee41f363d7e70b1b5
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL introduces a way of blocking IPCs on the main thread.
This is enforced by StrictMode, and enabled on tests and eng
builds.
All current blocking IPCs were whitelisted and bugs will be
filed, in order to fix them for R.
Bug: 139360025
Test: adb logcat
Test: atest SystemUITests
Change-Id: I45af2619605ee36b6bae83ef080272c62754b654
|
| |
|
|
|
|
|
|
| |
Also daggerize Android Auto.
Test: tested locally
BUG:139865326
Change-Id: Ia53398ce410ae8f3768142723af578c215f286a9
|