Wait with finishing until fingerprints are removed

Bug: 22863210
Change-Id: I490157cc2f9b52ac87cc52e13c7eb57cb4a4a377
This commit is contained in:
Jorim Jaggi
2015-08-10 18:11:07 -07:00
parent 1d29bde1f5
commit f92fbc1c49
2 changed files with 17 additions and 7 deletions

View File

@@ -109,12 +109,19 @@ public class ChooseLockGeneric extends SettingsActivity {
@Override @Override
public void onRemovalSucceeded(Fingerprint fingerprint) { public void onRemovalSucceeded(Fingerprint fingerprint) {
Log.v(TAG, "Fingerprint removed: " + fingerprint.getFingerId()); Log.v(TAG, "Fingerprint removed: " + fingerprint.getFingerId());
if (mFingerprintManager.getEnrolledFingerprints().size() == 0) {
finish();
}
} }
@Override @Override
public void onRemovalError(Fingerprint fp, int errMsgId, CharSequence errString) { public void onRemovalError(Fingerprint fp, int errMsgId, CharSequence errString) {
Activity activity = getActivity();
if (activity != null) {
Toast.makeText(getActivity(), errString, Toast.LENGTH_SHORT); Toast.makeText(getActivity(), errString, Toast.LENGTH_SHORT);
} }
finish();
}
}; };
@Override @Override
@@ -490,18 +497,18 @@ public class ChooseLockGeneric extends SettingsActivity {
mChooseLockSettingsHelper.utils().clearLock(UserHandle.myUserId()); mChooseLockSettingsHelper.utils().clearLock(UserHandle.myUserId());
mChooseLockSettingsHelper.utils().setLockScreenDisabled(disabled, mChooseLockSettingsHelper.utils().setLockScreenDisabled(disabled,
UserHandle.myUserId()); UserHandle.myUserId());
removeAllFingerprintTemplates(); removeAllFingerprintTemplatesAndFinish();
getActivity().setResult(Activity.RESULT_OK); getActivity().setResult(Activity.RESULT_OK);
finish();
} else { } else {
removeAllFingerprintTemplates(); removeAllFingerprintTemplatesAndFinish();
finish();
} }
} }
private void removeAllFingerprintTemplates() { private void removeAllFingerprintTemplatesAndFinish() {
if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()) { if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()) {
mFingerprintManager.remove(new Fingerprint(null, 0, 0, 0), mRemovalCallback); mFingerprintManager.remove(new Fingerprint(null, 0, 0, 0), mRemovalCallback);
} else {
finish();
} }
} }

View File

@@ -505,7 +505,10 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
} }
public void finish() { public void finish() {
getActivity().onBackPressed(); Activity activity = getActivity();
if (activity != null) {
activity.onBackPressed();
}
} }
public boolean startFragment(Fragment caller, String fragmentClass, int titleRes, public boolean startFragment(Fragment caller, String fragmentClass, int titleRes,