Loading src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java +3 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -170,6 +170,8 @@ public class FingerprintEnrollEnrolling extends FingerprintEnrollBase mSidecar.setListener(null); stopIconAnimation(); if (!isChangingConfigurations()) { mSidecar.cancelEnrollment(); getFragmentManager().beginTransaction().remove(mSidecar).commit(); finish(); } } Loading src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java +56 −2 Original line number Diff line number Diff line Loading @@ -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. Loading @@ -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); Loading @@ -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(); Loading @@ -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); } Loading @@ -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(); } Loading @@ -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 { Loading src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java +8 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -131,6 +133,7 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment { if (mListener != null) { mListener.onEnrollmentError(errMsgId, errString); } mEnrolling = false; } }; Loading @@ -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; } } Loading
src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java +3 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -170,6 +170,8 @@ public class FingerprintEnrollEnrolling extends FingerprintEnrollBase mSidecar.setListener(null); stopIconAnimation(); if (!isChangingConfigurations()) { mSidecar.cancelEnrollment(); getFragmentManager().beginTransaction().remove(mSidecar).commit(); finish(); } } Loading
src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java +56 −2 Original line number Diff line number Diff line Loading @@ -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. Loading @@ -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); Loading @@ -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(); Loading @@ -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); } Loading @@ -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(); } Loading @@ -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 { Loading
src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java +8 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -131,6 +133,7 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment { if (mListener != null) { mListener.onEnrollmentError(errMsgId, errString); } mEnrolling = false; } }; Loading @@ -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; } }