This CL animates the launch of the Wallet activity from the wallet tile
or button on the lockscreen.
Note that doing so is still a bit flickery given that the wallpaper
disappears as soon as the animation starts. This will be fixed in a
follow-up CL.
See before/after videos in b/191438572#comment18.
Bug: 191438572
Test: Click Wallet tile or button on lockscreen (with card setup)
Change-Id: Ie2eaddf9e1ad7e620e1cf2260b8f25c6a8534109
Allows code to subscribe to changes in specific flag values.
Bug: 194781951
Test: atest SystemUITests
Change-Id: Icae5c80cb32f0dd425e53297aa28e555f34a07a5
This CL is a stepping stone towards a more complete flag system.
This cl allows for the definition of flags within systemui, each of
which have a unique id and a default value. Methods for retrieving
the value of a flag are defined.
By default, reading a flag always returns its default value.
A FlagReaderPlugin is also defined that, when loaded, allows for
returning alternate values for a given flag. The details of how an
alternate value are determined are left for the plugin to decide.
The plugin interface should be considered incomplete with this cl.
Methods for reading flags are defined, but hooks for knowing when
flags change (and hooks for knowing when a flag plugin has been
loaded), are not defined. Moreover, the flag plugin is not loaded
early in the process with this cl, so anyone who reads flags
before the plugin is may misss out on the values they care about.
More changes to come.
Bug: 194781951
Test: atest SystemUITests
Change-Id: I888d5eba82359a37878a3a4d4747990b79a77804
The drag down animation didn't do the transition
to the full shade visually, so things would look
out of place.
Fixes: 191282610
Test: drag down while bypassing
Change-Id: Icdd62155f3762621c1046ed5271476ec0b4e2635
- Whenever we defer the cleanup of the back gesture, schedule a failsafe
to clean up the window if it's not handled properly. We'll enable
this failsafe for sc-dev and disable it for further investigations
post sc-dev
- Dump additional info for the nav bar window so we can narrow down
the issue post sc-dev
Bug: 190778197
Test: Can't repro the initial issue, so artificially trigger it to verify failsafe
Test: adb shell dumpsys activity service SystemUIService
Change-Id: I0a8f25babe750e6e5ba4c933ab5271a82ef63646
Fixes visibility issue where keyguard could enter a bad state where QS
remains visible even though it should be hidden.
Previously, keyguard could enter a bad state if QS was closed while it
had a detail panel open that had animations disabled.
To fix issue, run animations when closing detail panels, even if they
requested not to be animated on close.
Test: Turn off all animations (i.e. adb shell 'settings put global
animator_duration_scale 0.0 && settings put global
transition_animation_scale 0.0 && settings put global
window_animation_scale 0.0'), open QS, tap user icon, tap close,
ensure you are taken back to the lock screen and that the UI looks
normal
Test: Rapidly tap the user icon and bottom of keyguard in quick
succession, ensure that keyguard UI never enters a bad state
Fixes: 193549640
Fixes: 193545214
Change-Id: Ie092f83031edaff0240194832b5499df3b4eab12
If the user starts to scroll while the panel is not fully expanded,
expand it fully.
Test: manual: expand and collapse QS while trying to scroll it
Fixes: 189915859
Change-Id: I15d46e3ff4c67754aa8063ffa55e5c62cad7dc89
Previously the bounds animation was on the background which doesn't
exist anymore.
Fixes: 192059748
Test: add media, dismiss, observe normal animation
Change-Id: I0f90b3ca5224b538c62adf30081ad30ed906b3b1
This CL ensures that we don't show the keyguard early when unlocking the
phone from the bouncer after swiping up on the lockscreen.
Bug: 191031464
Test: Manual, swipe up on lockscreen with PIN
Change-Id: Id7269189c857e1108a8e33074bb5abfd40437deb
When FalsingManager#cleanupInternal is called, it no longer produces
valid results. With this change, we check that the FalsingManager
is not used after being destroyed, and also avoid destroying it in
WalletScreenController.
Fixes: 188174214
Test: manual
Change-Id: I0ce67de5a326b56dee11c1d63c1d592640c0713d
For stock tiles state (filled in subtitle when there is not one set by
the tiles), we specify values for each of the tiles states. That way,
they can be translated with that specific tile name in mind for
grammatical matching.
Custom tiles will use the default.
New stock tiles must add a new array to pass tests.
Test: QSTileViewImplTest TilesStatesTextTest
Fixes: 188163204
Change-Id: Idd4da01994e37cb4778dcdd3080711179cb884c7
When dragging down on the lockscreen, we now pull down the quick
settings while dragging instead of wating for the release
Bug: 184946919
Test: atest SystemUITests
Change-Id: Ib233282dd7ce4ba63ceab3e1b788aa164e88c8c0
Logic for side view:
* If the tile has a sideViewCustomDrawable, show that regardless of
State
* Else, if the tile is not Boolean or the state has forceExpandView, it
shows a chevron.
* Else, show nothing.
Test: atest com.android.systemui.qs
Test: manual
Fixes: 187057842
Change-Id: Ib9407914f4fbe5ac833b06008fc405435d0c45b0
Breaks the dependency of SystemUIPlugins on ThresholdSensor
by introducing an intermediate interface.
Fixes: 186781915
Test: manual
Change-Id: Ib2633f8f2acaa1d21f1e8968317b4a4e63d3af32
Method no longer takes `robustCheck` parameter. Instead,
FalsingManager#isSimpleTap is added for basic checking, and
FalsingManager#isTap does robust checking by default.
FalsingManager#isTap takes an enum value for penalty instead of
a double, making the value more understandable.
Bug: 172655679
Test: atest SystemUITests && manual
Change-Id: Ib4a99f87bcd6acee67a98420f460c98d44fa6360
This CL adds a generic way in GhostViewLaunchAnimationController to
change the corner radius of the expanding background. It does so by
supporting Gradient- and LayerDrawable (and therefore RippleDrawable).
This will be first used to animate the launch of the settings after long
clicking a QS tile (see ag/13988954), but this implementation will
hopefully work with other views as well.
This CL also adds the wiring in ActivityStarter that will be needed by
the QuickSettings.
Bug: 184121838
Test: Manual
Change-Id: I40f7048edd682d5d68c32b4439368d19009a8df1
This CL removes all logic specific to notifications in
ActivityLaunchAnimator, so that it can be reused for other launch
animations.
I would suggest to look at ag/14057092 in parallel to make more sense of
the abstractions added in this CL.
For the sake of not making this CL even bigger than it already is, a few
things still need to be done in follow-up CLs:
- Show the status bar icons at the right time, instead of at the end of
the animation, when using the StatusBarLaunchAnimatorController.
- Move the animation/ package outside of the SystemUIPluginLib library
and instead have it in its own reusable library.
- Replace the animation durations and interpolator to the latest
designs.
- Improve split screen by retrieving the final window bounds and
prevent the clipping of the window during the animation.
- Handle animations in the lock screen.
For review, I would recommend to review in order:
1. ActivityLaunchAnimator.kt
2. StatusBarLaunchAnimatorController.kt
3. NotificationLaunchAnimatorController.kt
4. GhostedViewLaunchAnimatorController.kt
5. Everything else.
Bug: 184121838
Bug: 181654098
Test: Tap a notification when the shade is open and unlocked.
Change-Id: If4c3c64fcd153bb8e89111f56332013ca6dff156
We fetch the wallet cards on handleUpdateState() of the Tile, if the
card image exists, it will be stored in the QS State and then pass to
the QSTileViewHorizontal so the card image will be presented on the
tile.
The car image won't show on the tile when the user is edittng the tiles.
Test: manually tested on device
locked - https://hsv.googleplex.com/5756150307880960
unlocked - https://hsv.googleplex.com/5767433589620736
Test: atest
Bug: b/182963608
Change-Id: I45bab06528a7154419ae73f9e576cf385bf0f7c1
User detail panel settings button will now say "Close" instead
of "Done"
Bug: 169783558
Test: atest SystemUITests
Change-Id: Ibafe212dce8a8b8654e877418200e1dc2c5dec8b
User detail panel settings button will now say "User settings" instead
of "More settings"
Bug: 169783558
Test: atest SystemUITests
Change-Id: I1a7a6963f15dbbf6ed8086113fa47f4662d8373c
Individual components of the lock screen are now simply in charge of
asking the FalsingManager to recognize certain types of gestures. If
they don't ask, the FalsingManager will assume they were accidental.
Once a certain number of accidental touches occur, an event is fired
that signals that the lock screen should be reset.
More tuning and adjustment to come, but this is now functional.
This also fixes a bug in an earlier cl where the bouncer would no
longer retract if touches outside of its region were detected.
Bug: 172655679
Test: manual
Change-Id: Iffd1c7e58365235b1b7dbdac0c74439ead1df9d3
This uses the HistoryTracker on pin-based input to determine if a
tap outside of an intended region is a false touch, retracting the
pin input if we believe pocket dialing is occuring.
To do this, the cl properly integrates the HistoryTracker into
falsing, at least for single taps.
Most importantly, HistoryTracker#falsingBelief now return 0.5 when
it is unsure if a tap is false or not, and tends towards 0 when it
believes it's valid and 1 when it believes it's false.
HistoryTracker#falsingConfidence remains unchanged.
Test: atest SystemUITests && manual
Bug: 172655679
Change-Id: Ie771b1bf8ac564af7ffb68e190772fff5c562e89
This CL updates the following:
* Tile height (QQS and QS)
* Tile margins (QQS, QS, and QSCustomizer)
* Animation between QQS and QS
* Single line for main label, secondary label
* Corner radius
* Label text size
Test: manual
Bug: 181673785
Change-Id: I8f2fb5929474b0493af33d8fa415353152a27c17
- Introduce config_keyguard_user_switch_opens_qs_details. When set to
true, the user icon that appears when config_keyguardUserSwitcher=true
will open the "user" QS panel instead of taking over the keyguard
- Add user icon positioning calculation to
KeyguardClockPositionAlgorithm
- Add option to QS DetailAdapter for turning off the circular reveal
animation
- Add callback to QS DetailAdapter for when "Done" button is pressed
- Fix typo: showDetailDapater -> showDetailAdapter
Test: Manual
Bug: 169783558
Change-Id: I50133feaf02ca0990c40aa9d8a046abd95ea9d4e
Puts Toast style/animation changes behind a FeatureFlag
Toasts can be added via Toast APIs OR legacy apps can add the
window directly. Because toast windows can be added directly by legacy
apps, DisplayPolicy.java requires that toast windows are removed
after TOAST_WINDOW_TIMEOUT. This also means Toast windows added via
the Toast APIs are subject to this timeout. Therefore, this CL also
increases the timeout by 600ms to account for SystemUI's in/out
toast animations.
Bug: 169587378
Test: atest ToastUITest
Test: manual, rotate device while toast is showing
Change-Id: Ib17655c253f4ec4f7018cc5f7939b88a50ea5014
Merged-In: Ib17655c253f4ec4f7018cc5f7939b88a50ea5014
Add flag to not show labels in QS. This also makes it show more rows.
Added a switch in customizer to toggle the setting.
Some visual issues when toggling (media player), fixed by collapsing and
reopening QS.
In user builds, can be toggled with:
`adb shell settings put secure sysui_remove_labels {0, 1}`
Test: manual
Change-Id: I750c53d918b2d9590ff86eed67d1932444390828
This institutes a HistoryTracker mechanism that will allow the
FalsingManager to take recent activity into account when classifying
gestures. The HistoryTracker returns a penalty that is pased to each
classifier for them to use when making decisions.
As of right now, no classifier actually uses the history penalty when
making a classification decision.
The HistoryTracker keeps records of the last 3 seconds of falsing
results, applying a decaying penalty to the results over time. It also
assigns a confidence to its results, based on how consistent they are.
Each individual classifier is also able to return a confidence score
now, such that, if they are not confident in their decision, they
don't throw off the score that gets stored in the HistoryTracker.
Confidences currently returned by the classifiers are somewhat
arbitrary and should be adjusted in future CLs.
Everything is currently open for adjustment:
- The length of history
- The decay function applied to history
- The method by which our confidence in the history is calculated
- The confidence returned by each individual classfier
- How the history penalty is taken into account by each classifier
- ... and probably more.
Bug: 172655679
Test: atest SystemUITests
Change-Id: Ief2a5144a0cda659c7d78ed6e489231d481b6872
- Update clock sizes (large clock = 200dp, small clock = 100dp)
- Update clock weights (large = 100-400, small = 200-300)
- Update clocks on time zone and time format changes
(Settings > System > Date & Time)
Test: manual, atest SystemUITests
Bug: 170228350
Change-Id: I446a2625fdd776c15e744f1601b3ea0e2a873cf1
This CL separates out the two roles of the FalsingManager. It
introduces the FalsingCollector, used by SystemUI to report events
that may be interesting to Falsing, such as touch events, sensor
events, and general user actions.
The FalsingManager, meanwhile, continues to support the methods
This helps breakup the monolithic FalsingManger into more manageable
pieces, reducing the API surface area of FalsingManager significantly.
Bug: 172655679
Test: atest SystemUITests && manual
Change-Id: I92f8e3747f5c4a04eaa64e1a8b626c2a07c480aa
This moves some of the functionality of DoubleTapHelper into the
FalsingManager. This also gives the FalsingManager an opportunity to
approve single-taps.
Currently, all single-taps are rejected, but future work may enable
single-tap falsing.
DoubleTapHelper is renamed to NotificationTapHelper to better reflect
its purpose.
The FalsingManager now maintains a record of past gestures for
analysis, wherease prior it only ever kept the most recent tap.
Bug: 172655697
Test: manual && atest SystemUITests
Change-Id: I58f3d25881b0a3ce14e47b72287dd6a1a9307852