Merge "Skip pulsing while showing the face scanning animation" into udc-d1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f1e044a419
@@ -40,4 +40,7 @@
|
||||
|
||||
<!-- Whether face auth will immediately stop when the display state is OFF -->
|
||||
<bool name="flag_stop_face_auth_on_display_off">false</bool>
|
||||
|
||||
<!-- Whether we want to stop pulsing while running the face scanning animation -->
|
||||
<bool name="flag_stop_pulsing_face_scanning_animation">true</bool>
|
||||
</resources>
|
||||
|
||||
@@ -36,6 +36,8 @@ import com.android.keyguard.KeyguardUpdateMonitor
|
||||
import com.android.keyguard.KeyguardUpdateMonitorCallback
|
||||
import com.android.settingslib.Utils
|
||||
import com.android.systemui.biometrics.AuthController
|
||||
import com.android.systemui.flags.FeatureFlags
|
||||
import com.android.systemui.flags.Flags
|
||||
import com.android.systemui.log.ScreenDecorationsLogger
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController
|
||||
import com.android.systemui.util.asIndenting
|
||||
@@ -54,6 +56,7 @@ class FaceScanningOverlay(
|
||||
val mainExecutor: Executor,
|
||||
val logger: ScreenDecorationsLogger,
|
||||
val authController: AuthController,
|
||||
val featureFlags: FeatureFlags,
|
||||
) : ScreenDecorations.DisplayCutoutView(context, pos) {
|
||||
private var showScanningAnim = false
|
||||
private val rimPaint = Paint()
|
||||
@@ -294,6 +297,15 @@ class FaceScanningOverlay(
|
||||
}
|
||||
|
||||
private fun createFaceScanningRimAnimator(): AnimatorSet {
|
||||
val dontPulse = featureFlags.isEnabled(Flags.STOP_PULSING_FACE_SCANNING_ANIMATION)
|
||||
if (dontPulse) {
|
||||
return AnimatorSet().apply {
|
||||
playSequentially(
|
||||
cameraProtectionAnimator,
|
||||
createRimAppearAnimator(),
|
||||
)
|
||||
}
|
||||
}
|
||||
return AnimatorSet().apply {
|
||||
playSequentially(
|
||||
cameraProtectionAnimator,
|
||||
|
||||
@@ -34,6 +34,7 @@ import com.android.systemui.FaceScanningOverlay
|
||||
import com.android.systemui.biometrics.AuthController
|
||||
import com.android.systemui.dagger.SysUISingleton
|
||||
import com.android.systemui.dagger.qualifiers.Main
|
||||
import com.android.systemui.flags.FeatureFlags
|
||||
import com.android.systemui.log.ScreenDecorationsLogger
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController
|
||||
import java.util.concurrent.Executor
|
||||
@@ -47,6 +48,7 @@ class FaceScanningProviderFactory @Inject constructor(
|
||||
private val keyguardUpdateMonitor: KeyguardUpdateMonitor,
|
||||
@Main private val mainExecutor: Executor,
|
||||
private val logger: ScreenDecorationsLogger,
|
||||
private val featureFlags: FeatureFlags,
|
||||
) : DecorProviderFactory() {
|
||||
private val display = context.display
|
||||
private val displayInfo = DisplayInfo()
|
||||
@@ -86,6 +88,7 @@ class FaceScanningProviderFactory @Inject constructor(
|
||||
keyguardUpdateMonitor,
|
||||
mainExecutor,
|
||||
logger,
|
||||
featureFlags,
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -110,6 +113,7 @@ class FaceScanningOverlayProviderImpl(
|
||||
private val keyguardUpdateMonitor: KeyguardUpdateMonitor,
|
||||
private val mainExecutor: Executor,
|
||||
private val logger: ScreenDecorationsLogger,
|
||||
private val featureFlags: FeatureFlags,
|
||||
) : BoundDecorProvider() {
|
||||
override val viewId: Int = com.android.systemui.R.id.face_scanning_anim
|
||||
|
||||
@@ -144,6 +148,7 @@ class FaceScanningOverlayProviderImpl(
|
||||
mainExecutor,
|
||||
logger,
|
||||
authController,
|
||||
featureFlags
|
||||
)
|
||||
view.id = viewId
|
||||
view.setColor(tintColor)
|
||||
|
||||
@@ -273,6 +273,12 @@ object Flags {
|
||||
@JvmField val STOP_FACE_AUTH_ON_DISPLAY_OFF = resourceBooleanFlag(245,
|
||||
R.bool.flag_stop_face_auth_on_display_off, "stop_face_auth_on_display_off")
|
||||
|
||||
/** Flag to disable the face scanning animation pulsing. */
|
||||
// TODO(b/295245791): Tracking bug.
|
||||
@JvmField val STOP_PULSING_FACE_SCANNING_ANIMATION = resourceBooleanFlag(246,
|
||||
R.bool.flag_stop_pulsing_face_scanning_animation,
|
||||
"stop_pulsing_face_scanning_animation")
|
||||
|
||||
// 300 - power menu
|
||||
// TODO(b/254512600): Tracking Bug
|
||||
@JvmField val POWER_MENU_LITE = releasedFlag(300, "power_menu_lite")
|
||||
|
||||
@@ -27,6 +27,8 @@ import com.android.keyguard.KeyguardUpdateMonitor
|
||||
import com.android.systemui.biometrics.AuthController
|
||||
import com.android.systemui.decor.FaceScanningProviderFactory
|
||||
import com.android.systemui.dump.logcatLogBuffer
|
||||
import com.android.systemui.flags.FakeFeatureFlags
|
||||
import com.android.systemui.flags.Flags
|
||||
import com.android.systemui.log.ScreenDecorationsLogger
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController
|
||||
import com.android.systemui.util.mockito.whenever
|
||||
@@ -80,6 +82,8 @@ class FaceScanningProviderFactoryTest : SysuiTestCase() {
|
||||
R.bool.config_fillMainBuiltInDisplayCutout,
|
||||
true
|
||||
)
|
||||
val featureFlags = FakeFeatureFlags()
|
||||
featureFlags.set(Flags.STOP_PULSING_FACE_SCANNING_ANIMATION, true)
|
||||
underTest =
|
||||
FaceScanningProviderFactory(
|
||||
authController,
|
||||
@@ -87,7 +91,8 @@ class FaceScanningProviderFactoryTest : SysuiTestCase() {
|
||||
statusBarStateController,
|
||||
keyguardUpdateMonitor,
|
||||
mock(Executor::class.java),
|
||||
ScreenDecorationsLogger(logcatLogBuffer("FaceScanningProviderFactoryTest"))
|
||||
ScreenDecorationsLogger(logcatLogBuffer("FaceScanningProviderFactoryTest")),
|
||||
featureFlags,
|
||||
)
|
||||
|
||||
whenever(authController.faceSensorLocation).thenReturn(Point(10, 10))
|
||||
|
||||
@@ -91,6 +91,8 @@ import com.android.systemui.decor.OverlayWindow;
|
||||
import com.android.systemui.decor.PrivacyDotCornerDecorProviderImpl;
|
||||
import com.android.systemui.decor.PrivacyDotDecorProviderFactory;
|
||||
import com.android.systemui.decor.RoundedCornerResDelegate;
|
||||
import com.android.systemui.flags.FakeFeatureFlags;
|
||||
import com.android.systemui.flags.Flags;
|
||||
import com.android.systemui.log.ScreenDecorationsLogger;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.settings.FakeDisplayTracker;
|
||||
@@ -225,13 +227,16 @@ public class ScreenDecorationsTest extends SysuiTestCase {
|
||||
doAnswer(it -> !(mMockCutoutList.isEmpty())).when(mCutoutFactory).getHasProviders();
|
||||
doReturn(mMockCutoutList).when(mCutoutFactory).getProviders();
|
||||
|
||||
FakeFeatureFlags featureFlags = new FakeFeatureFlags();
|
||||
featureFlags.set(Flags.STOP_PULSING_FACE_SCANNING_ANIMATION, true);
|
||||
mFaceScanningDecorProvider = spy(new FaceScanningOverlayProviderImpl(
|
||||
BOUNDS_POSITION_TOP,
|
||||
mAuthController,
|
||||
mStatusBarStateController,
|
||||
mKeyguardUpdateMonitor,
|
||||
mExecutor,
|
||||
new ScreenDecorationsLogger(logcatLogBuffer("TestLogBuffer"))));
|
||||
new ScreenDecorationsLogger(logcatLogBuffer("TestLogBuffer")),
|
||||
featureFlags));
|
||||
|
||||
mScreenDecorations = spy(new ScreenDecorations(mContext, mExecutor, mSecureSettings,
|
||||
mTunerService, mUserTracker, mDisplayTracker, mDotViewController, mThreadFactory,
|
||||
|
||||
Reference in New Issue
Block a user