Merge "Disappearing UDFPS view when dragging down on lockscreen" into sc-dev am: b436fb9f42
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15054864 Change-Id: Ie1d28c520da48eae34d07b15a6849000e7295cb7
This commit is contained in:
@@ -67,6 +67,7 @@ import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
import com.android.systemui.keyguard.ScreenLifecycle;
|
||||
import com.android.systemui.plugins.FalsingManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||
import com.android.systemui.util.concurrency.DelayableExecutor;
|
||||
@@ -111,6 +112,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
@NonNull private final FalsingManager mFalsingManager;
|
||||
@NonNull private final PowerManager mPowerManager;
|
||||
@NonNull private final AccessibilityManager mAccessibilityManager;
|
||||
@NonNull private final LockscreenShadeTransitionController mLockscreenShadeTransitionController;
|
||||
@Nullable private final UdfpsHbmProvider mHbmProvider;
|
||||
// Currently the UdfpsController supports a single UDFPS sensor. If devices have multiple
|
||||
// sensors, this, in addition to a lot of the code here, will be updated.
|
||||
@@ -507,6 +509,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
@NonNull FalsingManager falsingManager,
|
||||
@NonNull PowerManager powerManager,
|
||||
@NonNull AccessibilityManager accessibilityManager,
|
||||
@NonNull LockscreenShadeTransitionController lockscreenShadeTransitionController,
|
||||
@NonNull ScreenLifecycle screenLifecycle,
|
||||
@Nullable Vibrator vibrator,
|
||||
@NonNull Optional<UdfpsHbmProvider> hbmProvider) {
|
||||
@@ -529,6 +532,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
mFalsingManager = falsingManager;
|
||||
mPowerManager = powerManager;
|
||||
mAccessibilityManager = accessibilityManager;
|
||||
mLockscreenShadeTransitionController = lockscreenShadeTransitionController;
|
||||
mHbmProvider = hbmProvider.orElse(null);
|
||||
screenLifecycle.addObserver(mScreenObserver);
|
||||
mScreenOn = screenLifecycle.getScreenState() == ScreenLifecycle.SCREEN_ON;
|
||||
@@ -716,6 +720,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
mFgExecutor,
|
||||
mDumpManager,
|
||||
mKeyguardViewMediator,
|
||||
mLockscreenShadeTransitionController,
|
||||
this
|
||||
);
|
||||
case IUdfpsOverlayController.REASON_AUTH_BP:
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.android.systemui.R;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBouncer;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
@@ -54,6 +55,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
|
||||
@NonNull private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||
@NonNull private final DelayableExecutor mExecutor;
|
||||
@NonNull private final KeyguardViewMediator mKeyguardViewMediator;
|
||||
@NonNull private final LockscreenShadeTransitionController mLockScreenShadeTransitionController;
|
||||
@NonNull private final UdfpsController mUdfpsController;
|
||||
|
||||
@Nullable private Runnable mCancelDelayedHintRunnable;
|
||||
@@ -63,6 +65,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
|
||||
private boolean mFaceDetectRunning;
|
||||
private boolean mHintShown;
|
||||
private int mStatusBarState;
|
||||
private float mTransitionToFullShadeProgress;
|
||||
|
||||
/**
|
||||
* hidden amount of pin/pattern/password bouncer
|
||||
@@ -81,12 +84,14 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
|
||||
@NonNull DelayableExecutor mainDelayableExecutor,
|
||||
@NonNull DumpManager dumpManager,
|
||||
@NonNull KeyguardViewMediator keyguardViewMediator,
|
||||
@NonNull LockscreenShadeTransitionController transitionController,
|
||||
@NonNull UdfpsController udfpsController) {
|
||||
super(view, statusBarStateController, statusBar, dumpManager);
|
||||
mKeyguardViewManager = statusBarKeyguardViewManager;
|
||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||
mExecutor = mainDelayableExecutor;
|
||||
mKeyguardViewMediator = keyguardViewMediator;
|
||||
mLockScreenShadeTransitionController = transitionController;
|
||||
mUdfpsController = udfpsController;
|
||||
}
|
||||
|
||||
@@ -116,6 +121,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
|
||||
updatePauseAuth();
|
||||
|
||||
mKeyguardViewManager.setAlternateAuthInterceptor(mAlternateAuthInterceptor);
|
||||
mLockScreenShadeTransitionController.setUdfpsKeyguardViewController(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -127,6 +133,9 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
|
||||
mStatusBarStateController.removeCallback(mStateListener);
|
||||
mKeyguardViewManager.removeAlternateAuthInterceptor(mAlternateAuthInterceptor);
|
||||
mKeyguardUpdateMonitor.requestFaceAuthOnOccludingApp(false);
|
||||
if (mLockScreenShadeTransitionController.getUdfpsKeyguardViewController() == this) {
|
||||
mLockScreenShadeTransitionController.setUdfpsKeyguardViewController(null);
|
||||
}
|
||||
|
||||
if (mCancelDelayedHintRunnable != null) {
|
||||
mCancelDelayedHintRunnable.run();
|
||||
@@ -256,11 +265,21 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the progress we're currently transitioning to the full shade. 0.0f means we're not
|
||||
* transitioning yet, while 1.0f means we've fully dragged down.
|
||||
*/
|
||||
public void setTransitionToFullShadeProgress(float progress) {
|
||||
mTransitionToFullShadeProgress = progress;
|
||||
updateAlpha();
|
||||
}
|
||||
|
||||
private void updateAlpha() {
|
||||
// fade icon on transition to showing bouncer
|
||||
int alpha = mShowingUdfpsBouncer ? 255
|
||||
: Math.abs((int) MathUtils.constrainedMap(0f, 255f, .4f, .7f,
|
||||
mInputBouncerHiddenAmount));
|
||||
alpha *= (1.0f - mTransitionToFullShadeProgress);
|
||||
mView.setUnpausedAlpha(alpha);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ import com.android.systemui.ExpandHelper
|
||||
import com.android.systemui.Gefingerpoken
|
||||
import com.android.systemui.R
|
||||
import com.android.systemui.animation.Interpolators
|
||||
import com.android.systemui.biometrics.UdfpsKeyguardViewController
|
||||
import com.android.systemui.classifier.Classifier
|
||||
import com.android.systemui.classifier.FalsingCollector
|
||||
import com.android.systemui.dagger.SysUISingleton
|
||||
@@ -108,6 +109,11 @@ class LockscreenShadeTransitionController @Inject constructor(
|
||||
*/
|
||||
private var nextHideKeyguardNeedsNoAnimation = false
|
||||
|
||||
/**
|
||||
* The udfpsKeyguardViewController if it exists.
|
||||
*/
|
||||
var udfpsKeyguardViewController: UdfpsKeyguardViewController? = null
|
||||
|
||||
/**
|
||||
* The touch helper responsible for the drag down animation.
|
||||
*/
|
||||
@@ -291,6 +297,7 @@ class LockscreenShadeTransitionController @Inject constructor(
|
||||
// Fade out all content only visible on the lockscreen
|
||||
notificationPanelController.setKeyguardOnlyContentAlpha(1.0f - scrimProgress)
|
||||
depthController.transitionToFullShadeProgress = scrimProgress
|
||||
udfpsKeyguardViewController?.setTransitionToFullShadeProgress(scrimProgress)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
import com.android.systemui.keyguard.ScreenLifecycle;
|
||||
import com.android.systemui.plugins.FalsingManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||
@@ -117,6 +118,8 @@ public class UdfpsControllerTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private AccessibilityManager mAccessibilityManager;
|
||||
@Mock
|
||||
private LockscreenShadeTransitionController mLockscreenShadeTransitionController;
|
||||
@Mock
|
||||
private ScreenLifecycle mScreenLifecycle;
|
||||
@Mock
|
||||
private Vibrator mVibrator;
|
||||
@@ -176,6 +179,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
|
||||
mFalsingManager,
|
||||
mPowerManager,
|
||||
mAccessibilityManager,
|
||||
mLockscreenShadeTransitionController,
|
||||
mScreenLifecycle,
|
||||
mVibrator,
|
||||
Optional.of(mHbmProvider));
|
||||
|
||||
@@ -35,6 +35,7 @@ import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||
@@ -65,6 +66,8 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
||||
@Mock
|
||||
private LockscreenShadeTransitionController mLockscreenShadeTransitionController;
|
||||
@Mock
|
||||
private DumpManager mDumpManager;
|
||||
@Mock
|
||||
private DelayableExecutor mExecutor;
|
||||
@@ -106,6 +109,7 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase {
|
||||
mExecutor,
|
||||
mDumpManager,
|
||||
mKeyguardViewMediator,
|
||||
mLockscreenShadeTransitionController,
|
||||
mUdfpsController);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user