Animate sideFpsIndicator alpha-in on the primary bouncer

Test: atest SideFpsControllerTest
Test: manually tested with and without DELAY_BOUNCER flag
Fixes: 287315066
Change-Id: I011b753a20989e8e28800eaef337728f3032c226
This commit is contained in:
Beverly
2023-07-24 20:02:43 +00:00
committed by Beverly Tai
parent 500513819b
commit 93f74bbac6
2 changed files with 36 additions and 3 deletions

View File

@@ -50,7 +50,9 @@ import androidx.annotation.RawRes
import com.airbnb.lottie.LottieAnimationView
import com.airbnb.lottie.LottieProperty
import com.airbnb.lottie.model.KeyPath
import com.android.app.animation.Interpolators
import com.android.internal.annotations.VisibleForTesting
import com.android.keyguard.KeyguardPINView
import com.android.systemui.Dumpable
import com.android.systemui.R
import com.android.systemui.biometrics.domain.interactor.DisplayStateInteractor
@@ -112,7 +114,7 @@ constructor(
private val isReverseDefaultRotation =
context.resources.getBoolean(com.android.internal.R.bool.config_reverseDefaultRotation)
private var overlayHideAnimator: ViewPropertyAnimator? = null
private var overlayShowAnimator: ViewPropertyAnimator? = null
private var overlayView: View? = null
set(value) {
@@ -122,13 +124,23 @@ constructor(
windowManager.removeView(oldView)
orientationListener.disable()
}
overlayHideAnimator?.cancel()
overlayHideAnimator = null
overlayShowAnimator?.cancel()
overlayShowAnimator = null
field = value
field?.let { newView ->
if (requests.contains(SideFpsUiRequestSource.PRIMARY_BOUNCER)) {
newView.alpha = 0f
overlayShowAnimator =
newView
.animate()
.alpha(1f)
.setDuration(KeyguardPINView.ANIMATION_DURATION)
.setInterpolator(Interpolators.ALPHA_IN)
}
windowManager.addView(newView, overlayViewParams)
orientationListener.enable()
overlayShowAnimator?.start()
}
}
@VisibleForTesting var overlayOffsets: SensorLocationInternal = SensorLocationInternal.DEFAULT

View File

@@ -840,6 +840,27 @@ class SideFpsControllerTest : SysuiTestCase() {
assertThat((lpFlags and PRIVATE_FLAG_TRUSTED_OVERLAY) != 0).isTrue()
}
@Test
fun primaryBouncerRequestAnimatesAlphaIn() = testWithDisplay {
sideFpsController.show(SideFpsUiRequestSource.PRIMARY_BOUNCER, REASON_AUTH_KEYGUARD)
executor.runAllReady()
verify(sideFpsView).animate()
}
@Test
fun alternateBouncerRequestsDoesNotAnimateAlphaIn() = testWithDisplay {
sideFpsController.show(SideFpsUiRequestSource.ALTERNATE_BOUNCER, REASON_AUTH_KEYGUARD)
executor.runAllReady()
verify(sideFpsView, never()).animate()
}
@Test
fun autoShowRequestsDoesNotAnimateAlphaIn() = testWithDisplay {
sideFpsController.show(SideFpsUiRequestSource.AUTO_SHOW, REASON_AUTH_KEYGUARD)
executor.runAllReady()
verify(sideFpsView, never()).animate()
}
}
private fun insetsForSmallNavbar() = insetsWithBottom(60)