Merge "Propagate finger down to KeyguardUpdateMonitor" into tm-d1-dev am: 13c3b1d699
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17903856 Change-Id: Ie040976b9a1575523b9c49f96369fab6cb45a4e4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -1512,6 +1512,20 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
|||||||
handleFingerprintAuthenticated(userId, isStrongBiometric);
|
handleFingerprintAuthenticated(userId, isStrongBiometric);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Propagates a pointer down event to keyguard.
|
||||||
|
*/
|
||||||
|
public void onUdfpsPointerDown(int sensorId) {
|
||||||
|
mFingerprintAuthenticationCallback.onUdfpsPointerDown(sensorId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Propagates a pointer up event to keyguard.
|
||||||
|
*/
|
||||||
|
public void onUdfpsPointerUp(int sensorId) {
|
||||||
|
mFingerprintAuthenticationCallback.onUdfpsPointerUp(sensorId);
|
||||||
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final FingerprintManager.AuthenticationCallback mFingerprintAuthenticationCallback
|
final FingerprintManager.AuthenticationCallback mFingerprintAuthenticationCallback
|
||||||
= new AuthenticationCallback() {
|
= new AuthenticationCallback() {
|
||||||
@@ -1553,6 +1567,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
|||||||
Trace.endSection();
|
Trace.endSection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Note, this is currently called from UdfpsController.
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onUdfpsPointerDown(int sensorId) {
|
public void onUdfpsPointerDown(int sensorId) {
|
||||||
Log.d(TAG, "onUdfpsPointerDown, sensorId: " + sensorId);
|
Log.d(TAG, "onUdfpsPointerDown, sensorId: " + sensorId);
|
||||||
@@ -1562,6 +1579,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Note, this is currently called from UdfpsController.
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onUdfpsPointerUp(int sensorId) {
|
public void onUdfpsPointerUp(int sensorId) {
|
||||||
Log.d(TAG, "onUdfpsPointerUp, sensorId: " + sensorId);
|
Log.d(TAG, "onUdfpsPointerUp, sensorId: " + sensorId);
|
||||||
|
|||||||
@@ -796,6 +796,11 @@ public class UdfpsController implements DozeReceiver {
|
|||||||
mOnFingerDown = true;
|
mOnFingerDown = true;
|
||||||
if (mAlternateTouchProvider != null) {
|
if (mAlternateTouchProvider != null) {
|
||||||
mAlternateTouchProvider.onPointerDown(requestId, x, y, minor, major);
|
mAlternateTouchProvider.onPointerDown(requestId, x, y, minor, major);
|
||||||
|
mFgExecutor.execute(() -> {
|
||||||
|
if (mKeyguardUpdateMonitor.isFingerprintDetectionRunning()) {
|
||||||
|
mKeyguardUpdateMonitor.onUdfpsPointerDown((int) requestId);
|
||||||
|
}
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
mFingerprintManager.onPointerDown(requestId, mSensorId, x, y, minor, major);
|
mFingerprintManager.onPointerDown(requestId, mSensorId, x, y, minor, major);
|
||||||
}
|
}
|
||||||
@@ -821,6 +826,11 @@ public class UdfpsController implements DozeReceiver {
|
|||||||
if (mOnFingerDown) {
|
if (mOnFingerDown) {
|
||||||
if (mAlternateTouchProvider != null) {
|
if (mAlternateTouchProvider != null) {
|
||||||
mAlternateTouchProvider.onPointerUp(requestId);
|
mAlternateTouchProvider.onPointerUp(requestId);
|
||||||
|
mFgExecutor.execute(() -> {
|
||||||
|
if (mKeyguardUpdateMonitor.isFingerprintDetectionRunning()) {
|
||||||
|
mKeyguardUpdateMonitor.onUdfpsPointerUp((int) requestId);
|
||||||
|
}
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
mFingerprintManager.onPointerUp(requestId, mSensorId);
|
mFingerprintManager.onPointerUp(requestId, mSensorId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -564,6 +564,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
|
|||||||
// Configure UdfpsView to accept the ACTION_DOWN event
|
// Configure UdfpsView to accept the ACTION_DOWN event
|
||||||
when(mUdfpsView.isIlluminationRequested()).thenReturn(false);
|
when(mUdfpsView.isIlluminationRequested()).thenReturn(false);
|
||||||
when(mUdfpsView.isWithinSensorArea(anyFloat(), anyFloat())).thenReturn(true);
|
when(mUdfpsView.isWithinSensorArea(anyFloat(), anyFloat())).thenReturn(true);
|
||||||
|
when(mKeyguardUpdateMonitor.isFingerprintDetectionRunning()).thenReturn(true);
|
||||||
|
|
||||||
// GIVEN that the overlay is showing
|
// GIVEN that the overlay is showing
|
||||||
mOverlayController.showUdfpsOverlay(TEST_REQUEST_ID, TEST_UDFPS_SENSOR_ID,
|
mOverlayController.showUdfpsOverlay(TEST_REQUEST_ID, TEST_UDFPS_SENSOR_ID,
|
||||||
@@ -579,6 +580,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
|
|||||||
// FIX THIS TEST
|
// FIX THIS TEST
|
||||||
mTouchListenerCaptor.getValue().onTouch(mUdfpsView, moveEvent);
|
mTouchListenerCaptor.getValue().onTouch(mUdfpsView, moveEvent);
|
||||||
moveEvent.recycle();
|
moveEvent.recycle();
|
||||||
|
mFgExecutor.runAllReady();
|
||||||
// THEN FingerprintManager is notified about onPointerDown
|
// THEN FingerprintManager is notified about onPointerDown
|
||||||
verify(mAlternateTouchProvider).onPointerDown(eq(TEST_REQUEST_ID), eq(0), eq(0), eq(0f),
|
verify(mAlternateTouchProvider).onPointerDown(eq(TEST_REQUEST_ID), eq(0), eq(0), eq(0f),
|
||||||
eq(0f));
|
eq(0f));
|
||||||
@@ -588,6 +590,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
|
|||||||
// AND illumination begins
|
// AND illumination begins
|
||||||
verify(mUdfpsView).startIllumination(mOnIlluminatedRunnableCaptor.capture());
|
verify(mUdfpsView).startIllumination(mOnIlluminatedRunnableCaptor.capture());
|
||||||
verify(mLatencyTracker, never()).onActionEnd(eq(LatencyTracker.ACTION_UDFPS_ILLUMINATE));
|
verify(mLatencyTracker, never()).onActionEnd(eq(LatencyTracker.ACTION_UDFPS_ILLUMINATE));
|
||||||
|
verify(mKeyguardUpdateMonitor).onUdfpsPointerDown(eq((int) TEST_REQUEST_ID));
|
||||||
// AND onIlluminatedRunnable notifies FingerprintManager about onUiReady
|
// AND onIlluminatedRunnable notifies FingerprintManager about onUiReady
|
||||||
mOnIlluminatedRunnableCaptor.getValue().run();
|
mOnIlluminatedRunnableCaptor.getValue().run();
|
||||||
InOrder inOrder = inOrder(mFingerprintManager, mLatencyTracker);
|
InOrder inOrder = inOrder(mFingerprintManager, mLatencyTracker);
|
||||||
@@ -606,6 +609,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
|
|||||||
when(mKeyguardUpdateMonitor.isFingerprintDetectionRunning()).thenReturn(true);
|
when(mKeyguardUpdateMonitor.isFingerprintDetectionRunning()).thenReturn(true);
|
||||||
// WHEN fingerprint is requested because of AOD interrupt
|
// WHEN fingerprint is requested because of AOD interrupt
|
||||||
mUdfpsController.onAodInterrupt(0, 0, 2f, 3f);
|
mUdfpsController.onAodInterrupt(0, 0, 2f, 3f);
|
||||||
|
mFgExecutor.runAllReady();
|
||||||
// THEN illumination begins
|
// THEN illumination begins
|
||||||
// AND onIlluminatedRunnable that notifies FingerprintManager is set
|
// AND onIlluminatedRunnable that notifies FingerprintManager is set
|
||||||
verify(mUdfpsView).startIllumination(mOnIlluminatedRunnableCaptor.capture());
|
verify(mUdfpsView).startIllumination(mOnIlluminatedRunnableCaptor.capture());
|
||||||
@@ -614,6 +618,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
|
|||||||
eq(0), eq(0), eq(3f) /* minor */, eq(2f) /* major */);
|
eq(0), eq(0), eq(3f) /* minor */, eq(2f) /* major */);
|
||||||
verify(mFingerprintManager, never()).onPointerDown(anyLong(), anyInt(), anyInt(), anyInt(),
|
verify(mFingerprintManager, never()).onPointerDown(anyLong(), anyInt(), anyInt(), anyInt(),
|
||||||
anyFloat(), anyFloat());
|
anyFloat(), anyFloat());
|
||||||
|
verify(mKeyguardUpdateMonitor).onUdfpsPointerDown(eq((int) TEST_REQUEST_ID));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -641,6 +646,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
|
|||||||
mFgExecutor.runAllReady();
|
mFgExecutor.runAllReady();
|
||||||
when(mKeyguardUpdateMonitor.isFingerprintDetectionRunning()).thenReturn(true);
|
when(mKeyguardUpdateMonitor.isFingerprintDetectionRunning()).thenReturn(true);
|
||||||
mUdfpsController.onAodInterrupt(0, 0, 0f, 0f);
|
mUdfpsController.onAodInterrupt(0, 0, 0f, 0f);
|
||||||
|
mFgExecutor.runAllReady();
|
||||||
when(mUdfpsView.isIlluminationRequested()).thenReturn(true);
|
when(mUdfpsView.isIlluminationRequested()).thenReturn(true);
|
||||||
// WHEN it times out
|
// WHEN it times out
|
||||||
mFgExecutor.advanceClockToNext();
|
mFgExecutor.advanceClockToNext();
|
||||||
|
|||||||
Reference in New Issue
Block a user