Start udfps enroll after activity animates in
1) Do not request enrollment until activity animation is complete 2) Do not show fingerprint icon until activity animation is complete Bug: 171353506 Test: manual Change-Id: I7cdf5fc4888e35c0a7ba38ea622ae9f3fe1a3abf
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.biometrics;
|
package com.android.settings.biometrics;
|
||||||
|
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -33,6 +34,7 @@ public abstract class BiometricsEnrollEnrolling extends BiometricEnrollBase
|
|||||||
|
|
||||||
private static final String TAG_SIDECAR = "sidecar";
|
private static final String TAG_SIDECAR = "sidecar";
|
||||||
|
|
||||||
|
@Nullable
|
||||||
protected BiometricEnrollSidecar mSidecar;
|
protected BiometricEnrollSidecar mSidecar;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -33,6 +33,7 @@ import android.os.Bundle;
|
|||||||
import android.os.VibrationEffect;
|
import android.os.VibrationEffect;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.animation.AnimationUtils;
|
import android.view.animation.AnimationUtils;
|
||||||
@@ -59,6 +60,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
||||||
|
|
||||||
|
private static final String TAG = "FingerprintEnrollEnrolling";
|
||||||
static final String TAG_SIDECAR = "sidecar";
|
static final String TAG_SIDECAR = "sidecar";
|
||||||
|
|
||||||
private static final int PROGRESS_BAR_MAX = 10000;
|
private static final int PROGRESS_BAR_MAX = 10000;
|
||||||
@@ -89,6 +91,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
|||||||
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
|
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
private boolean mCanAssumeUdfps;
|
||||||
private ProgressBar mProgressBar;
|
private ProgressBar mProgressBar;
|
||||||
private ObjectAnimator mProgressAnim;
|
private ObjectAnimator mProgressAnim;
|
||||||
private TextView mStartMessage;
|
private TextView mStartMessage;
|
||||||
@@ -137,9 +140,9 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
|||||||
final FingerprintManager fingerprintManager = getSystemService(FingerprintManager.class);
|
final FingerprintManager fingerprintManager = getSystemService(FingerprintManager.class);
|
||||||
final List<FingerprintSensorPropertiesInternal> props =
|
final List<FingerprintSensorPropertiesInternal> props =
|
||||||
fingerprintManager.getSensorPropertiesInternal();
|
fingerprintManager.getSensorPropertiesInternal();
|
||||||
final boolean canAssumeUdfps = props.size() == 1 && props.get(0).isAnyUdfpsType();
|
mCanAssumeUdfps = props.size() == 1 && props.get(0).isAnyUdfpsType();
|
||||||
|
|
||||||
if (canAssumeUdfps) {
|
if (mCanAssumeUdfps) {
|
||||||
// Use a custom layout since animations, etc must be based off of the sensor's physical
|
// Use a custom layout since animations, etc must be based off of the sensor's physical
|
||||||
// location.
|
// location.
|
||||||
setContentView(R.layout.udfps_enroll_enrolling);
|
setContentView(R.layout.udfps_enroll_enrolling);
|
||||||
@@ -158,6 +161,10 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
|||||||
mProgressBar = findViewById(R.id.fingerprint_progress_bar);
|
mProgressBar = findViewById(R.id.fingerprint_progress_bar);
|
||||||
mVibrator = getSystemService(Vibrator.class);
|
mVibrator = getSystemService(Vibrator.class);
|
||||||
|
|
||||||
|
if (mCanAssumeUdfps) {
|
||||||
|
mProgressBar.setVisibility(View.INVISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
if (getLayout().shouldApplyPartnerHeavyThemeResource()) {
|
if (getLayout().shouldApplyPartnerHeavyThemeResource()) {
|
||||||
DescriptionStyler.applyPartnerCustomizationHeavyStyle(mRepeatMessage);
|
DescriptionStyler.applyPartnerCustomizationHeavyStyle(mRepeatMessage);
|
||||||
} else if (getLayout().shouldApplyPartnerResource()) {
|
} else if (getLayout().shouldApplyPartnerResource()) {
|
||||||
@@ -213,7 +220,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean shouldStartAutomatically() {
|
protected boolean shouldStartAutomatically() {
|
||||||
return true;
|
return !mCanAssumeUdfps;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -229,6 +236,12 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
|||||||
@Override
|
@Override
|
||||||
public void onEnterAnimationComplete() {
|
public void onEnterAnimationComplete() {
|
||||||
super.onEnterAnimationComplete();
|
super.onEnterAnimationComplete();
|
||||||
|
|
||||||
|
if (mCanAssumeUdfps) {
|
||||||
|
startEnrollment();
|
||||||
|
mProgressBar.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
mAnimationCancelled = false;
|
mAnimationCancelled = false;
|
||||||
startIconAnimation();
|
startIconAnimation();
|
||||||
}
|
}
|
||||||
@@ -272,7 +285,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateDescription() {
|
private void updateDescription() {
|
||||||
if (mSidecar.getEnrollmentSteps() == -1) {
|
if (mSidecar == null || mSidecar.getEnrollmentSteps() == -1) {
|
||||||
mStartMessage.setVisibility(View.VISIBLE);
|
mStartMessage.setVisibility(View.VISIBLE);
|
||||||
mRepeatMessage.setVisibility(View.INVISIBLE);
|
mRepeatMessage.setVisibility(View.INVISIBLE);
|
||||||
} else {
|
} else {
|
||||||
@@ -319,6 +332,11 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateProgress(boolean animate) {
|
private void updateProgress(boolean animate) {
|
||||||
|
if (mSidecar == null || !mSidecar.isEnrolling()) {
|
||||||
|
Log.d(TAG, "Enrollment not started yet");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int progress = getProgress(
|
int progress = getProgress(
|
||||||
mSidecar.getEnrollmentSteps(), mSidecar.getEnrollmentRemaining());
|
mSidecar.getEnrollmentSteps(), mSidecar.getEnrollmentRemaining());
|
||||||
if (animate) {
|
if (animate) {
|
||||||
|
Reference in New Issue
Block a user