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
|
@VisibleForTesting
|
||||||
internal var startLightRevealScrimOnKeyguardFadingAway = false
|
internal var startLightRevealScrimOnKeyguardFadingAway = false
|
||||||
|
var lightRevealScrimAnimator: ValueAnimator? = null
|
||||||
var fingerprintSensorLocation: PointF? = null
|
var fingerprintSensorLocation: PointF? = null
|
||||||
private var faceSensorLocation: PointF? = null
|
private var faceSensorLocation: PointF? = null
|
||||||
private var circleReveal: LightRevealEffect? = null
|
private var circleReveal: LightRevealEffect? = null
|
||||||
@@ -163,7 +164,8 @@ class AuthRippleController @Inject constructor(
|
|||||||
if (keyguardStateController.isKeyguardFadingAway) {
|
if (keyguardStateController.isKeyguardFadingAway) {
|
||||||
val lightRevealScrim = centralSurfaces.lightRevealScrim
|
val lightRevealScrim = centralSurfaces.lightRevealScrim
|
||||||
if (startLightRevealScrimOnKeyguardFadingAway && lightRevealScrim != null) {
|
if (startLightRevealScrimOnKeyguardFadingAway && lightRevealScrim != null) {
|
||||||
ValueAnimator.ofFloat(.1f, 1f).apply {
|
lightRevealScrimAnimator?.cancel()
|
||||||
|
lightRevealScrimAnimator = ValueAnimator.ofFloat(.1f, 1f).apply {
|
||||||
interpolator = Interpolators.LINEAR_OUT_SLOW_IN
|
interpolator = Interpolators.LINEAR_OUT_SLOW_IN
|
||||||
duration = RIPPLE_ANIMATION_DURATION
|
duration = RIPPLE_ANIMATION_DURATION
|
||||||
startDelay = keyguardStateController.keyguardFadingAwayDelay
|
startDelay = keyguardStateController.keyguardFadingAwayDelay
|
||||||
@@ -183,6 +185,8 @@ class AuthRippleController @Inject constructor(
|
|||||||
if (lightRevealScrim.revealEffect == circleReveal) {
|
if (lightRevealScrim.revealEffect == circleReveal) {
|
||||||
lightRevealScrim.revealEffect = LiftReveal
|
lightRevealScrim.revealEffect = LiftReveal
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lightRevealScrimAnimator = null
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
start()
|
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() {
|
override fun onStartedGoingToSleep() {
|
||||||
// reset the light reveal start in case we were pending an unlock
|
// reset the light reveal start in case we were pending an unlock
|
||||||
startLightRevealScrimOnKeyguardFadingAway = false
|
startLightRevealScrimOnKeyguardFadingAway = false
|
||||||
|
|||||||
@@ -1022,6 +1022,23 @@ public class CentralSurfacesImpl extends CoreStartable implements
|
|||||||
public void onUnlockedChanged() {
|
public void onUnlockedChanged() {
|
||||||
logStateToEventlog();
|
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();
|
startKeyguard();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user