Merge "Wait for systemui udfps overlay ready to show settings udfps enroll view." into udc-qpr-dev

This commit is contained in:
Hao Dong
2023-06-15 01:22:22 +00:00
committed by Android (Google) Code Review
9 changed files with 88 additions and 38 deletions

View File

@@ -18,7 +18,8 @@
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/udfps_animation_view" android:id="@+id/udfps_animation_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:visibility="gone">
<ImageView <ImageView
android:id="@+id/udfps_enroll_animation_fp_progress_view" android:id="@+id/udfps_enroll_animation_fp_progress_view"

View File

@@ -48,11 +48,16 @@ public abstract class BiometricEnrollSidecar extends InstrumentedFragment {
/** /**
* Called when a pointer down event has occurred. * Called when a pointer down event has occurred.
*/ */
default void onPointerDown(int sensorId) { } default void onUdfpsPointerDown(int sensorId) { }
/** /**
* Called when a pointer up event has occurred. * Called when a pointer up event has occurred.
*/ */
default void onPointerUp(int sensorId) { } default void onUdfpsPointerUp(int sensorId) { }
/**
* Called when udfps overlay is shown.
*/
default void onUdfpsOverlayShown() { }
} }
private int mEnrollmentSteps = -1; private int mEnrollmentSteps = -1;
@@ -126,29 +131,36 @@ public abstract class BiometricEnrollSidecar extends InstrumentedFragment {
} }
} }
private class QueuedPointerDown extends QueuedEvent { private class QueuedUdfpsPointerDown extends QueuedEvent {
private final int sensorId; private final int sensorId;
public QueuedPointerDown(int sensorId) { QueuedUdfpsPointerDown(int sensorId) {
this.sensorId = sensorId; this.sensorId = sensorId;
} }
@Override @Override
public void send(Listener listener) { public void send(Listener listener) {
listener.onPointerDown(sensorId); listener.onUdfpsPointerDown(sensorId);
} }
} }
private class QueuedPointerUp extends QueuedEvent { private class QueuedUdfpsPointerUp extends QueuedEvent {
private final int sensorId; private final int sensorId;
public QueuedPointerUp(int sensorId) { QueuedUdfpsPointerUp(int sensorId) {
this.sensorId = sensorId; this.sensorId = sensorId;
} }
@Override @Override
public void send(Listener listener) { public void send(Listener listener) {
listener.onPointerUp(sensorId); listener.onUdfpsPointerUp(sensorId);
}
}
private class QueuedUdfpsOverlayShown extends QueuedEvent {
@Override
public void send(Listener listener) {
listener.onUdfpsOverlayShown();
} }
} }
@@ -249,19 +261,27 @@ public abstract class BiometricEnrollSidecar extends InstrumentedFragment {
} }
} }
protected void onPointerDown(int sensorId) { protected void onUdfpsPointerDown(int sensorId) {
if (mListener != null) { if (mListener != null) {
mListener.onPointerDown(sensorId); mListener.onUdfpsPointerDown(sensorId);
} else { } else {
mQueuedEvents.add(new QueuedPointerDown(sensorId)); mQueuedEvents.add(new QueuedUdfpsPointerDown(sensorId));
} }
} }
protected void onPointerUp(int sensorId) { protected void onUdfpsPointerUp(int sensorId) {
if (mListener != null) { if (mListener != null) {
mListener.onPointerUp(sensorId); mListener.onUdfpsPointerUp(sensorId);
} else { } else {
mQueuedEvents.add(new QueuedPointerUp(sensorId)); mQueuedEvents.add(new QueuedUdfpsPointerUp(sensorId));
}
}
protected void onUdfpsOverlayShown() {
if (mListener != null) {
mListener.onUdfpsOverlayShown();
} else {
mQueuedEvents.add(new QueuedUdfpsOverlayShown());
} }
} }

View File

