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