Merge "Animate sideFpsIndicator alpha-in on the primary bouncer" into udc-qpr-dev

This commit is contained in:
Beverly Tai
2023-07-27 14:45:27 +00:00
committed by Android (Google) Code Review
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.LottieAnimationView
import com.airbnb.lottie.LottieProperty import com.airbnb.lottie.LottieProperty
import com.airbnb.lottie.model.KeyPath import com.airbnb.lottie.model.KeyPath
import com.android.app.animation.Interpolators
import com.android.internal.annotations.VisibleForTesting import com.android.internal.annotations.VisibleForTesting
import com.android.keyguard.KeyguardPINView
import com.android.systemui.Dumpable import com.android.systemui.Dumpable
import com.android.systemui.R import com.android.systemui.R
import com.android.systemui.biometrics.domain.interactor.DisplayStateInteractor import com.android.systemui.biometrics.domain.interactor.DisplayStateInteractor
@@ -112,7 +114,7 @@ constructor(
private val isReverseDefaultRotation = private val isReverseDefaultRotation =
context.resources.getBoolean(com.android.internal.R.bool.config_reverseDefaultRotation) 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 private var overlayView: View? = null
set(value) { set(value) {
@@ -122,13 +124,23 @@ constructor(
windowManager.removeView(oldView) windowManager.removeView(oldView)
orientationListener.disable() orientationListener.disable()
} }
overlayHideAnimator?.cancel() overlayShowAnimator?.cancel()
overlayHideAnimator = null overlayShowAnimator = null
field = value field = value
field?.let { newView -> 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) windowManager.addView(newView, overlayViewParams)
orientationListener.enable() orientationListener.enable()
overlayShowAnimator?.start()
} }
} }
@VisibleForTesting var overlayOffsets: SensorLocationInternal = SensorLocationInternal.DEFAULT @VisibleForTesting var overlayOffsets: SensorLocationInternal = SensorLocationInternal.DEFAULT

View File

@@ -840,6 +840,27 @@ class SideFpsControllerTest : SysuiTestCase() {
assertThat((lpFlags and PRIVATE_FLAG_TRUSTED_OVERLAY) != 0).isTrue() 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) private fun insetsForSmallNavbar() = insetsWithBottom(60)