@@ -828,19 +828,26 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
} }
@Override @Override
public void onPointerDown(int sensorId) { public void onUdfpsPointerDown(int sensorId) {
if (mUdfpsEnrollHelper != null) { if (mUdfpsEnrollHelper != null) {
mUdfpsEnrollHelper.onPointerDown(sensorId); mUdfpsEnrollHelper.onPointerDown(sensorId);
} }
} }
@Override @Override
public void onPointerUp(int sensorId) { public void onUdfpsPointerUp(int sensorId) {
if (mUdfpsEnrollHelper != null) { if (mUdfpsEnrollHelper != null) {
mUdfpsEnrollHelper.onPointerUp(sensorId); mUdfpsEnrollHelper.onPointerUp(sensorId);
} }
} }
@Override
public void onUdfpsOverlayShown() {
if (mCanAssumeUdfps) {
findViewById(R.id.udfps_animation_view).setVisibility(View.VISIBLE);
}
}
private void updateProgress(boolean animate) { private void updateProgress(boolean animate) {
if (mSidecar == null || !mSidecar.isEnrolling()) { if (mSidecar == null || !mSidecar.isEnrolling()) {
Log.d(TAG, "Enrollment not started yet"); Log.d(TAG, "Enrollment not started yet");

View File

@@ -124,13 +124,18 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
} }
@Override @Override
public void onPointerDown(int sensorId) { public void onUdfpsPointerDown(int sensorId) {
FingerprintEnrollSidecar.super.onPointerDown(sensorId); FingerprintEnrollSidecar.super.onUdfpsPointerDown(sensorId);
} }
@Override @Override
public void onPointerUp(int sensorId) { public void onUdfpsPointerUp(int sensorId) {
FingerprintEnrollSidecar.super.onPointerUp(sensorId); FingerprintEnrollSidecar.super.onUdfpsPointerUp(sensorId);
}
@Override
public void onUdfpsOverlayShown() {
FingerprintEnrollSidecar.super.onUdfpsOverlayShown();
} }
}; };

View File

@@ -98,13 +98,18 @@ public class FingerprintUpdater {
} }
@Override @Override
public void onPointerDown(int sensorId) { public void onUdfpsPointerDown(int sensorId) {
mCallback.onPointerDown(sensorId); mCallback.onUdfpsPointerDown(sensorId);
} }
@Override @Override
public void onPointerUp(int sensorId) { public void onUdfpsPointerUp(int sensorId) {
mCallback.onPointerUp(sensorId); mCallback.onUdfpsPointerUp(sensorId);
}
@Override
public void onUdfpsOverlayShown() {
mCallback.onUdfpsOverlayShown();
} }
} }

View File

@@ -86,7 +86,7 @@ public class UdfpsEnrollEnrollingView extends GlifLayout {
UdfpsEnrollHelper udfpsEnrollHelper, UdfpsEnrollHelper udfpsEnrollHelper,
AccessibilityManager accessibilityManager) { AccessibilityManager accessibilityManager) {
mAccessibilityManager = accessibilityManager; mAccessibilityManager = accessibilityManager;
initUdfpsEnrollView(mUdfpsEnrollView, udfpsProps, udfpsEnrollHelper); initUdfpsEnrollView(udfpsProps, udfpsEnrollHelper);
if (!mIsLandscape) { if (!mIsLandscape) {
adjustPortraitPaddings(); adjustPortraitPaddings();
@@ -117,8 +117,7 @@ public class UdfpsEnrollEnrollingView extends GlifLayout {
}); });
} }
private void initUdfpsEnrollView(UdfpsEnrollView udfpsEnrollView, private void initUdfpsEnrollView(FingerprintSensorPropertiesInternal udfpsProps,
FingerprintSensorPropertiesInternal udfpsProps,
UdfpsEnrollHelper udfpsEnrollHelper) { UdfpsEnrollHelper udfpsEnrollHelper) {
DisplayInfo displayInfo = new DisplayInfo(); DisplayInfo displayInfo = new DisplayInfo();
mContext.getDisplay().getDisplayInfo(displayInfo); mContext.getDisplay().getDisplayInfo(displayInfo);
@@ -141,8 +140,8 @@ public class UdfpsEnrollEnrollingView extends GlifLayout {
scaleFactor, scaleFactor,
displayInfo.rotation); displayInfo.rotation);
udfpsEnrollView.setOverlayParams(params); mUdfpsEnrollView.setOverlayParams(params);
udfpsEnrollView.setEnrollHelper(udfpsEnrollHelper); mUdfpsEnrollView.setEnrollHelper(udfpsEnrollHelper);
} }
private void adjustPortraitPaddings() { private void adjustPortraitPaddings() {

View File

@@ -103,12 +103,12 @@ public class FingerprintEnrollProgressViewModel extends AndroidViewModel {
} }
@Override @Override
public void onPointerDown(int sensorId) { public void onUdfpsPointerDown(int sensorId) {
mPointerDownLiveData.postValue(sensorId); mPointerDownLiveData.postValue(sensorId);
} }
@Override @Override
public void onPointerUp(int sensorId) { public void onUdfpsPointerUp(int sensorId) {
mPointerUpLiveData.postValue(sensorId); mPointerUpLiveData.postValue(sensorId);
} }
}; };

