This CL changes notification inflation behavior to only inflate the
public content view when the notification needs to be redacted in the
first place (i.e. the setting to hide sensitive notifications is on and
the notification would be hidden under the setting). This saves around
.1 MB per notification.
Bug: 111809944
Fixes: 111809944
Test: runtest systemui, manual tests (toggled hide sensitive on and off,
tested ambient pulses under both)
Change-Id: Ia1d00db00c5164f043c999578f0be4b55f223f8e
Temporary workaround to get things rolling while a greater fix is
incoming. This reverts behavior to essentially inflating all
HUN/ambient content views.
Bug: 117933032
Bug: 117894786
Test: manual, runtest systemui
Change-Id: I731ec6e320d1813a8bbca52ceb21c1d8bb4e73ff
Moved the rotation button in nav bar logic to its own button.
Test: atest NavigationBarRotationContextTest
Bug: 116041410
Change-Id: I7bb3c4c4a1637b52a7219c1074c09403c9505734
Break the NotificationPresenter out of the StatusBar and most of
the logic with it.
- Break RemoteInput Callbacks out of NotificationPresenter
- Break Environment Callbacks out of NotificationPresenter
- Add ShadeController interface for StatusBar (abstraction
layer from StatusBar)
- Add InitController to allow for post-init tasks (dependency
resolution should not go here)
- Make some dependencies (ShadeController, NotificationEntryManager,
NotificationLockscreenUserManager usually) lazily-resolved to break
some dependency cycles
- Lots of other cleanup
Test: Existing tests do not pass
Change-Id: Ic043c6b15a4ffe551fc27f99b25d5c3caa1be582
KeyguardBottomAreaView will be re-inflated when the theme changes,
it's necessary to also restore some of its internal state, otherwise
we'll have NPEs.
Test: manual
Test: atest KeyguardBottomAreaTest
Fixes: 117121386
Change-Id: Idac8192877b65f8ad00cd60a2bb0c1ce75476cf1
The title of heads-up notification was shown incompletely
because it's covered by operator name.
To fix this issue, the operator name should be hidden
when a heads-up notification is shown.
Fixes: b/116533819
Test: atest SystemUITests
Test: manual - enable config_showOperatorNameInStatusBar
and show a heads-up notification
Change-Id: Id3318cd7cb2c9b6950392fadd11d02ab873d84c5
CastTile registers with NetworkController and shows unavailable
status when not connected to WiFi (regardless of internet connectivity).
Includes accessibility context for this state.
Added tests for behavior.
Test: manual && atest
Change-Id: I3004ed18e545d8d8c448f01d33eb70bcfd9831b2
Fixes: 78152102
In the previous CL, heads up views were freed while they were still
animating away. As a result, there could be a sudden shift in the view
the notification uses (most easily reproducible if you tap on a HUN with
actions as the actions disappear). This CL introduces an API to set a
a listener for when the content view becomes inactive and remove it then.
Bug: 111809944
Test: runtest systemui, manual (HUN with full screen intent, tap, see
that it goes away without visual jank)
Change-Id: Ib27bcf993f6be41aa4fde50b39817004610f5fd4
In order to save memory, this CL introduces API to set a subset of the
content views of a notification to inflate instead of all of them.
It also changes the default views to inflate to the contracted,
expanded, and public views. Heads up and ambient views are only
inflated if the respective notification will heads up or pulse. In
addition, these views are freed up once the heads up/pulse ends.
This saves a significant amount of memory. While 50 notifications would
take up around 50 MB before, they take up around 27 MB after this
change.
Bug: 111809944
Test: runtest systemui, manual
Change-Id: I970420943a3ecfac3e53d83a342b29636e32a51d
Also add a special API to set them. Internally they are still just
regular private flags
Test: Built
Bug: 116798569
Change-Id: I687b751fa18c7fbcc9bf95aa44d94d8a5614a88f
SystemUI uses PackageManager to enable/disable plugin components.
Launcher cannot do this, so we abstract this logic into an interface;
Launcher will have a different implementation.
Test: "atest com.android.systemui.shared.plugins"
build succeeds and all tests pass
Bug: 115877296
Change-Id: Ie6f11572026dafa369c99722d63d4daa0ea44fb5
Settings.Secure.putString() was failing to remove the setting for
config_dozeAlwaysOnEnabled, so the test would only pass if the default
setting matched what was currently set on the device.
The fix seems to be to use
Settings.Secure.putStringForUser(UserHandle.USER_CURRENT), because
systemui tests are now running as the system
Test: atest com.android.systemui.doze.DozeConfigurationTest#alwaysOn_followsConfigByDefault
Change-Id: I482e1b72b4a3567d5448ded0aa110f2e3e05c515
This change modifies NotificationStackScrollLayout to reset the exposed
menu state in the following cases:
- transitioning to AOD
- scrolling via a touch on the exposed notification
- shade height changing, causing footer to clip the exposed notification
This prevents the notification's icon from having its scrollX set (which
is how we keep it lined up with the translated notification) when it's
in the shelf.
Test: manual
Change-Id: Ie2d179c9275ec457ee46c6a40859310610a6d9d8
Fixes: 112304611
If the low threshold is not shown for any reason and we reach the
severe threshold and it does show it will double trigger. This CL
just makes it so both are marked as "shown" if the severe warning
is shown regardless of whether the low warning was shown or not.
Test: runtest systemui
Bug: 116716293
Change-Id: I7fff2d7beba7b37312b9a4c4951a68c3d1f1ba3f
Fixes promise of StatusBarManager#expandSettingsPanel to document what
happens on invalid tile name.
Added test to verify correct behavior.
Change-Id: I057210eb47411cf2a7dfefdd4efe49b96fd33f69
Fixes: 111128728
Test: runtest && manual
In addition to changing imports, this required some changes to use java
7, since that's what the shared lib needs to be for launcher.
See bug for more details on this project.
Test: "atest com.android.systemui.shared.plugins"
build succeeds and all tests pass
Bug: 115877296
Change-Id: Ib79ede0a61664df0ba1a194632a345d2229777fc
Change-Id: Ic0a1178e4f3d6f2addd9bae1c31ec57dffee8eba
Test: Automated tests should pass. Manual testing should also show that notifications behave the same as before (swiping, tapping, dismissing, snapping/unsnapping menu, etc.)
The recent change to NotificationGroupManager to use
HeadsUpManager.isAlerting over the row causes a NPE to occasionally
surface if NonPhoneDependencyTest runs long enough. When it sets up
the listener, it eventually gets a callback that adds a notification and
calls into NotificationGroupManager even though it hasn't had its
dependencies properly set up. This CL fixes that by setting its
HeadsUpManager to the mock.
Test: ensure in all tests that NotificationGroupManager has its
dependencies set when NotificationEntryManager adds a notification
Fixes: 116495228
Change-Id: I7b82eedbf46fde5c8709dd03fdd36059041ef911
- Removing references to SystemServicesProxy (to be removed) for
AM/WMWrapper
- Removing unused code for old nav bar swiping logic, and also unused
and quickstep-incompatible code for dragging in recents
- Removing all event bus logic from outside recents subpackage
- Exposing PipUI component for bridge caller
Bug: 114137554
Test: Can still swipe up
Change-Id: Ibcfbe06acae06ea5950615cabd52243279fee16d
adb command that allows the AOD brightness to be changed:
adb shell am broadcast -p com.android.systemui
-a com.android.systemui.doze.AOD_BRIGHTNESS
--ei brightness_bucket {BUCKET_HERE}
Fixes: 116060647
Test: adb shell am broadcast -p com.android.systemui -a com.android.systemui.doze.AOD_BRIGHTNESS --ei brightness_bucket 2
Test: atest DozeScreenBrightnessTest
Change-Id: I57de0801aac17a3df466899aec2cf4f37a017d33