Merge "Auto-advance when fingerprint touch is detected."
This commit is contained in:
@@ -50,7 +50,7 @@ import com.android.settings.R;
|
||||
public class FingerprintEnrollEnrolling extends FingerprintEnrollBase
|
||||
implements FingerprintEnrollSidecar.Listener {
|
||||
|
||||
private static final String TAG_SIDECAR = "sidecar";
|
||||
static final String TAG_SIDECAR = "sidecar";
|
||||
|
||||
private static final int PROGRESS_BAR_MAX = 10000;
|
||||
private static final int FINISH_DELAY = 250;
|
||||
@@ -170,6 +170,8 @@ public class FingerprintEnrollEnrolling extends FingerprintEnrollBase
|
||||
mSidecar.setListener(null);
|
||||
stopIconAnimation();
|
||||
if (!isChangingConfigurations()) {
|
||||
mSidecar.cancelEnrollment();
|
||||
getFragmentManager().beginTransaction().remove(mSidecar).commit();
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
@@ -23,6 +23,7 @@ import android.os.Bundle;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.settings.ChooseLockSettingsHelper;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.fingerprint.FingerprintEnrollSidecar.Listener;
|
||||
|
||||
/**
|
||||
* Activity explaining the fingerprint sensor location for fingerprint enrollment.
|
||||
@@ -35,16 +36,23 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
|
||||
|
||||
private FingerprintFindSensorAnimation mAnimation;
|
||||
private boolean mLaunchedConfirmLock;
|
||||
private FingerprintEnrollSidecar mSidecar;
|
||||
private boolean mNextClicked;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.fingerprint_enroll_find_sensor);
|
||||
setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
|
||||
mLaunchedConfirmLock = savedInstanceState != null && savedInstanceState.getBoolean(
|
||||
EXTRA_KEY_LAUNCHED_CONFIRM);
|
||||
if (savedInstanceState != null) {
|
||||
mLaunchedConfirmLock = savedInstanceState.getBoolean(EXTRA_KEY_LAUNCHED_CONFIRM);
|
||||
mToken = savedInstanceState.getByteArray(
|
||||
ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
|
||||
}
|
||||
if (mToken == null && !mLaunchedConfirmLock) {
|
||||
launchConfirmLock();
|
||||
} else if (mToken != null) {
|
||||
startLookingForFingerprint(); // already confirmed, so start looking for fingerprint
|
||||
}
|
||||
mAnimation = (FingerprintFindSensorAnimation) findViewById(
|
||||
R.id.fingerprint_sensor_location_animation);
|
||||
@@ -56,6 +64,37 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
|
||||
mAnimation.startAnimation();
|
||||
}
|
||||
|
||||
private void startLookingForFingerprint() {
|
||||
mSidecar = (FingerprintEnrollSidecar) getFragmentManager().findFragmentByTag(
|
||||
FingerprintEnrollEnrolling.TAG_SIDECAR);
|
||||
if (mSidecar == null) {
|
||||
mSidecar = new FingerprintEnrollSidecar();
|
||||
getFragmentManager().beginTransaction()
|
||||
.add(mSidecar, FingerprintEnrollEnrolling.TAG_SIDECAR).commit();
|
||||
}
|
||||
mSidecar.setListener(new Listener() {
|
||||
@Override
|
||||
public void onEnrollmentProgressChange(int steps, int remaining) {
|
||||
mNextClicked = true;
|
||||
if (!mSidecar.cancelEnrollment()) {
|
||||
proceedToEnrolling();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnrollmentHelp(CharSequence helpString) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnrollmentError(int errMsgId, CharSequence errString) {
|
||||
if (mNextClicked && errMsgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
|
||||
mNextClicked = false;
|
||||
proceedToEnrolling();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
@@ -72,10 +111,20 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.putBoolean(EXTRA_KEY_LAUNCHED_CONFIRM, mLaunchedConfirmLock);
|
||||
outState.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onNextButtonClick() {
|
||||
mNextClicked = true;
|
||||
if (mSidecar == null || (mSidecar != null && !mSidecar.cancelEnrollment())) {
|
||||
proceedToEnrolling();
|
||||
}
|
||||
}
|
||||
|
||||
private void proceedToEnrolling() {
|
||||
getFragmentManager().beginTransaction().remove(mSidecar).commit();
|
||||
mSidecar = null;
|
||||
startActivityForResult(getEnrollingIntent(), ENROLLING);
|
||||
}
|
||||
|
||||
@@ -85,6 +134,8 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
|
||||
if (resultCode == RESULT_OK) {
|
||||
mToken = data.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
|
||||
overridePendingTransition(R.anim.suw_slide_next_in, R.anim.suw_slide_next_out);
|
||||
getIntent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
|
||||
startLookingForFingerprint();
|
||||
} else {
|
||||
finish();
|
||||
}
|
||||
@@ -105,6 +156,9 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
|
||||
com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
|
||||
if (enrolled >= max) {
|
||||
finish();
|
||||
} else {
|
||||
// We came back from enrolling but it wasn't completed, start again.
|
||||
startLookingForFingerprint();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@@ -79,13 +79,15 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment {
|
||||
mEnrolling = true;
|
||||
}
|
||||
|
||||
private void cancelEnrollment() {
|
||||
boolean cancelEnrollment() {
|
||||
mHandler.removeCallbacks(mTimeoutRunnable);
|
||||
if (mEnrolling) {
|
||||
mEnrollmentCancel.cancel();
|
||||
mEnrolling = false;
|
||||
mEnrollmentSteps = -1;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setListener(Listener listener) {
|
||||
@@ -131,6 +133,7 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment {
|
||||
if (mListener != null) {
|
||||
mListener.onEnrollmentError(errMsgId, errString);
|
||||
}
|
||||
mEnrolling = false;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -151,4 +154,8 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment {
|
||||
void onEnrollmentError(int errMsgId, CharSequence errString);
|
||||
void onEnrollmentProgressChange(int steps, int remaining);
|
||||
}
|
||||
|
||||
public boolean isEnrolling() {
|
||||
return mEnrolling;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user