Merge "Ensure light reveal scrim is fully revealed once we're unlocked." into tm-dev
This commit is contained in:
@@ -80,6 +80,7 @@ class AuthRippleController @Inject constructor(
|
||||
|
||||
@VisibleForTesting
|
||||
internal var startLightRevealScrimOnKeyguardFadingAway = false
|
||||
var lightRevealScrimAnimator: ValueAnimator? = null
|
||||
var fingerprintSensorLocation: PointF? = null
|
||||
private var faceSensorLocation: PointF? = null
|
||||
private var circleReveal: LightRevealEffect? = null
|
||||
@@ -163,7 +164,8 @@ class AuthRippleController @Inject constructor(
|
||||
if (keyguardStateController.isKeyguardFadingAway) {
|
||||
val lightRevealScrim = centralSurfaces.lightRevealScrim
|
||||
if (startLightRevealScrimOnKeyguardFadingAway && lightRevealScrim != null) {
|
||||
ValueAnimator.ofFloat(.1f, 1f).apply {
|
||||
lightRevealScrimAnimator?.cancel()
|
||||
lightRevealScrimAnimator = ValueAnimator.ofFloat(.1f, 1f).apply {
|
||||
interpolator = Interpolators.LINEAR_OUT_SLOW_IN
|
||||
duration = RIPPLE_ANIMATION_DURATION
|
||||
startDelay = keyguardStateController.keyguardFadingAwayDelay
|
||||
@@ -183,6 +185,8 @@ class AuthRippleController @Inject constructor(
|
||||
if (lightRevealScrim.revealEffect == circleReveal) {
|
||||
lightRevealScrim.revealEffect = LiftReveal
|
||||
}
|
||||
|
||||
lightRevealScrimAnimator = null
|
||||
}
|
||||
})
|
||||
start()
|
||||
@@ -192,6 +196,13 @@ class AuthRippleController @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether we're animating the light reveal scrim from a call to [onKeyguardFadingAwayChanged].
|
||||
*/
|
||||
fun isAnimatingLightRevealScrim(): Boolean {
|
||||
return lightRevealScrimAnimator?.isRunning ?: false
|
||||
}
|
||||
|
||||
override fun onStartedGoingToSleep() {
|
||||
// reset the light reveal start in case we were pending an unlock
|
||||
startLightRevealScrimOnKeyguardFadingAway = false
|
||||
|
||||
@@ -1022,6 +1022,23 @@ public class CentralSurfacesImpl extends CoreStartable implements
|
||||
public void onUnlockedChanged() {
|
||||
logStateToEventlog();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onKeyguardGoingAwayChanged() {
|
||||
// The light reveal scrim should always be fully revealed by the time the keyguard
|
||||
// is done going away. Double check that this is true.
|
||||
if (!mKeyguardStateController.isKeyguardGoingAway()) {
|
||||
if (mLightRevealScrim.getRevealAmount() != 1f) {
|
||||
Log.e(TAG, "Keyguard is done going away, but someone left the light reveal "
|
||||
+ "scrim at reveal amount: " + mLightRevealScrim.getRevealAmount());
|
||||
}
|
||||
|
||||
// If the auth ripple is still playing, let it finish.
|
||||
if (!mAuthRippleController.isAnimatingLightRevealScrim()) {
|
||||
mLightRevealScrim.setRevealAmount(1f);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
startKeyguard();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user