Add support for Supplier<Icon> in QSTile.State, allowing a method for
CustomTile not to cache the drawable for its IconViews. This fixes the
problem that the ImageViews in QQS and QS were trying to use the same
drawable and putting it in a bad state.
Test: Add 3rd party tile to first position in QS and turn on/off; visual
Change-Id: I408d6391a718fcb3f847e72bd303551d2d004dbb
Fixes: 67356768
We add a new StatusBarManager flag to disable the global actions dialog
(a.k.a. the power button menu), which is required in certain kiosk mode
scenarios.
Bug: 65813398
Test: runtest systemui
Test: manual, by using a modified version of TestDPC and
DevicePolicyManagerService
Change-Id: Ib7da2f4837281e98e558afcc30be8bae6f2e179a
Use a custom QS fragment if the UI mode is car. This fragment disables
the quick settings row and expansion. Remove the config options that
used to have disabled this in the phone QSFragment.
To accomplish this, introduce a new QSFooter interface. The old
QSFooter.java now implements this.
Test: boot on phone and Android Auto headunit
Bug: 33210494
Change-Id: I5accc2d27d6725380ca5e271d332a03991c9419b
Adds new mechanism for activities in sysui to be replaced by plugins
and allows that to happen for recents.
Test: runtest systemui
Change-Id: I8b570ce7c57484c58a52afe5e247d24ebfa0c57f
- Find out when the dreaming starts / stops
- Request the doze UI to show / hide
Bug: 62534409
Test: manual, have no plugin, check that doze still works as expected (i.e.
pick up gesture shows it, noti shows it)
Change-Id: I11618e47e0bab18423f0d89c8daf285d8c14d238
- Add plumbing for accessibility action IDs, enabling custom
accessibility options in the local context menu
- Allow snooze view to be focusable
- When option is selected announces the selection via window state change
Test: manual
Bug: 34840333
Change-Id: Idca0b0e00e792d3e3f71fc6a15b9b26d9136f6da
This will allow the NotificationMenuRow plugin to do something else
rather than showing a menu when the view is long pressed.
- Allow menu to intercept touch events
- If the menu item provided to long press is null, don’t show it
- Also passes the status bar notification when the menu is created
or updated
Bug: 62534409
Test: manual, have no plugin and long press -> see notification info
have a plugin that returns null for long press -> nothing happens
Change-Id: I384c5217d5343e990f4c3506eb2477b015705e5c
Allows plugin control over notifications right at the entrance
to sysui and gives them the opportunity to mess with them how
they see fit.
Test: manual
Change-Id: I569bf37138da66d0524acecfa36ceb409f98fbb4
Remove it from the header and drop it back in its old location.
This reverts commit 10b4c8a4ab.
Test: runtest systemui
Fixes: 62331189
Change-Id: I087589c256894e0972656619e665b6a16536ce6c
If it's a false touch don't show the menu.
Test: manual: try swiping things away on the lockscreen (fast + long)
try showing notification menu on the lockscreen
Bug: 38208094
Change-Id: I16ceedd90a5fbc80156a9495d6cfd6fa02771886
- Don't show when collapsed, show divider instead
- Don't show when no notifications
- Animate between states while expanding/collapsing
- Other visual cleanup
Test: visual
Change-Id: I923c963fa70d63601b6a181299b04c5fc49922bb
Fixes: 38199857
Fixes: 38483355
Fixes: 38409326
Fixes: 38417776
These need a bit more work like length control and animations, etc.
but this is a decent start.
Test: visual
Change-Id: I750d777b2b4a19f8c586066712f5a3f7e79befd6
- Altered how the menu location is set so that it doesn't depend on RTL
state
- Also fixes an issue where if you change from landscape to portrait or
vice versa then the menu wouldn't be visible because the placement is
based on the width of the notification which changes based on orientation
Test: (1) have notifications and show the menu, toggle the RTL state,
show the menu, note that it is visible
(2) have notifications and show the menu, rotate the device, note
that the menu is still visible
Fixes: 36874498
Merged-In: I33b8f87e53a3393a2802842ad2196c9d089ec7fc
Merged-In: I3a3b688f2b301f5ac0446a55b668db79c323a95c
Change-Id: I3a3b688f2b301f5ac0446a55b668db79c323a95c
- Altered how the menu location is set so that it doesn't depend on RTL
state
- Also fixes an issue where if you change from landscape to portrait or
vice versa then the menu wouldn't be visible because the placement is
based on the width of the notification which changes based on orientation
Test: (1) have notifications and show the menu, toggle the RTL state,
show the menu, note that it is visible
(2) have notifications and show the menu, rotate the device, note
that the menu is still visible
Fixes: 36874498
Change-Id: I3a3b688f2b301f5ac0446a55b668db79c323a95c
The DozePlugin has not been able to keep up with the changes to DozeMachine.
At this point it is cleaner to just remove it.
Bug: 30876804
Test: make SystemUI
Change-Id: Ie8cd1488eb862017c54b92b1fba07537c0143bff
Also updates NotificationMenuRow tests to actually check if menu
was created.
Test: Manual, have foreground service, check if snooze is visible
Bug: 37152715
Change-Id: I09cf60598c3e8991f2da731da1ef7e0a718c3435
Proguard fails for jars that contain no class files, disable it.
Test: m -j ANDROID_COMPILE_WITH_JACK=false PluginDummyLib
Change-Id: I0001eb3de7b7cea2fa9f91de0c1e59569d41ae8a
Very few logic changes, mostly just breaking out certain interfaces
and classes to the plugin lib.
Test: make + volume keys
Change-Id: Ieabc6d35f6ef980842849236a0b8ffd5543b3a2c
1) Updates the notification menu plugin to do more:
- The plugin can now supply the view it wants to display behind a
notification as the menu
- Touch interaction (i.e. notification translating on top) is piped
through to the plugin so it can update the view behind the notification
2) Makes NotificationMenuRow an implementor of the plugin which moves
a bunch of that logic out of NotificationStackScroller
Test: runtest systemui
Change-Id: I8723b96c195ff7311317d5523418cfcbe2a79b52
- Move default global actions ui to sysui
- Add fallback legacy interface in case sysui breaks
- Switch to fallback if sysui dies or isn't responding
Test: Long-press power
Change-Id: I943522611de5dbbee61e66c67cf3a56379091e97
- Adds footer to QS which contains the date/alarm info
and all touch targets (settings, edit, etc.)
- Swaps out emergency + carrier text on cell tile for a
standard CarrierText from lock screen in the header
to make the header only contain status info.
- Add dividing line
- Work on animations
Test: runtest systemui
Change-Id: I97dfea1b1ea7006b53eb61ac3a1f942c64dd282d
This will allow prototyping of individual QS tiles and/or their
visual representation without having to write a plugin for the
entire panel. This will allow quick iteration on QS UI + dual
target tiles.
Test: Install plugin using new API
Change-Id: I05ca9d9f5a200a1dad2c3582251a36edb5cb9aba
The new annotation versioning system allows plugins to share common
global interfaces that can be versioned on their own. To facilitate
this add a static method for plugins to get a hold of dependencies.
To get any dependency a plugin must @Requires it so it can be version
checked.
Test: Plugin that uses the new call.
Change-Id: I8e01260f8fbc14465502d506a7aa08212795ad9b