diff options
author | Beverly <beverlyt@google.com> | 2021-04-28 13:29:36 -0400 |
---|---|---|
committer | Beverly <beverlyt@google.com> | 2021-04-28 14:31:27 -0400 |
commit | c8410aa9c2c765c7b8866bf376397e28e7581e33 (patch) | |
tree | 60131fd66469190f9d75d0015a4da739433e7e4f /packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java | |
parent | 5f82e987a3de4f13fd3619d17fab7dba035d9ad8 (diff) |
Animate clock weight to 0 on bypass face auth
Test: manual
Fixes: 186631254
Change-Id: Ib9ceb4c23c06717404845535ee86987d7f43686f
Diffstat (limited to 'packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java')
-rw-r--r-- | packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java b/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java index 60b677a4e561..825e008263fa 100644 --- a/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java +++ b/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java @@ -21,12 +21,14 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; +import android.hardware.biometrics.BiometricSourceType; import android.icu.text.NumberFormat; import com.android.settingslib.Utils; import com.android.systemui.R; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.plugins.statusbar.StatusBarStateController; +import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.util.ViewController; @@ -35,13 +37,15 @@ import java.util.Objects; import java.util.TimeZone; /** - * Controller for an AnimatableClockView. + * Controller for an AnimatableClockView. Instantiated by {@link KeyguardClockSwitchController}. */ public class AnimatableClockController extends ViewController<AnimatableClockView> { private static final int FORMAT_NUMBER = 1234567890; private final StatusBarStateController mStatusBarStateController; private final BroadcastDispatcher mBroadcastDispatcher; + private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; + private final KeyguardBypassController mBypassController; private final int mDozingColor = Color.WHITE; private int mLockScreenColor; @@ -59,12 +63,16 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie AnimatableClockView view, StatusBarStateController statusBarStateController, BroadcastDispatcher broadcastDispatcher, - BatteryController batteryController) { + BatteryController batteryController, + KeyguardUpdateMonitor keyguardUpdateMonitor, + KeyguardBypassController bypassController) { super(view); mStatusBarStateController = statusBarStateController; mIsDozing = mStatusBarStateController.isDozing(); mDozeAmount = mStatusBarStateController.getDozeAmount(); mBroadcastDispatcher = broadcastDispatcher; + mKeyguardUpdateMonitor = keyguardUpdateMonitor; + mBypassController = bypassController; mBurmeseNumerals = mBurmeseNf.format(FORMAT_NUMBER); mBurmeseLineSpacing = getContext().getResources().getFloat( @@ -98,14 +106,29 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie mStatusBarStateController.addCallback(mStatusBarStateListener); mIsDozing = mStatusBarStateController.isDozing(); mDozeAmount = mStatusBarStateController.getDozeAmount(); + mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateMonitorCallback); + refreshTime(); initColors(); } + private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback = + new KeyguardUpdateMonitorCallback() { + @Override + public void onBiometricAuthenticated(int userId, BiometricSourceType biometricSourceType, + boolean isStrongBiometric) { + if (biometricSourceType == BiometricSourceType.FACE + && mBypassController.canBypass()) { + mView.animateDisappear(); + } + } + }; + @Override protected void onViewDetached() { mBroadcastDispatcher.unregisterReceiver(mLocaleBroadcastReceiver); mStatusBarStateController.removeCallback(mStatusBarStateListener); + mKeyguardUpdateMonitor.removeCallback(mKeyguardUpdateMonitorCallback); } /** |