diff options
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java index 2de489d2ce21..54f932184331 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java @@ -77,7 +77,9 @@ import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.concurrency.DelayableExecutor; import com.android.systemui.util.concurrency.Execution; +import java.util.HashSet; import java.util.Optional; +import java.util.Set; import javax.inject.Inject; @@ -157,6 +159,7 @@ public class UdfpsController implements DozeReceiver { private Runnable mAodInterruptRunnable; private boolean mOnFingerDown; private boolean mAttemptedToDismissKeyguard; + private Set<Callback> mCallbacks = new HashSet<>(); @VisibleForTesting public static final AudioAttributes VIBRATION_SONIFICATION_ATTRIBUTES = @@ -210,12 +213,14 @@ public class UdfpsController implements DozeReceiver { } void onAcquiredGood() { + Log.d(TAG, "onAcquiredGood"); if (mEnrollHelper != null) { mEnrollHelper.animateIfLastStep(); } } void onEnrollmentHelp() { + Log.d(TAG, "onEnrollmentHelp"); if (mEnrollHelper != null) { mEnrollHelper.onEnrollmentHelp(); } @@ -759,6 +764,7 @@ public class UdfpsController implements DozeReceiver { UdfpsEnrollView enrollView = (UdfpsEnrollView) mInflater.inflate( R.layout.udfps_enroll_view, null); mView.addView(enrollView); + enrollView.updateSensorLocation(mSensorProps); return new UdfpsEnrollViewController( enrollView, mServerRequest.mEnrollHelper, @@ -842,6 +848,10 @@ public class UdfpsController implements DozeReceiver { return; } + if (!mKeyguardUpdateMonitor.isFingerprintDetectionRunning()) { + return; + } + mAodInterruptRunnable = () -> { mIsAodInterruptActive = true; // Since the sensor that triggers the AOD interrupt doesn't provide @@ -861,6 +871,20 @@ public class UdfpsController implements DozeReceiver { } /** + * Add a callback for fingerUp and fingerDown events + */ + public void addCallback(Callback cb) { + mCallbacks.add(cb); + } + + /** + * Remove callback + */ + public void removeCallback(Callback cb) { + mCallbacks.remove(cb); + } + + /** * Cancel updfs scan affordances - ability to hide the HbmSurfaceView (white circle) before * user explicitly lifts their finger. Generally, this should be called whenever udfps fails * or errors. @@ -914,6 +938,10 @@ public class UdfpsController implements DozeReceiver { mFingerprintManager.onUiReady(mSensorProps.sensorId); Trace.endAsyncSection("UdfpsController.e2e.startIllumination", 0); }); + + for (Callback cb : mCallbacks) { + cb.onFingerDown(); + } } private void onFingerUp() { @@ -926,6 +954,9 @@ public class UdfpsController implements DozeReceiver { } if (mOnFingerDown) { mFingerprintManager.onPointerUp(mSensorProps.sensorId); + for (Callback cb : mCallbacks) { + cb.onFingerUp(); + } } mOnFingerDown = false; if (mView.isIlluminationRequested()) { @@ -946,4 +977,19 @@ public class UdfpsController implements DozeReceiver { mView.setOnTouchListener(mOnTouchListener); } } + + /** + * Callback for fingerUp and fingerDown events. + */ + public interface Callback { + /** + * Called onFingerUp events. Will only be called if the finger was previously down. + */ + void onFingerUp(); + + /** + * Called onFingerDown events. + */ + void onFingerDown(); + } } |