This changes adds a hook to the ClockPlugin to allow the
custom clock to control the position of the smart space.
Still todo:
- move out of the way for the lock icon
- don't slide smart space down on lock screen when no
notifs are showing
Bug: 129348218
Test: Manually checked custom clock faces.
Change-Id: I2472f6b2bb54f94e2e673f01c78170c0e7f87627
This change adds a few methods to NotificationMenuRowPlugin so that a
menu row can tell the stack scroller to expose the notification guts
when the menu is fully exposed.
TODO: fix the menu close animation so it happens after the guts open,
and if you close the guts by swiping you can trigger a flicker.
Also there are some things to make lint happy and lots of null checks.
Bug: 127998765
Test: swipe RTL on any notification
Change-Id: I46f7c7dc90032a1914f7b5513bc57e089887c722
(cherry picked from commit 9272fd2f57)
This allows for the GlobalActionsPanelPlugin impl to fire
PendingIntents from the lockscreen, prompting the user to unlock
first.
Test: manual
Change-Id: Ib2e8e756db03e6aace815f1097a32905c06a0a57
This just makes it so that the hotspot tile doesn't care about
airplane mode. Apparently the airplane mode tile already didn't
check anything for hotspot.
Test: Manual
Bug: 111681176
Change-Id: I786077ad5e817ed9ee6753fa1be220e846c77e16
This change adds a new plugin API surface inside of Global Actions,
where a plugin can provide a View to be rendered alongside the Global
Actions menu.
When the GlobalActionsDialog.ActionDialog is created, the plugin can
produce a GlobalActionsPanelPlugin.PanelViewController instance, which
is used to provide the View to be rendered, and respond to Global
Actions events (right now, only dismissal). At this time, the plugin
is given an instance of GlobalActionsPanelPlugin.Callbacks, allowing
the plugin to interact with the GlobalActionsDialog (right now, only
to request dismissal).
When there is a Panel present, a darker scrim is used that is *not*
based on the colors underneath.
In order to provide maximum flexibility, the View comprising the Panel
is rendered above (z-ordering) the existing Global Actions menu, and
can take up the entire screen if desired. In practice, plugins should
take care to not block access to the GlobalActions menu.
Change-Id: I9d6eea80f7eb49e9adbc1a634f7d9c1ab720cddb
Test: manual
Added methods to ClockPlugin to provide information to picker app.
Due to this change, I bumped the api number of the ClockPlugin
interface.
Bug: 125370285
Test: atest ClockManagerTest
Test: checked clock from plugin apk appears in picker app
Change-Id: I0dc3d5a450f7d352900b077b28c670ebadb874e7
- Implement the mechanism for Seamless button in the group of media action button.
- Have a fake Seamless icon in the right of media action button group.
- Need to bind with MediaOutputSlice that are implementing.
Bug: 118428931
Test: Build pass
Change-Id: Idc51d416cc1fc85babdc83d138c8558db5ed5d8e
Option defaults to showing the slice view so that it doesn't break
existing plugins.
Test: SystemUIGoogleTests pass.
Test: SystemUITests pass.
Test: slice view is hidden when using example plugin.
Bug: 118496011
Change-Id: I574009170da4703e84fd392e327e1cb84ada6cd0
We're now listening for sleep events and forcing the device into
sleep mode when necessary.
Display state is now cached and handled properly for cases where
the device wakes up and should go back to sleep.
Test: atest LockScreenWakeUpControllerTest
Test: manual
Bug: 111414690
Bug: 111405682
Fixes: 120864496
Change-Id: I3096329e8f6a07a686582d35c4b0e9977bf9ab1b
Before this CL the callback passed to
StatusBar.startPendingIntentDismissingKeyguard() was being run on a
background thread otherwise used to run the pending intent. This is not
obvious to the caller of startPendingIntentDismissingKeyguard(), so with
this CL we call the callback to the UI thread and make it clear that's
the case.
Bug: 120894295
Test: atest SystemUITests
Test: manual - ensure HUN is removed when pressing HUN smart action.
Change-Id: If106b697527843dd74e37d14de882d5f08187285
This prevents plugins from needing to register for time zone
changed broadcasts. The event can be relayed from
KeyguardUpdateMonitor.
Bug: 120666411
Test: example plugin updates when time zone is changed
Change-Id: I84732887527db8575504af27cc8ed537118696c6
This is added to report clicks on actions buttons to NAS.
BUG: 119010281
Test: atest SystemUITests
Test: atest RemoteViewsTest
Test: atest NotificationManagerServiceTest
Test: Manual. Tapped on the action (both normal and contextual) and
observed the log.
Change-Id: I381994737d8c3185d3fabf9b6c481fd01a89a634
setDarmAmount implementations provided by clock plugins
should use the dark amount to transition into and out
of the doze state on AOD. For example, the size of the
clock could shrink in the Y direction when leaving doze
to make room for the notification stack scroller.
Bug: 119035943
Test: KeyguardClockSwitchTest passes locally.
Change-Id: I9968dc2cc5ab8000ff525f3d1d06ffbf73359086
dozeTimeTick implementations provided by clock plugins
should update the time of the clock while the device
is dozing and deal with burn-in related issues.
Bug: 119035943
Test: KeyguardClockSwitchTest passes locally.
Test: Custom clock updates with time on AOD screen.
Change-Id: I5c31e6d856c5a80dc3e501831dda5a62c0be5ba0
The refactor allows adding new gestures easier and provides a way to
reassign triggers to the gestures.
go/navbar-prototypes-doc
Test: atest QuickStepControllerTest
Bug: 112934365
Change-Id: I5334947e2ff3f39af890e1f026089b933ff48a3c
QSTile can declare whether it doesn't support (has no effect) long click
and then TalkBack will not report it as an available option.
Test: manual & atest
Change-Id: Iec21181f4308c7c8c4962f191fa0787e053ae944
Fixes: 117921787
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
This contains the core interfaces for plugin support, e.g. Plugin.java
and the associated annotations. It is reused by the shared library and
plugin interfaces in both sysui and launcher are built off of it.
Test: atest com.android.systemui.shared.plugins
Test: cd $ANDROID_BUILD_TOP/frameworks/base/packages/SystemUI/plugin_core \
&& mma -j32 && cd -
out/target/product/$TARGET_PRODUCT/obj/JAVA_LIBRARIES/PluginCoreLib_intermediates/javalib.jar
contains the created jar and is useable in launcher
Bug: 115877296
Change-Id: I82ca7398e882d6432333238e2f77a12e776f1d76
- Also add logging for QuickStepController state
Bug: 112783625
Bug: 114137554
Test: Can still swipe up into Overview
Test: adb shell dumpsys activity service SystemUIservice
Change-Id: I6a1203d7140e30239e032266680236d090b7682e
The intent here is to move gesture processing out of NotificationMenuRow and into NotificationSwipeHelper.
Test: Automated tests should pass, and manual experimentation with dismissing/tapping/replying to notifications should work as expected.
Change-Id: Icd32f14769f1b494ecc1dedb2cc37ee129ed21f7
Skip QS state change animations when the target view is not fully
visible on screen.
Some tiles require extra time before the status is fully changed and
therefore will be animated later.
Change-Id: I08e76e0fdeab2b260cb7a41a117a6ff484ca3329
Fixes: 111680760
Test: visual and runtest systemui