Adds isFalseLongTap method and makes an absract class for SingleTap and
LongTap as they only differ in touch slop.
Bug: 241487855
Test: atest BrightLineClassifierTest
Test: atest BrightLineFalsingManagerTest
Change-Id: Ia606afe2ebe5c454bcc74294210ced52f63e33ef
When the clock moves on a large screen (e.g. when locking/unlocking the
device), this adds a subtle offset for each digit of the clock.
This hooks a new transition in to the existing clock move transition,
which just forwards progress through to the actual clock. This also adds
a feature flag (210) to enable/disable this, since it needs a little
more polish yet.
As above, this needs more polish (tweaking the time and/or easing), but
this at least gets something moving to start with :).
Bug: 199051139
Test: Manually verified.
Change-Id: Icec0bcfdb431d24b9405c5dfe8993016f687cac5
Merged-In: Icec0bcfdb431d24b9405c5dfe8993016f687cac5
Consequently, RingBuffer is also moved to
SysUI/plugins
Test: builds, logs still work (see dumpsys)
Test: atest SystemUITests
Bug: 253490717
Change-Id: I91e3ef3ebdc6a2d929b2c1ae8ef158aeffa4c733
Merged-In: I91e3ef3ebdc6a2d929b2c1ae8ef158aeffa4c733
This change cleans up the Clock interfaces a bit by seperating some of
the interface methods and passing darkness data in to each clock face
seperately.
Test: Manually checked existing clock on device. Some unit tests.
Bug: 229771520
Change-Id: I8fee1c6c9bfff3a970f8333c5d5c3940f797dc28
This allows the back arrow to report back trigger state to BackAnimation
as the gesture is going on. The trigger state might be included in the
future back progress API.
Bug: b/238475284
Test: Manual for now, because the current back arrow doesn't have tests
unfortunately, and will be deprecated soon. We should add tests when we productionize the
arrow prototype.
Change-Id: Idcbc2244d942788cd18a07ece252b0e7b6ef849a
In this transition state, the device is not technically
pulsing, but it is Dozing. The primary difference
is that the display state is the display is still ON
(not DISPLAY_STATE_DOZE) and the DozeSensor wake gestures
aren't registered yet.
Because isPulsing=false during this transition, instead of checking
isPulsing, check isDozing instead. Only touches when the display
is ON get sent through the NotificationShadeWindowViewController =>
PulsingGestureListener, so the DozeSensors will still handle the
wakeups that aren't fake AoD2 (including both pulsing + transition
period).
This CL:
- updates the PulsingGestureListener to only check
the falsing manager on the ACTION_UP event of the single tap
and double tap gesture. The FalsingManager only works if checked
right after the action occurred. Previously, we'd check double
taps on the double tap's ACTION_DOWN.
- allows the FalsingManager to analyze taps from the NotificationPanel
while Dozing, as to include the taps when the device is
transitioning to AoD. When the device enters the display state DOZE,
taps will no longer be sent to the NotificationPanel.
- removes the vibration when DOZING that goes along with the falsing manager's
feedback when an additional tap is required. if the device is
dozing, its likely the device may be in the pocket so there's no
reason to buzz.
Test: manual
1. Enable AoD
2. Power off display
3. Tap display right after power off
4. Observe: device wakes up to LS
Test: manual
1. Disable AoD
2. Send a delayed (5000ms) high-priority notification
3. Screen off
4. When the notification shows, tap the screen
5. Observe: device wakes up to LS
Test: atest PulsingGestureListenerTest NotificationPanelViewControllerTest
Fixes: 246722709
Bug: 244659326
Bug: 242125976
Change-Id: I1330f2c87482d8bc743a61d652d245fd9b4c69a0
- Adds more xml resource configs to be able to more precisely control
the expansion transition:
- QS transition start delay
- QS squish transition distance
- QS squish transition start fraction
- On split shade:
- Fades in notifications scrim later
- Fades in QS earlier
- QS squshiness starts at 0.5 instead of 0
- On large screen portrait:
- Fades in QS and notifications only after the behind scrim finished
fading in
- QS squshiness starts at 0.5 instead of 0
Change-Id: Id0941d11fe194c8be74f6101cf6f9f7d22888fc9
Test: QSFragmentTest.java
Test: NotificationPanelViewControllerTest.java
Test: ScrimControllerTest.java
Test: LockscreenShadeQsTransitionControllerTest.kt
Test: LockscreenShadeTransitionControllerTest.kt
Test: Manually
Bug: 239904136
(cherry picked from commit ae32ffdaed)
As the QSPanel doesn't reach the top of the screen, the
LargeScreenShadeHeader peeks out from behind the Edit screen
in certain configurations. In order to hide it, we fade it out/in
together with the circular reveal.
Test: manual
Test: atest NotificationQSContainerControllerTest
Test: atest LargeScreenShadeHeaderControllerTest
Test: atest LargeScreenShadeHeaderControllerCombinedTest
Fixes: 244455245
Change-Id: Ie8b8fb07b28e18b9620a948fbb6589394c4224d6
This is largely a cherry-pick of change
I6b32776dac1853eeab87c2a65da69478e4da5b75 but with
some notable changes to accomadate existing code
differences in tm-qpr-dev.
- We use a boolean instead of an enum for clock region
darkness as the enum is in a different place in tm-qpr-dev.
- We clean up some of the initialization code in
ClockEventController to prevent testing issues and provide
a dependency injection point to the screenshot test.
- Pull the clock color setting from the theme when region
sampling is disabled instead of defaulting to always dark.
Test: Manually validated colors matched reference images on
light and dark backgrounds with the region sampling feature
both enabled and disabled.
Bug: 229771520
Change-Id: I7906850b5de7f512f55e47e1122dfaacbc9c9406
This change moves text protection from the Animatable Clock Controller
to the Clock Event Controller.
Bug: 202758428
Fixes: 241260493
Test: atest ClockEventControllerTest
Change-Id: I33b8f69c1a5b7b915bb020be16593ef68c46281d
Merged-In: I33b8f69c1a5b7b915bb020be16593ef68c46281d
Revert "[DO NOT MERGE]Revert "Expose the clock version of google..."
Revert "[DO NOT MERGE]Revert "Changes to SystemUIGoogle to suppo..."
Revert submission 19508951-revert-19451291-cherrypick-clock_migration-tvip0m638i-BKWSUCNJAV
Reason for revert: Double Revert w/ fixes
Reverted Changes:
Iccd8d2e19:[DO NOT MERGE]Revert "Add clock version of google-...
I432d3d814:[DO NOT MERGE]Revert "Migrate KeyguardClockSwitch ...
Ifd0aa59df:[DO NOT MERGE]Revert "Expose the clock version of ...
I9a6ca6349:[DO NOT MERGE]Revert "Changes to SystemUIGoogle to...
To minimize merge issues, this topic consists of just cherry-picks from
master. Fixes for bugs are provided as downstream commits and will be
merged back to master as those bugs exist there as well. The commits
in this topic weren't tested in isolation beyond automated testing.
Additionally, I've updated the ktfmt exclude list to include new files
from this cherry-pick instead of reformatting those files.
Test: Screenshot test and manually validated each downstream fix mostly by
comparing reference images from known good builds to test builds.
Change-Id: Iff1d0ee8c6d09c77185be1ca5bbbe1aa5870e0c7
Prox-gate the tap and double tap to wake gestures
from pulsing/AoD2.
Enable FalsingCollector logs:
adb shell setprop log.tag.FalsingCollector DEBUG
Test: manually trigger quickpickup (or receive a notification on AoD),
cover the prox sensor, and then tap the screen - see device won't wake up
Test: atest NotificationShadeWindowViewControllerTest BrightLineFalsingManagerTest PulsingGestureListenerTest
Fixes: 242125976
Change-Id: I520df509b7804d765807477968257c94f55ef634
Revert "Expose the clock version of google-sans"
Revert "Changes to SystemUIGoogle to support clock migration"
Revert submission 19451291-cherrypick-clock_migration-tvip0m638i
Reason for revert: b/241084042
Reverted Changes:
Ia053aaec6:Migrate KeyguardClockSwitch to new shared Clock li...
Ia3e067b93:Changes to SystemUIGoogle to support clock migrati...
I5dbf01a83:Add clock version of google-sans
Ia654d4f41:Expose the clock version of google-sans
Change-Id: I432d3d814c85b9ba20bbb7a88d2e52bd2337c10c
This change modifies the KeyguardClockSwitch and Controller
to get clocks from the ClockRegistry. Since the only clock
available from the registry is the default one, this should
have no user-facing changes, and is intended only to update
the relevant codepaths.
Bug: 229771520
Test: Manual and Automated
Change-Id: Ia053aaec6987e00de980388a6c024d8bcf5203a2
(cherry picked from commit c8b33ca43f)
Merged-In: Ia053aaec6987e00de980388a6c024d8bcf5203a2
Bug: 229771520
Test: No new tests, just a package change
Change-Id: I591c337f8f6062befdb2a08f61a1456c5af04be3
(cherry picked from commit 14f67f4d74)
Merged-In: I591c337f8f6062befdb2a08f61a1456c5af04be3
This change makes bouncer/security swap sides with multi user view without proper animation. Adding animation will come in follow up CL.
The main change is extracting double tap and shift logic to SidedSecurityMode superclass so both "one handed mode" and "multi user mode" can inherit from it and behave in a similar way.
Bug: 220872694
Test: KeyguardSecurityContainerTest
Test: open bouncer with user chooser on the side, double tap on the other side of the bouncer, see views swap positions
Change-Id: Ic7e32412edd4c25dde709db0544e60ec9ab951e5
This is used for showing the media info in the smart space on the lockscreen, when face unlock lockscreen bypass is enabled.
Current behavior: if media is playing and user taps to wake up screen while not looking at the screen, the media controls (through notification) are not visible. There is no indication that there is media currently playing.
New behavior: if media is playing and user taps to wake up screen while not looking at the screen, the smart space shows the media info. (media controls are still hidden and not affected by this change).
Fixes: 230669390
Test: atest com.android.systemui.statusbar.lockscreen
Change-Id: I91e705261cb6e48107103666a29a1b2ec61beeca
In that case, just refresh the tile directly. This will schedule a new
stale state.
Additionally, make sure that QQS/QS are only listening when QS is
actually visible.
Test: atest SystemUITestsi
Test: QSLog
Fixes: 232427992
Change-Id: I44d8f23f1ceea37bcd479ee23c7cdd4b0c1c14e0
Pushed the binder calls down the call stack to where it's on the worker
thread instead of the main thread.
Bug: 226354720
Test: Ran all the tests and verified that Binder calls are on worker threads
Change-Id: I05c89b5057529a492b0e33a9198d1207609245da
This fixes the issue where the smartspace jumps
around when an alarm is set, and the lockscreen
smartspace has three text lines while launcher's
has two.
Bug: 232413750
Test: unlock with/without alarm set
Change-Id: Iaca7d62779f9f45b94833272d853bbfc2cbc42ae
Bug: 227613246
Fix: 227613246
Test: manually on device - SS events logged same as for lockscreen.
Note: clicks are logged for reminder card but not for weather card,
which is the same behavior as for lockscreen.
Test: atest DreamSmartspaceControllerTest
Change-Id: If4931fc9da0688cfe63e7519713f4107d8d001c5
This is the first step in moving over to the new public
android.util.Dumpable api.
Bug: 217567642
Test: m SystemUI
Merged-In: Ibaebcfb2c6c5326d0c45b8c72d868c76655d89a0
Change-Id: Ibaebcfb2c6c5326d0c45b8c72d868c76655d89a0
We don't want to show the footer view that contains the
"Manage" and "Clear all" affordances in the notification shade
when the device is transitioning to the keyguard.
Test: manual
Fixes: 219680200
Change-Id: I1611589759e67d134ab957eee57ae865cfb64856
* Add ACTION_PAGE_LEFT/RIGHT to PagedTileLayout and proper focus after
changing pages.
* Add CollectionInfo to TileLayout and CollectionItemInfo to
QSTileViewImpl to indicate the position of the currently focused tile.
* Properly use ACTION_COLLAPSE/EXPAND in QSPanel/QuickQSPanel so the
proper announcement is made, as well as the proper action is provided
in the contextual menu.
Test: manual
Test: atest com.android.systemui.qs
Bug: 204726862
Change-Id: I9bb085002c99e75ab0bb91f287ded62793b932bb
Calling refreshTile externally on a tile that is already listening can
have unexpected side effects, for example if the tile is tracking a user
interaction (e.g. turning on bt).
In particular, QSPanelController should not call it for tiles that are already
listening. This is the case for tiles that are also in QQS.
Test: manual, toggle bt ON in QQS and expand quickly.
Test: atest com.android.systemui.qs
Fixes: 225404999
Change-Id: Id0559ad95ecf6a28475abbdd8b989c745badd0b8
- Applies over scroll to QS, Notifications Scrim, and NSSL instead of only NSSL
- Extracts the over scroll logic out of NSSL and into its own class adds tests
Fixes: 222034650
Test: Unit tests + Manually
Change-Id: I7e9363c3003c92bfe850b86cc9b0465b0d33cdc3
This switching activity should always be run as the system
user. Support specifying a UserHandle on activity transitions.
Fixes: 219638055
Test: manual, check user switching from multiple profiles
Change-Id: I4098481daeed2423ffac5023d101171e0b4cc84a
The code that checks for the captions service component will be removed
once the integration in the system captions side will happen.
Also cleans up the unused stream opt-out property.
Change-Id: I606f0d7a5319bbdc54b2e853fb70ea44ff9645a0
Bug: 221021539.
Bug: 136282740.
Test: Manually.
- Previously LightBarController calls setIconsDarkArea(null) to indicate
to DarkIconDispatcherImpl to set mTintArea to null and dispatch
accordingly, but DarkIconDispatcher.isInArea(<empty rect>) would return
true, while the updated call to send an empty list would try to iterate
the list and check isInArea() for each rect and return false otherwise.
To mirror the old behavior, also return true by default if there is an
empty list.
Bug: 219387839
Bug: 208717544
Test: Open an app with light bars and verify colors change
Test: atest SystemUITests
Change-Id: I265dddafb3ee7200837f8e013f92682344c080ef
Also remove related classes, calls, and resources that were used by QSDetail
and are no longer needed.
Test: atest SystemUITests
Test: TileService cts tests
Test: adb shell cmd statusbar expand-settings
Fixes: 198796184
Change-Id: Ib5c54f197d03794aca35d0305e3e62c7daedb23a
- Rename the classes to be less verbose;
- Add the template layout descriptions to its corresponding data
classes;
- Documents for all getter/setter methods.
Fixes: 217554855
Test: atest CtsSmartspaceServiceTestCases
Change-Id: Id5abcea0210b19b40c96cc8183e439c8af95bf85
- With ag/16678942 the system will now compute multiple appearance
regions for all windows under the status bar, so we need to handle
scenarios where multiple apps can create multiple dark tint areas
Bug: 208717544
Test: atest SystemUITests:LightBarControllerTest
Test: Install MultiAppeareanceRegionTest apk from b/208717544 and
verify that that the multiple dark areas work in multiwindow
Change-Id: I0d8696f6b2fb7793ccbdcbfe7e2520fceb24e5ec
- SmartspaceDefaultUiTemplateData represents the data of a Smartspace
card with the default UI template;
- Other templates' data classes are all subclasses of
SmartspaceDefaultUiTemplateData;
- SmartspaceIcon and SmartspaceTapAction are the newly-added primitives.
More details in go/ss-launcher-templated-ui.
Test: tested locally
Bug:213926964,212650337
CTS-Coverage-Bug:214471292
Change-Id: I056c49e3db7060697be4a3a8f51358802f2610b0