b3a6aed980c4dddbd8a12799340154b7f64f9476 |
11-May-2018 |
Mady Mellor <madym@google.com> |
Add 'Snooze' to local context menu for notifications Bug: 34840333 Test: manual - 1. turn talkback on 2. have a notification focused 3. invoke local context menu, note that 'snooze' is an option 4. select snooze, note that notification is snoozed Change-Id: Id3ea62a0a9e5c2b8893aa5b548e64bb2b341d7a2
ndroid/systemui/plugins/statusbar/NotificationMenuRowPlugin.java
|
4c9048c364abcfa5edd26706f59c306c2ed772af |
20-Apr-2018 |
Amin Shaikh <ashaikh@google.com> |
Ensure QS tile secondary text marquees. Update the logic to marquee only the currently selected page. Change-Id: Idc2398e1c67c614414ae4298c43a1609431c62fa Fixes: 78159844 Test: visual
ndroid/systemui/plugins/qs/QSTileView.java
|
b17c2388a5b31b4a0411fda2dac84af06b2478b9 |
30-Mar-2018 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Control the QS label marquees." into pi-dev
|
ac55e01e1c8b67603134846c9b63002cc28aef48 |
27-Mar-2018 |
Julia Reynolds <juliacr@google.com> |
Volume UI updates - Reorder streams - constrain ripples - Show an introductory ripple on the ringer toggle - Add sound/vibration feedback for the ringer toggle - resize some elements Test: manual Bug: 76438403 Fixes: 73892482 Change-Id: I92dd6f5681f1822ae493a5a2b218b15970293e80
ndroid/systemui/plugins/VolumeDialogController.java
|
0f8ea543c165102e079b0a64afdfc600fe5e0387 |
27-Mar-2018 |
Amin Shaikh <ashaikh@google.com> |
Control the QS label marquees. - Start the marquee when fully expanded and pause when collapsed. - Also do not change qs label to multiline once it's already been resized to single line. Change-Id: I2dd4f6b5473a6a5147999c29441537227751b705 Fixes: 74757991 Test: visual
ndroid/systemui/plugins/qs/QSTileView.java
|
2ea93b708dbc49235b42e76a587d5f353638040f |
14-Mar-2018 |
Matthew Ng <ngmatthew@google.com> |
Revert "Revert "Centralized quick step/scrub/switch logic (1/2)"" This reverts commit 0e490d9208de480ed38fe31a12029fc59b0955e9. Reason for revert: Will be merged with fix Bug: 74726495 Test: manual Change-Id: I36ea9c2702107b23eff4adb1f3ba9fdc1be12999
ndroid/systemui/plugins/statusbar/phone/NavGesture.java
|
0e490d9208de480ed38fe31a12029fc59b0955e9 |
14-Mar-2018 |
Winson Chung <winsonc@google.com> |
Revert "Centralized quick step/scrub/switch logic (1/2)" This reverts commit b06ae3bf131b0bd0ded398d3a06974a6a9d78a50. Reason for revert: b/74726495 Bug: 74726495 Change-Id: I4bce8df13f9fa9e1b420382f7a96f9855510196f
ndroid/systemui/plugins/statusbar/phone/NavGesture.java
|
b06ae3bf131b0bd0ded398d3a06974a6a9d78a50 |
07-Mar-2018 |
Matthew Ng <ngmatthew@google.com> |
Centralized quick step/scrub/switch logic (1/2) Moved all the logic for quick step/scrub/switch to QuickStepController so touch events can be used for deciding which gesture is used. Once a gesture is decided, the rest will not handle the other gestures. Quickstep will trigger when passing a touch slop on navigation bar. The event onQuickStep (with a motion event) will be sent to launcher when this occurs telling it that systemui is not handling anymore motion events. During quickstep motion events will still be proxied. Used raw X and Y motion events for Opalayout and KeyButtonView so that the moving over the touch slop can be detected to ignore button (long) press state. Fixes: 73971902 Fixes: 74456391 Test: swipe up Change-Id: I40b931aa0a9f123b810ff9206c9b1ce040a68a56
ndroid/systemui/plugins/statusbar/phone/NavGesture.java
|
b586745d86a7335901646da128ef296e80ba0a22 |
28-Feb-2018 |
Julia Reynolds <juliacr@google.com> |
Show app ops guts when tap app ops icons Test: runtest systemui Bug: 64085448 Change-Id: Ia51044f77311ab705ffb9dd1ae204d0131316396
ndroid/systemui/plugins/statusbar/NotificationMenuRowPlugin.java
|
d696476fb31a203db38c7c31c347b27c8fda84ef |
16-Feb-2018 |
Beverly <beverlyt@google.com> |
System sounds get its own dnd toggle - Added logic for streams to be muted by dnd (unassociated with ringer) Test: runtest -x frameworks/base/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java Bug: 73362490 Change-Id: I1101e67282f7331497e91eb510d2bf4f1ea6b4b1
ndroid/systemui/plugins/VolumeDialogController.java
|
ee57193bb63ba64db1bfd70d9932588ebee7c5ff |
21-Feb-2018 |
Julia Reynolds <juliacr@google.com> |
New small volume dialog - Remove labels - Remove output chooser dialog - Reorder icons - Add settings affordance - Add instructive toast Test: manual Change-Id: I6640fb8147707936fe22e3c756ab29116973fbe3 Fixes: 73719758 Fixes: 73333233 Fixes: 71663761
ndroid/systemui/plugins/VolumeDialogController.java
|
a840199853836d04a07a3d49b79bdb908d70a8fe |
26-Jan-2018 |
Rohan Shah <shahrk@google.com> |
[QS] Fix irritating animation for QS We're animating 2x the icons and, due to the transparent grey background color, it looked like the icons were getting darker. Fixed by having it exclude the full icon frame while animating. Test: Visually Bug: 72173914 Change-Id: Ie36973ab44a86e6e1edd99b9266420a274d9aaa2
ndroid/systemui/plugins/qs/QSTileView.java
|
925cde8f745c4cf946d0e215d306d2b134ca44de |
23-Jan-2018 |
Beverly <beverlyt@google.com> |
Alarms and Media visibly muted in PriorityOnly dnd - if alarms and/or media cannot pass dnd and the phone is currently in priority only dnd, then the alarm and/or media volume stream will appear muted in the volume dialog and sound settings (Settings > Sound) - if all behavior for priority only dnd is not allowed to bypass dnd (discluding alarms and media), then ringer is muted when priority-only dnd mode is on. If a user clicks this ringer in the volume dialog, then dnd ends - Updated default zen config to version 3 (added alarms and media) Test: manually toggle alarms + media in Settings > Sound > DND > Behavior, toggle on/off dnd and then look at volume dialog and volume bars in Settings > Sound Test: runtest --path cts/tests/tests/media/src/android/media/cts/AudioManagerTest.java Fixes: 72052742 Change-Id: Ia9e809ec2be93cb5a9ba6518dce04bf3ce45110b
ndroid/systemui/plugins/VolumeDialogController.java
|
1d92689eeec1559ab9653f7dfc708f52596fadf4 |
25-Jan-2018 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Add QS scrolling support"
|
6692b47d37e21cb0768129bfb875ab8322f08bff |
24-Jan-2018 |
Julia Reynolds <juliacr@google.com> |
Display the current connected audio device If connected via bluetooth. Also fix long press behavior on the ringer footer, and change the output chooser icon. Test: manual Bug: 63096355 Change-Id: I2c4d86fb03f8ac38721b6fc580bba45871d59f5d
ndroid/systemui/plugins/VolumeDialogController.java
|
231b052d1f04d8b8835addc4f393f0e4fc58d5d2 |
04-Jan-2018 |
Jason Monk <jmonk@google.com> |
Add QS scrolling support The brightness slider and tile layout are now a scrollview and can handle nested scrolling between the views. There is some black magic which manages the touches to allow a scroll up to continue into a collapse gesture. TODO: need to add edge effect colors to theme Test: visual Bug: 70799330 Change-Id: Ief0c1480f001cae62175c8ac4f3784daaa0ed2b8
ndroid/systemui/plugins/qs/QS.java
|
c17b7d9143c029f5f17232dab6a06137b32aa7ac |
15-Jan-2018 |
Jason Monk <jmonk@google.com> |
Add support for secondary text in QS Test: visual Bug: 70799372 Change-Id: I64b1d050807e69f1755604e0baff94b89c9aeb2b
ndroid/systemui/plugins/qs/QSTile.java
|
a8f2426df625915553c3d85af8e6241f47fdf160 |
19-Dec-2017 |
Matthew Ng <ngmatthew@google.com> |
Beginning implementation of quickscrub (1/3) When enabled via launcher, the home button is able to be be pulled to the right side to send events to launcher via binder calls of when the quick scrub operation starts, ends and progress changes between each interval. Launcher will use this information to determine how the recents apps are laid out with vibration feedback. When the home button is pulled and released under 150ms, quick switch will occur. A binder call will tell launcher to switch to the previous app used. While quick scrub or switch is active, launcher will not get any nav bar motion events, only events for quick scrub and switch. Bug: 67957962 Bug: 70180755 Test: enable new experience via launcher settings Change-Id: I344f5d67f259ff454205ea4d2e95140f783d3b5c
ndroid/systemui/plugins/statusbar/phone/NavBarButtonProvider.java
ndroid/systemui/plugins/statusbar/phone/NavGesture.java
|
daad3da642c6645082b14b39d45a665a4a502cf0 |
18-Oct-2017 |
Evan Laird <evanlaird@google.com> |
Merge "Fix incorrect colors for CustomTile in QS" into oc-mr1-dev am: 859f8c4a21 am: e5d55d52b6 Change-Id: I7ab8bd9a58a7582286e73f1888b81d4a745eac24
|
b3daf2b88c86243db85dd8425df8d3a59d3b3d4d |
17-Oct-2017 |
Evan Laird <evanlaird@google.com> |
Fix incorrect colors for CustomTile in QS 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
ndroid/systemui/plugins/qs/QSTile.java
|
9851a8da998acdc657c8bc619657f6ff61ef44f3 |
10-Oct-2017 |
Charles He <qiurui@google.com> |
StatusBar: add DISABLE2_GLOBAL_ACTIONS. 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
ndroid/systemui/plugins/GlobalActions.java
|
d2aa1351c99cd8d82b2d826a9caed0706301642b |
25-Aug-2017 |
Jason Monk <jmonk@google.com> |
Roll back nav bar interface to version 2 Partial revert of If27641aedcd05ebc834c9dc0b38d18cd20ddae03 Test: make Change-Id: I47de1ca026028e16e6c4075e6be5b18a9746962c Fixes: 65055647
ndroid/systemui/plugins/statusbar/phone/NavBarButtonProvider.java
|
d33fe05c66b8423d956c55f0cc6a74269cd94adc |
17-Aug-2017 |
Daniel Sandler <dsandler@android.com> |
Merge changes from topic "revert-injectors" into oc-mr1-dev * changes: Revert "Add API to allow apps more control over instantiation" Revert "Add plugin to swap out recents"
|
f6e33b1b3330784ba7386d0c889d68f7f45bb1ae |
15-Aug-2017 |
Dan Sandler <dsandler@android.com> |
Revert "Add plugin to swap out recents" This reverts commit 0ea67d82e39ef4a2a1dfecd4796ab3e901cbc9e1. Bug: 64345190 Change-Id: I353c064db7bfaf91e98b5fd0d3e7180381a1b2b8 Test: n/a
ndroid/systemui/plugins/PluginActivity.java
ndroid/systemui/plugins/PluginDependency.java
|
98cdafb19192c5554319e0dc5f67a529cdac8640 |
15-Aug-2017 |
Annie Chin <afchin@google.com> |
Remove ButtonInterface.setCarMode() Bug: 63444779 Test: Android Auto still functions Change-Id: If27641aedcd05ebc834c9dc0b38d18cd20ddae03
ndroid/systemui/plugins/statusbar/phone/NavBarButtonProvider.java
|
0b99402f87ce1d8275dc60d98c2c12ccc0d9aceb |
08-Aug-2017 |
Jason Monk <jmonk@google.com> |
resolve merge conflicts of de0c539dd4f1 to oc-mr1-dev Test: I solemnly swear I tested this conflict resolution. Change-Id: I3f5eb2a0481fb09b98c0c522c82c233350c06375
|
b4302182bc916ba0f5ee08756c1b2d15cb845874 |
04-Aug-2017 |
Jason Monk <jmonk@google.com> |
Move shutdown UI to sysui (when possible) Test: click restart or power off in global actions Change-Id: I0dc30a9772bbfb3cd3c3568f157e854fef87bf87 Fixes: 63576195 Fixes: 64125291
ndroid/systemui/plugins/GlobalActions.java
|
54daefe3aa8dcdee149ce95fd4f8ecf60632c9f1 |
08-Apr-2017 |
Anthony Chen <ajchen@google.com> |
Use custom QS fragment for auto use-case. 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
ndroid/systemui/plugins/qs/QS.java
|
0ea67d82e39ef4a2a1dfecd4796ab3e901cbc9e1 |
07-Jun-2017 |
Jason Monk <jmonk@google.com> |
Add plugin to swap out recents 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
ndroid/systemui/plugins/PluginActivity.java
ndroid/systemui/plugins/PluginDependency.java
|
51278d6a279ed28e4092b0975da376f8c89ad499 |
21-Jun-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Add customs accessibility actions to snooze, allow it to be focused" into oc-dr1-dev
|
644f8e858318867ac5d9caf96cc89f23ed0e9f90 |
14-Jun-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Add plugin hooks to DozeService" into oc-dr1-dev
|
f33a097232f153e8dfeabd222d8809cd6a8d9457 |
13-Jun-2017 |
Mady Mellor <madym@google.com> |
Add plugin hooks to DozeService - 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
ndroid/systemui/plugins/DozeServicePlugin.java
|
920fd89aefee6b39aa634d6bb49c0669a86a63e3 |
06-Jun-2017 |
Mady Mellor <madym@google.com> |
Add customs accessibility actions to snooze, allow it to be focused - 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
ndroid/systemui/plugins/statusbar/NotificationSwipeActionHelper.java
|
f3f6ddf7cb9641b40c3eb7ddde4565e06ded8b6c |
12-Jun-2017 |
Mady Mellor <madym@google.com> |
Merge "Updates to NotificationMenuRowPlugin so that long press may be captured" into oc-dr1-dev
|
4ab2820e6c668ae7c55b300f126bb9f70c202ba3 |
06-Jun-2017 |
Mady Mellor <madym@google.com> |
Updates to NotificationMenuRowPlugin so that long press may be captured 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
ndroid/systemui/plugins/statusbar/NotificationMenuRowPlugin.java
|
8f8b5ac031ca3b2c44341a24e2e6429aa99f83fd |
09-Jun-2017 |
Jason Monk <jmonk@google.com> |
Merge "Add notification listener plugin hook" into oc-dr1-dev
|
98bf8ba30c51ccfdd5bef1d40123dca40fdf7cf9 |
08-Jun-2017 |
Jason Monk <jmonk@google.com> |
Add notification listener plugin hook 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
ndroid/systemui/plugins/NotificationListenerController.java
|
d7dab0f36f9e6568809b01964a1120f9827cc944 |
08-Jun-2017 |
Jason Monk <jmonk@google.com> |
resolve merge conflicts of a5b457b3bf6f to oc-dr1-dev Test: I solemnly swear I tested this conflict resolution. Change-Id: I2aa49bfdbd2c44684d0edb21b52520fea406e167
|
01df36f37fc470d3fd8c120b09cc4e7943cfacfb |
07-Jun-2017 |
Jason Monk <jmonk@google.com> |
Move QS cell indicator back into mobile data tile Remove it from the header and drop it back in its old location. This reverts commit 10b4c8a4ab3fc1fd55e5a636066e210ad17cf92b. Test: runtest systemui Fixes: 62331189 Change-Id: I087589c256894e0972656619e665b6a16536ce6c
ndroid/systemui/plugins/qs/QSTile.java
|
cbff978fb4b3cf9a00414c1a6afde031eff3df7a |
26-May-2017 |
Mady Mellor <madym@google.com> |
Merge "Check for false touches when determining if the notif menu should be shown" into oc-dev am: 70739fb812 am: 2cd3e9c500 Change-Id: I393a87e48487ec51fc563cc1cb9f50d604970dc0
|
70739fb812e2acb9880c008941015a467fca2001 |
26-May-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Check for false touches when determining if the notif menu should be shown" into oc-dev
|
2775a1d82d7382095b1197c4e055f139285b84f4 |
26-May-2017 |
Jason Monk <jmonk@google.com> |
Merge "Fix up the QS gutter" into oc-dev am: 78ee090f78 am: f4968f3c98 Change-Id: I9b7d99aa2b519c8c9629dbec32d22c906f0456f7
|
bd707492a2ef3641a9e9a64ef72b3b031dac0bb6 |
11-May-2017 |
Mady Mellor <madym@google.com> |
Check for false touches when determining if the notif menu should be shown 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
ndroid/systemui/plugins/statusbar/NotificationSwipeActionHelper.java
|
4de5d3c03dfc49a1cdf7f9e9a0676c36987cea06 |
24-May-2017 |
Jason Monk <jmonk@google.com> |
Fix up the QS gutter - 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
ndroid/systemui/plugins/qs/QS.java
|
97d52db8541de930871322847a36467c7a293e3b |
10-May-2017 |
Mady Mellor <madym@google.com> |
Merge "Fixes issue where the notification menu was not visible after RTL changes" into oc-dev
|
395617fd35ef0e712945359a760a00eb1aaf7475 |
05-May-2017 |
Jason Monk <jmonk@google.com> |
Start drawing QS slashes rather than using AVDS These need a bit more work like length control and animations, etc. but this is a decent start. Test: visual Change-Id: I750d777b2b4a19f8c586066712f5a3f7e79befd6
ndroid/systemui/plugins/qs/QSTile.java
|
d9c2232c9952d204a774041305b1ad5ce3d13715 |
05-Apr-2017 |
Mady Mellor <madym@google.com> |
Fixes issue where the notification menu was not visible after RTL changes - 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
ndroid/systemui/plugins/statusbar/NotificationMenuRowPlugin.java
|
767e2fe523706242197391d3aa2afa0a2ba076b4 |
03-May-2017 |
Jason Monk <jmonk@google.com> |
Merge "Fix QS visibility logs missing some info" into oc-dev am: df9b2e8d80 am: 86cc4bbac5 Change-Id: Ib765a9aa0807ddd074b3ff4b066c8f79eb2751a8
|
df9b2e8d808b0ba901575fc0ddff944de4887bfc |
03-May-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Fix QS visibility logs missing some info" into oc-dev
|
cb4b31d396df49bd55db64b1c40122656c6ec534 |
03-May-2017 |
Jason Monk <jmonk@google.com> |
Fix QS visibility logs missing some info Test: runtest systemui Change-Id: I6deb71576b137dfbd51f863e88ad939d4f3fab1b Fixes: 35454347
ndroid/systemui/plugins/qs/QSTile.java
|
673c07f3da0a7e5f21bd50549c1a3ccbea7deff0 |
03-May-2017 |
Adrian Roos <roosa@google.com> |
Merge "DozePlugin: Remove" into oc-dev am: b2484f2258 am: 825b574892 Change-Id: I5994fbdd9cc15c1dc42fbecd63792eb2214ab017
|
9d03a5254f5c7ac00071d56b91ddc15a3d761ed6 |
05-Apr-2017 |
Mady Mellor <madym@google.com> |
Fixes issue where the notification menu was not visible after RTL changes - 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
ndroid/systemui/plugins/statusbar/NotificationMenuRowPlugin.java
|
664c9d7d161cd49ec9b71fee6aa29ca5175c2890 |
29-Apr-2017 |
Adrian Roos <roosa@google.com> |
DozePlugin: Remove 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
ndroid/systemui/plugins/doze/DozeProvider.java
|
4c19760b9131a67b379f9b7060c5830cb5beaad7 |
11-Apr-2017 |
Mady Mellor <madym@google.com> |
Don't offer snooze for foreground service notifications 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
ndroid/systemui/plugins/statusbar/NotificationMenuRowPlugin.java
|
e645aee45a7784d772e4bdf846dd2e77335f30f2 |
31-Mar-2017 |
Jason Monk <jmonk@google.com> |
QS: Add transient icon for hotspot Will make the loading time more clear. Test: visual Bug: 32270851 Change-Id: I0ea7591da132ff65fb7fc16b03b2891891e66598
ndroid/systemui/plugins/qs/QSTile.java
|
c7146beabe21c84248c2c62336b0af8c2f19f4f5 |
29-Mar-2017 |
George Mount <mount@google.com> |
Make public getFragments() and onGetLayoutInflater() methods Bug 34703669 Test: I846ef668e3dd7d664cfb56d2b9400467ba9b79f4 Change-Id: Ie202960ada86b25e964f98a639b5f5740c8fdb79
ndroid/systemui/plugins/PluginFragment.java
|
be976024a847e1f72e1000b36e25729344a8c6cd |
24-Mar-2017 |
Mady Mellor <madym@google.com> |
Merge "Add plugin interfaces to control notification menu / swipe behavior"
|
782cd6711bc15e3f03456210b3543a67606d6591 |
22-Mar-2017 |
Jason Monk <jmonk@google.com> |
Create plugin interface for volume dialog Very few logic changes, mostly just breaking out certain interfaces and classes to the plugin lib. Test: make + volume keys Change-Id: Ieabc6d35f6ef980842849236a0b8ffd5543b3a2c
ndroid/systemui/plugins/VolumeDialog.java
ndroid/systemui/plugins/VolumeDialogController.java
|
95d743c38c919dd500d9dcacf9f998500d403d9e |
10-Jan-2017 |
Mady Mellor <madym@google.com> |
Add plugin interfaces to control notification menu / swipe behavior 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
ndroid/systemui/plugins/statusbar/NotificationMenuRowPlugin.java
ndroid/systemui/plugins/statusbar/NotificationMenuRowProvider.java
ndroid/systemui/plugins/statusbar/NotificationSwipeActionHelper.java
|
361915c727fc2ad137bfeed7ff74b3eadde96597 |
22-Mar-2017 |
Jason Monk <jmonk@google.com> |
Move global actions to sysui and add plugin interface - 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
ndroid/systemui/plugins/GlobalActions.java
|
e5b770e47d44a40d412c7d42010b2cf67920d9e3 |
04-Mar-2017 |
Jason Monk <jmonk@google.com> |
Updated QS UI - 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
ndroid/systemui/plugins/qs/DetailAdapter.java
ndroid/systemui/plugins/qs/QS.java
ndroid/systemui/plugins/qs/QSTile.java
|
702e2ebf9fbfb715c1d9b716683c9e4d182b575e |
03-Mar-2017 |
Jason Monk <jmonk@google.com> |
Add plugin API for individual QS tiles 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
ndroid/systemui/plugins/qs/QSFactory.java
ndroid/systemui/plugins/qs/QSIconView.java
ndroid/systemui/plugins/qs/QSTile.java
ndroid/systemui/plugins/qs/QSTileView.java
|
4eb01a20c40544f0ecc12f098743fd49dd588da4 |
02-Mar-2017 |
Jason Monk <jmonk@google.com> |
Fix NavGesture version Test: make Change-Id: Ib9925ac5f01d0d08ef7f37222f0e78321753b464
ndroid/systemui/plugins/statusbar/phone/NavGesture.java
|
ec34da8f6f31c5ee1e543c0c7999a067487e0ce9 |
24-Feb-2017 |
Jason Monk <jmonk@google.com> |
Add method for plugins to reference global dependencies 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
ndroid/systemui/plugins/ActivityStarter.java
ndroid/systemui/plugins/PluginDependency.java
|
e4b106b1aaf0f96a5006086d2a67e2c86e41c6a1 |
16-Feb-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Fix notification shelf icon showing on top of snooze leave behind"
|
d7937b348864d60472c5c8f700e748c97f596dff |
15-Feb-2017 |
Jason Monk <jmonk@google.com> |
Merge "New system for versioning sysui plugins"
|
434180ce5155f0c405080698031f05e9eab3dd4c |
13-Feb-2017 |
Mady Mellor <madym@google.com> |
Fix notification shelf icon showing on top of snooze leave behind Also fixes an issue where the guts closed listener would always call onHeightChanged because the notification isn’t marked as removed until after the listener gets called. Fixes: 34866027 Test: Manual - have one notification, snooze it Change-Id: Ic67bdb353b8bb5df8bdaaf6d3e71ade7da05ee46
ndroid/systemui/plugins/statusbar/NotificationMenuRowProvider.java
|
df44b606f357bb67e7a3b44e58f551c1c731ce42 |
03-Feb-2017 |
Geoffrey Pitsch <gpitsch@google.com> |
Updated Inline Notification Controls Removed old xml resources, strings, dimens, etc Different behavior when sent from the default channel. Display how many notification categories are used by the app. Group label when channel is associated with group. Add package icon. Fix tap-away-to-save behavior Test: runtest systemui Change-Id: Ib41a536a5c4e7c7747a2453eddc3b4b4b99ffa7a
ndroid/systemui/plugins/statusbar/NotificationMenuRowProvider.java
|
ca2156890ae6b37bb2137581e0420f488d5c3cd8 |
09-Feb-2017 |
Jason Monk <jmonk@google.com> |
Fix tinting and sizing of tuner lock screen shortcuts Test: visual Change-Id: I13f0281d38cd4d73322e9752d9bca36be2412917
ndroid/systemui/plugins/IntentButtonProvider.java
|
5bec68fbea1a02d7debc2eeeaf01b9478de216e5 |
09-Feb-2017 |
Jason Monk <jmonk@google.com> |
New system for versioning sysui plugins Use annotations to handle the multi-dimensionalness of interface versions, but still maintain compile time inclusion of current versions. Test: runtest systemui Change-Id: I0789a72112cf6630a6406f76020071c8a6d9e24c
ndroid/systemui/plugins/IntentButtonProvider.java
ndroid/systemui/plugins/OverlayPlugin.java
ndroid/systemui/plugins/Plugin.java
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginManager.java
ndroid/systemui/plugins/PluginPrefs.java
ndroid/systemui/plugins/annotations/Dependencies.java
ndroid/systemui/plugins/annotations/DependsOn.java
ndroid/systemui/plugins/annotations/ProvidesInterface.java
ndroid/systemui/plugins/annotations/Requirements.java
ndroid/systemui/plugins/annotations/Requires.java
ndroid/systemui/plugins/doze/DozeProvider.java
ndroid/systemui/plugins/qs/QS.java
ndroid/systemui/plugins/statusbar/NotificationMenuRowProvider.java
ndroid/systemui/plugins/statusbar/phone/NavBarButtonProvider.java
ndroid/systemui/plugins/statusbar/phone/NavGesture.java
|
421a9410b462770544c6ae9a554542fa2fe1acb1 |
06-Feb-2017 |
Jason Monk <jmonk@google.com> |
SysUI: Add method for plugins to keep status bar full screen Lots of things detect overlays these days (installing apps) and the only way to avoid the problems associated with this is to live in the status bar window. So allow plugins to hold the window open when they want to so they can have overlays be in that. Move StatusBarWindowManager to Dependency to make things easier as well. Test: Install the example plugin, test can access QS and interact with apps Change-Id: Ib2288bf56704960847217bad01a480ab407e0ffe
ndroid/systemui/plugins/OverlayPlugin.java
|
580f32d7b01cd94487b6473c47854cf01a03f53e |
02-Feb-2017 |
Geoffrey Pitsch <gpitsch@google.com> |
Merge "SystemUI uses Builder API with NotificationChannel"
|
1dc93bc407540561ebba1cc007073ab9c71d7a4e |
31-Jan-2017 |
Geoffrey Pitsch <gpitsch@google.com> |
SystemUI uses Builder API with NotificationChannel Some changes to channels based on UX feedback. Test: runtest systemui Change-Id: I1b2f661ba145d6926035f992231dc3c2f8cbf844
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginManager.java
|
de850bbcaa61c1874b803f2086443febbafd81a4 |
02-Feb-2017 |
Jason Monk <jmonk@google.com> |
Fix leaks in sysui Add support for testing for PluginManager and TunerService leaks and add tests for the known leaks and fix them. Also port PluginManager and TunerService to Dependency to make them easier to handle in tests. Test: runtest systemui Change-Id: I5642539ee24dd72f802905106decd0c87b41b4eb Fixes: 34846972
ndroid/systemui/plugins/PluginManager.java
ndroid/systemui/plugins/statusbar/phone/NavGesture.java
|
2a6ea9c2a1b52b0386270ec73e1e6d6a9b614a34 |
26-Jan-2017 |
Jason Monk <jmonk@google.com> |
Delete BaseStatusBar It is a relic of a more complex time, but has passed out of all knowledge for too long. Test: manual testing on phones and TV Change-Id: I62a15d9413ea4bda3ac82bf6f7d22c096e2c1cdc
ndroid/systemui/plugins/Plugin.java
|
1ab054bc37cf45cbeb54d1b73abde1cab3761392 |
26-Jan-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Add assistant-provided snooze options to snooze menu"
|
754d8226c9f775fa53610c1cb38fed0d33b7ec79 |
26-Jan-2017 |
Mady Mellor <madym@google.com> |
Add assistant-provided snooze options to snooze menu Test: manual via Assistant app Change-Id: Ie77181601a20e46774d009c7ecea65e99434ebd3
ndroid/systemui/plugins/statusbar/NotificationMenuRowProvider.java
|
8e032e15e6b1b6a2f44fd3d5063ee83f45d71189 |
25-Jan-2017 |
Dan Sandler <dsandler@android.com> |
Notification Channels come to SystemUI's own notifications. There are five channels at present: ALERTS - low battery etc. SCREENSHOTS - progress & result SECURITY - notifications hidden due to policy STORAGE - disk low STATUS - basically everything else The importance for each channel should match the legacy priority of the notifications it carries. Bug: 34250937 Test: runtest systemui Change-Id: I5915ca453258caea63b0d9bd756893db05e8d600
ndroid/systemui/plugins/PluginInstanceManager.java
|
3e6552036e341d76efabad3458039a7449adfa10 |
11-Jan-2017 |
Mady Mellor <madym@google.com> |
Add snooze listener so that a plugin can snooze a notification Test: manual Change-Id: Ieb3c0fcae6d832c3e8f5d1b983c52cf4f2ff6239
ndroid/systemui/plugins/statusbar/NotificationMenuRowProvider.java
|
87d7945f0693d3ca943bfb6491d4eba3a8d7cc75 |
10-Jan-2017 |
Mady Mellor <madym@google.com> |
Change NotificationGuts to contain a view NotificationGuts is now given a view to display, the notification management controls have been moved into their own view. NotificationGuts is provided a view to show via a MenuItem. This allows configuration via the NotificationMenuRowProvider Plugin. Test: manual Change-Id: I68cb23ea2cada30cc6e930fa8c03e0aa4014dfe2
ndroid/systemui/plugins/statusbar/NotificationMenuRowProvider.java
|
43c2cd1a4071e152e9f4aa9044b03a29cd5ada31 |
13-Dec-2016 |
Mady Mellor <madym@google.com> |
Create + implement plugin for NotificationSettingsIconRow This will allow plugins to supply additional menu options to the menu "behind" a notification. This CL does not include behavior for when one of these new menu items is tapped, this will be added in a separate CL. Test: manual Change-Id: I322f9f39d33b043bd23dcbede5dd15e6afa73fc1
ndroid/systemui/plugins/statusbar/NotificationMenuRowProvider.java
|
20ff3f9255c86a3747aa55746788d4bde1d12753 |
09-Jan-2017 |
Jason Monk <jmonk@google.com> |
SysUI fragments: Integrate new support for constructing Use a new system for constructing fragments so they can be swapped out in place maintaining state. This will allow easier integration with plugin lifecycle as parents who have child plugin fragments can depend on the class existing and won't have to listen to the lifecycle. Test: runtest systemui Change-Id: I517f4ce3d114abd49b1b5baca388d19e929b8f90
ndroid/systemui/plugins/PluginFragment.java
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginListener.java
|
9c7844cb91b43929d0a86b1c90aa1efb37f5463a |
18-Jan-2017 |
Jason Monk <jmonk@google.com> |
Work on sysui dependencies One of the many problems with PhoneStatusBar is that it holds dependencies for many other parts of SysUI. Fix this by creating a static method of grabbing dependencies that are global to sysui this cleans up a lot of chains of interdependence. Also add easy way to inject mocks of these dependencies for the purpose of testing. Test: runtest systemui Change-Id: Ia0e947faea62d15b665facada47ac9916c99f895
ndroid/systemui/plugins/qs/QS.java
|
cd26af70540d8a88a61efafa0fbe63091c1f941a |
11-Jan-2017 |
Jason Monk <jmonk@google.com> |
Move all time ticks to bg handlers, and post This will hopefully avoid blaming sysui for ANRs when the system is hosed. Test: Manual, build, push, wait for time to change Change-Id: I1661ac1a997ad8917b449dd175229d8b77f583c9
ndroid/systemui/plugins/PluginInstanceManager.java
|
59d86ed2a80364aa27541d8117ccf80551b45e20 |
04-Jan-2017 |
Jason Monk <jmonk@google.com> |
Add one-shot plugin support Should have happened a while ago. Test: runtest systemui Change-Id: I0da4deb5c297e8030213810815a408364ec97e14
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginManager.java
|
5e6c0ffd3e91cf0c5872de3e2d99e225ad1468f4 |
05-Jan-2017 |
Chris Wren <cwren@android.com> |
Create a global registry for system message IDs Port all system UI notifications to use the registry. Retain stable integer IDs where they exist. Assign new stable IDs where resource IDs were previously used. Using "message" rather than "notification" since we may eventually want to include dialogs and toasts. Bug: 32584866 Bug: 30995038 Test: runtest systemui Change-Id: Iec4d7cebbd88683e339ada29a279315222699942
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginManager.java
|
26bc8996c88cfc828afa95e22efee0fed82d8780 |
04-Jan-2017 |
Jason Monk <jmonk@google.com> |
Add notifications for incorrect plugin versions Test: runtest systemui Change-Id: Ic59a583202a8a20fbfc6fb504e6ab60ecc71ce78
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginManager.java
|
40db029cfeb263b5b672ca687c347e58ed2ad2ae |
28-Jun-2016 |
Jorim Jaggi <jjaggi@google.com> |
Light navigation bar support (1/2) Test: Open an app that has this flag set. Test: android.systemui.cts.LightBarTests Bug: 29058491 Change-Id: Idaff65fdd5c59b68ae9920726c9ea50b53f96675
ndroid/systemui/plugins/statusbar/phone/NavBarButtonProvider.java
|
40e978e0d13bdbd6a7e0ab06ba25f55e813fd44a |
30-Nov-2016 |
Xiaohui Chen <xiaohuic@google.com> |
sysui: fix navbar button view orientation Before navbar assumes rotation 0 means portrait and rotation 90 means landscape. This is not necessarily true, in certain devices the natural orientation (0) is landscape. Here we removed that assumption and make sure we use the right inflater at all times. Bug: 32516898 Test: Locally on test device Change-Id: I3db44dcb35d8511fb9d42b147b2bd137ff0750f7
ndroid/systemui/plugins/statusbar/phone/NavBarButtonProvider.java
|
f9d13f6d7a6fda22620cd4eab74ec98cafdbd147 |
09-Nov-2016 |
Adrian Roos <roosa@google.com> |
Doze: Add plugin hook Test: mmm vendor/google_experimental/users/roosa/DozePlugin/ Change-Id: I7ea55954f0c07be932e8ee7037e03b7c01cc1108
ndroid/systemui/plugins/doze/DozeProvider.java
|
f4e019aaad6f9da3165e8f35966299c43d5cfebf |
03-Nov-2016 |
Jason Monk <jmonk@google.com> |
Plugin fragment support Allows fragments to be easily switched over to plugins and a provides a convenient base class for plugins to use that makes sure the layout inflater and context point at the plugin's and not sysui's. Bug: 32609190 Test: runtest systemui Change-Id: I6503947e980f66ddcd826f6ca9a92b591ce0eb1e
ndroid/systemui/plugins/PluginFragment.java
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginManager.java
|
0ceef211875515c2a7531f9baeae46339e700f3a |
02-Nov-2016 |
Jason Monk <jmonk@google.com> |
Move QS to a fragment There is now a bit too much of the view/layout logic touching the fragment, but sort out that later and get something over to fragments for now. Bug: 32609190 Test: Manual Change-Id: Icf677f4a70e6b92892a0fc27a0e673940ebc7a73
ndroid/systemui/plugins/FragmentBase.java
ndroid/systemui/plugins/qs/QS.java
ndroid/systemui/plugins/qs/QSContainer.java
|
fe762344f4475a3a336bb46aef2d59c1fabf32ab |
13-Oct-2016 |
Jorim Jaggi <jjaggi@google.com> |
The big keyguard transition refactor (1/n) The heart of this change are two things: 1) Instead of using the force hide mechanism to hide windows behind Keyguard, we actually make the activities invisible in activity manager. 2) When Keyguard is going away, we change the visibilities in activity manager and run an app transition. At the very core we move the responsibility of hiding activities to ActivityStack, which checks whether Keyguard is showing, and then hides all non-show-when-locked activities. For that, we need to check whether any window of an activity has SHOW_WHEN_LOCKED set. We introduce a callback from WM -> AM in case these Keyguard flags have changed. Furthermore, we decide whether to occlude Keyguard in KeyguardController, which just checks whether the top activity has SHOW_WHEN_LOCKED set. When this state changes, we prepare an occlude/unocclude app transition, and in PWM we just inform the Keyguard about the animation so SysUI can play along this animations in a mostly synchronized manner. Since we now use an app transition when unlocking the phone, we get lockscreen launch animations for free - window manager automatically waits until the activity is drawn, or directly executes the transition if there is nothing to animate. Thus, we can remove all the infrastructure around "waitingForActivityDrawn". The logic to show/hide non-app windows is moved to policy, and we add the ability to run animations on non-app windows when executing an app transition. Test: 1) runtest frameworks-services -c com.android.server.wm.AppTransitionTests 2) Manually test unlocking Keyguard: 2a) Without security 2b) With security 2c) With security but trusted 2d) Portrait while activity behind is in landscape 3) Test launching things from Keyguard 3a) Without security 3b) With security 3c) Launch camera without security 3d) Launch camera with security 3e) Launch camera with securtiy and trusted 3f) Launch voice affordance 4) Set no notifications on lockscreen, drag down, make sure you get the correct animation 5) Test clicking "emergency" on bouncer 5b) Test "Emergency info" on emergency dialer 5c) Test clicking edit button on emergency info, should show pattern on Keyguard Bug: 32057734 Change-Id: Icada03cca74d6a612c1f988845f4d4f601087558
ndroid/systemui/plugins/qs/QSContainer.java
|
6a652a4442c1894da212f2ba43026b16776ecf12 |
26-Oct-2016 |
Jason Monk <jmonk@google.com> |
Make plugins have an application context So things that use them don't crash. Test: Plugin that uses getApplicationContext Change-Id: I8673cb95544280f593479b014cd2620c2d02bf80
ndroid/systemui/plugins/PluginInstanceManager.java
|
d371f9828b0365638c409f30994b202398959618 |
26-Oct-2016 |
Jason Monk <jmonk@google.com> |
Add system property to not disable plugins on crash Should be used only during dev to avoid having to turn crashing plugins back on constantly. Test: Manual Change-Id: I2f2a461bf7aef017781ed3b61fcb216d7e1cbae9
ndroid/systemui/plugins/PluginManager.java
|
4f70b9cfd408a94330024c79643124cca25987b4 |
26-Oct-2016 |
Jason Monk <jmonk@google.com> |
Faster plugin updating from UI control Send a broadcast back and forth to speed up the rate at which plugins are enabled or disabled. Also update make files to handle exclude tests better. Test: Manual Change-Id: Ic8f45c663c3a5e5fd4b3e9e2f79480e155845c14
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginManager.java
|
3b75827cbf8d826e82166707054ac0ac43e6803b |
20-Oct-2016 |
Jason Monk <jmonk@google.com> |
Merge "Add nav gesture plugin interface"
|
67e6c804055f40729d5b11c33410a6f174264091 |
30-Aug-2016 |
Jason Monk <jmonk@google.com> |
Add nav gesture plugin interface Test: Manual Change-Id: Ieb61a98cb1921358d41728bdbc7fb0c9c8fa46c1
ndroid/systemui/plugins/statusbar/phone/NavGesture.java
|
96cd7ddcc1837cdcdbc79dfdce20b85499da84a7 |
14-Oct-2016 |
Jason Monk <jmonk@google.com> |
PluginLib: Don't use foreach For some reason it makes android studio angry when embedding the plugin lib in it. Test: runtest systemui Change-Id: I8c7202846903a75ffcbad86cb31862098e8d939a
ndroid/systemui/plugins/PluginInstanceManager.java
|
fbf7dbf78cea11c551b5efa3dab0f9b85c013b0d |
11-Oct-2016 |
Selim Cinek <cinek@google.com> |
Fixed build breakage Build was broken due to refactoring in master Test: build Change-Id: Ic455c504bc1dab56da3630073245b8391614f042
ndroid/systemui/plugins/qs/QSContainer.java
|
e96fa00e1971230448ad69b10cf8fcd9422b14a0 |
30-Sep-2016 |
Jason Monk <jmonk@google.com> |
SysUI Plugin ClassLoader work Cache ClassLoader by pkg so that Plugins can talk to each other. Also add some filtering so that only classes from the plugins package and sub-packages are included in plugin classloaders. Test: Manual Change-Id: I42aabb418168d5a5d0581b8133aa93f07cb7e977
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginManager.java
|
ac276482552f88d8be122d3b194f0cb3fbb793e2 |
30-Sep-2016 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Extract plugin interface for lockscreen camera button"
|
19796dfbc91341781c9177b24695f7fd44cc9638 |
29-Sep-2016 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Extract plugin interface for nav bar"
|
b59f46fb9b76c43c4cacc73d0b67995aba8219c5 |
27-Sep-2016 |
Jason Monk <jmonk@google.com> |
Extract plugin interface for lockscreen camera button Create an interface so a plugin can replace the intent and icon of the camera trigger on the lock screen. Test: Manual Change-Id: I867ffb10e3b3906ca3903f96309a3ee5ef9e19d9
ndroid/systemui/plugins/IntentButtonProvider.java
|
197f4db60bd2277c0878003a426c37c69efe9cca |
26-Aug-2016 |
Jason Monk <jmonk@google.com> |
Extract plugin interface for nav bar This allows plugins to create their own or override nav buttons based on the button spec. Test: Manual Change-Id: I11e9a953710ed14bb9c6d9f96027852a737b58ba
ndroid/systemui/plugins/statusbar/phone/NavBarButtonProvider.java
|
ef0d34d32e9872e36d321e921d7da91f35be032d |
23-Aug-2016 |
Jason Monk <jmonk@google.com> |
Add plugin controls to tuner Allow plugins to be manually turned off from within the tuner. This screen only shows itself if at some point in time a plugin has been active on this device. Plugins can also serface settings there by receiving the com.android.systemui.action.PLUGIN_SETTINGS action. Test: Manual Change-Id: Ifb043c85e383fc072c6445ae322293a6401a6f2c
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginManager.java
ndroid/systemui/plugins/PluginPrefs.java
|
46767b77c004a3541c614f8e21d6a871dd148e54 |
18-Aug-2016 |
Jason Monk <jmonk@google.com> |
Extract plugin interface for QS Users must implement the QSContainer interface to be returned by a ViewProvider plugin. The QSContainer must contain a BaseStatusBarHeader and have the id of quick_settings_container. Test: Manual Change-Id: Ibfaa835cad20855a530e4ae142d8a2aeba4a277b
ndroid/systemui/plugins/qs/QSContainer.java
|
beda2ddbec2f32adeba20d562a53bb3dd83b902d |
18-Aug-2016 |
Jason Monk <jmonk@google.com> |
Add PluginInflateContainer PluginInflateContainer extends AutoReinflateContainer, except that it also uses the plugin interface to allow the view to be swapped out with something else. Define an interface or abstract class as follows that includes the version and action. public interface MyInterface { public static final String ACTION = "com.android.systemui.action.PLUGIN_MYINTERFACE"; public static final int VERSION = 1; void myImportantInterface(); } Then put in a PluginInflateContainer to use and specify the interface or class that will be implemented as viewType. The layout specified will be used by default and whenever a plugin is not present. <com.android.systemui.PluginInflateContainer android:id="@+id/some_id" android:layout_width="match_parent" android:layout_height="match_parent" android:layout="@layout/my_default_component" systemui:viewType="com.android.systemui.plugins.MyInterface" /> Test: Manual Change-Id: I2ef3fa8dbe344c4635df20056182c1c0b3846fdf
ndroid/systemui/plugins/ViewProvider.java
|
86bc33188948e7b6beb07dbb5ddba59b5ea3c1fc |
16-Aug-2016 |
Jason Monk <jmonk@google.com> |
Plugins for sysui Why this is safe: - To never ever be used in production code, simply for rapid prototyping (multiple checks in place) - Guarded by signature level permission checks, so only matching signed code will be used - Any crashing plugins are auto-disabled and sysui is allowed to continue in peace Now on to what it actually does. Plugins are separate APKs that are expected to implement interfaces provided by SystemUI. Their code is dynamically loaded into the SysUI process which can allow for multiple prototypes to be created and run on a single android build. ------- PluginLifecycle: plugin.onCreate(Context sysuiContext, Context pluginContext); --- This is always called before any other calls pluginListener.onPluginConnected(Plugin p); --- This lets the plugin hook know that a plugin is now connected. ** Any other calls back and forth between sysui/plugin ** pluginListener.onPluginDisconnected(Plugin p); --- Lets the plugin hook know that it should stop interacting with this plugin and drop all references to it. plugin.onDestroy(); --- Finally the plugin can perform any cleanup to ensure that its not leaking into the SysUI process. Any time a plugin APK is updated the plugin is destroyed and recreated to load the new code/resources. ------- Creating plugin hooks: To create a plugin hook, first create an interface in frameworks/base/packages/SystemUI/plugin that extends Plugin. Include in it any hooks you want to be able to call into from sysui and create callback interfaces for anything you need to pass through into the plugin. Then to attach to any plugins simply add a plugin listener and onPluginConnected will get called whenever new plugins are installed, updated, or enabled. Like this example from SystemUIApplication: PluginManager.getInstance(this).addPluginListener(OverlayPlugin.COMPONENT, new PluginListener<OverlayPlugin>() { @Override public void onPluginConnected(OverlayPlugin plugin) { PhoneStatusBar phoneStatusBar = getComponent(PhoneStatusBar.class); if (phoneStatusBar != null) { plugin.setup(phoneStatusBar.getStatusBarWindow(), phoneStatusBar.getNavigationBarView()); } } }, OverlayPlugin.VERSION, true /* Allow multiple plugins */); Note the VERSION included here. Any time incompatible changes in the interface are made, this version should be changed to ensure old plugins aren't accidentally loaded. Since the plugin library is provided by SystemUI, default implementations can be added for new methods to avoid version changes when possible. ------- Implementing a Plugin: See the ExamplePlugin for an example Android.mk on how to compile a plugin. Note that SystemUILib is not static for plugins, its classes are provided by SystemUI. Plugin security is based around a signature permission, so plugins must hold the following permission in their manifest. <uses-permission android:name="com.android.systemui.permission.PLUGIN" /> A plugin is found through a querying for services, so to let SysUI know about it, create a service with a name that points at your implementation of the plugin interface with the action accompanying it: <service android:name=".TestOverlayPlugin"> <intent-filter> <action android:name="com.android.systemui.action.PLUGIN_COMPONENT" /> </intent-filter> </service> Change-Id: I42c573a94907ca7a2eaacbb0a44614d49b8fc26f
ndroid/systemui/plugins/OverlayPlugin.java
ndroid/systemui/plugins/Plugin.java
ndroid/systemui/plugins/PluginInstanceManager.java
ndroid/systemui/plugins/PluginListener.java
ndroid/systemui/plugins/PluginManager.java
ndroid/systemui/plugins/PluginUtils.java
|