1# Plugin hooks 2### Action: com.android.systemui.action.PLUGIN_OVERLAY 3Expected interface: [OverlayPlugin](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/OverlayPlugin.java) 4 5Use: Allows plugin access to the status bar and nav bar window for whatever nefarious purposes you can imagine. 6 7### Action: com.android.systemui.action.PLUGIN_QS 8Expected interface: [QS](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java) 9 10Use: Allows the entire QS panel to be replaced with something else that is optionally expandable. 11 12Notes: To not mess up the notification panel interaction, much of the QSContainer interface needs to actually be implemented. 13 14### Action: com.android.systemui.action.PLUGIN_QS_FACTORY 15Expected interface: [QSFactory](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSFactory.java) 16 17Use: Controls the creation of QS Tiles and their views, can used to add or change system QS tiles, can also be used to change the layout/interaction of the tile views. 18 19### Action: com.android.systemui.action.PLUGIN_NAV_BUTTON 20Expected interface: [NavBarButtonProvider](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/phone/NavBarButtonProvider.java) 21 22Use: Allows a plugin to create a new nav bar button, or override an existing one with a view of its own. 23 24### Action: com.android.systemui.action.PLUGIN_NAV_GESTURE 25Expected interface: [NavGesture](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/phone/NavGesture.java) 26 27Use: Allows touch events from the nav bar to be intercepted and used for other gestures. 28 29### Action: com.android.systemui.action.PLUGIN_LOCKSCREEN_RIGHT_BUTTON 30Expected interface: [IntentButtonProvider](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/IntentButtonProvider.java) 31 32Use: Allows a plugin to specify the icon for the bottom right lock screen button, and the intent that gets launched when it is activated. 33 34### Action: com.android.systemui.action.PLUGIN_LOCKSCREEN_LEFT_BUTTON 35Expected interface: [IntentButtonProvider](/packages/SystemUI/plugin/src/com/android/systemui/plugins/IntentButtonProvider.java) 36 37Use: Allows a plugin to specify the icon for the bottom left lock screen button, and the intent that gets launched when it is activated. 38 39### Action: com.android.systemui.action.PLUGIN_GLOBAL_ACTIONS 40Expected interface: [GlobalActions](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/GlobalActions.java) 41 42Use: Allows the long-press power menu to be completely replaced. 43 44### Action: com.android.systemui.action.PLUGIN_VOLUME 45Expected interface: [VolumeDialog](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/VolumeDialog.java) 46 47Use: Allows replacement of the volume dialog. 48 49### Action: com.android.systemui.action.PLUGIN_NOTIFICATION_SWIPE_ACTION 50Expected interface: [NotificationSwipeActionHelper](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationSwipeActionHelper.java) 51 52Use: Control over swipes/input for notification views, can be used to control what happens when you swipe/long-press 53 54### Action: com.android.systemui.action.PLUGIN_CLOCK_PROVIDER 55Expected interface: [ClockProviderPlugin](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/clocks/ClockProviderPlugin.kt) 56 57Use: Allows replacement of the keyguard main clock. See [additional Documentation](./clock-plugins.md). 58 59### Action: com.android.systemui.action.PLUGIN_TOAST 60Expected interface: [ToastPlugin](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/ToastPlugin.java) 61 62Use: Allows replacement of uncustomized toasts created via Toast.makeText(). 63 64# Global plugin dependencies 65These classes can be accessed by any plugin using PluginDependency as long as they @Requires them. 66 67[VolumeDialogController](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/VolumeDialogController.java) - Mostly just API for the volume plugin 68 69[ActivityStarter](/frameworks/base/packages/SystemUI/plugin/src/com/android/systemui/plugins/ActivityStarter.java) - Allows starting of intents while co-operating with keyguard unlocks. 70