View File

@@ -352,6 +352,19 @@ public class FingerprintEnrollEnrollingTest {
assertThat(descriptionTextView.getVisibility()).isEqualTo(View.VISIBLE); assertThat(descriptionTextView.getVisibility()).isEqualTo(View.VISIBLE);
} }
@Test
public void fingerprintUdfpsOverlayEnrollment_udfpsAnimationViewVisibility() {
initializeActivityWithoutCreate(TYPE_UDFPS_OPTICAL);
when(mMockDisplay.getRotation()).thenReturn(Surface.ROTATION_0);
createActivity();
final UdfpsEnrollView enrollView = mActivity.findViewById(R.id.udfps_animation_view);
assertThat(enrollView.getVisibility()).isEqualTo(View.GONE);
mActivity.onUdfpsOverlayShown();
assertThat(enrollView.getVisibility()).isEqualTo(View.VISIBLE);
}
@Test @Test
public void forwardEnrollProgressEvents() { public void forwardEnrollProgressEvents() {
initializeActivityFor(TYPE_UDFPS_OPTICAL); initializeActivityFor(TYPE_UDFPS_OPTICAL);
@@ -393,11 +406,11 @@ public class FingerprintEnrollEnrollingTest {
} }
@Test @Test
public void forwardEnrollPointerDownEvents() { public void forwardUdfpsEnrollPointerDownEvents() {
initializeActivityFor(TYPE_UDFPS_OPTICAL); initializeActivityFor(TYPE_UDFPS_OPTICAL);
EnrollListener listener = new EnrollListener(mActivity); EnrollListener listener = new EnrollListener(mActivity);
mActivity.onPointerDown(0); mActivity.onUdfpsPointerDown(0);
assertThat(listener.mProgress).isFalse(); assertThat(listener.mProgress).isFalse();
assertThat(listener.mHelp).isFalse(); assertThat(listener.mHelp).isFalse();
assertThat(listener.mAcquired).isFalse(); assertThat(listener.mAcquired).isFalse();
@@ -406,11 +419,11 @@ public class FingerprintEnrollEnrollingTest {
} }
@Test @Test
public void forwardEnrollPointerUpEvents() { public void forwardUdfpsEnrollPointerUpEvents() {
initializeActivityFor(TYPE_UDFPS_OPTICAL); initializeActivityFor(TYPE_UDFPS_OPTICAL);
EnrollListener listener = new EnrollListener(mActivity); EnrollListener listener = new EnrollListener(mActivity);
mActivity.onPointerUp(0); mActivity.onUdfpsPointerUp(0);
assertThat(listener.mProgress).isFalse(); assertThat(listener.mProgress).isFalse();
assertThat(listener.mHelp).isFalse(); assertThat(listener.mHelp).isFalse();
assertThat(listener.mAcquired).isFalse(); assertThat(listener.mAcquired).isFalse();

View File

@@ -379,7 +379,7 @@ public class FingerprintEnrollProgressViewModelTest {
// Notify acquire message // Notify acquire message
final int value = 33; final int value = 33;
mCallbackWrapper.mValue.onPointerDown(value); mCallbackWrapper.mValue.onUdfpsPointerDown(value);
assertThat(liveData.getValue()).isEqualTo(value); assertThat(liveData.getValue()).isEqualTo(value);
} }
@@ -397,7 +397,7 @@ public class FingerprintEnrollProgressViewModelTest {
// Notify acquire message // Notify acquire message
final int value = 44; final int value = 44;
mCallbackWrapper.mValue.onPointerUp(value); mCallbackWrapper.mValue.onUdfpsPointerUp(value);
assertThat(liveData.getValue()).isEqualTo(value); assertThat(liveData.getValue()).isEqualTo(value);
} }