Wait with finishing until fingerprints are removed
Bug: 22863210
Change-Id: I490157cc2f9b52ac87cc52e13c7eb57cb4a4a377
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index 1015a45..167a381 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -109,11 +109,18 @@
@Override
public void onRemovalSucceeded(Fingerprint fingerprint) {
Log.v(TAG, "Fingerprint removed: " + fingerprint.getFingerId());
+ if (mFingerprintManager.getEnrolledFingerprints().size() == 0) {
+ finish();
+ }
}
@Override
public void onRemovalError(Fingerprint fp, int errMsgId, CharSequence errString) {
- Toast.makeText(getActivity(), errString, Toast.LENGTH_SHORT);
+ Activity activity = getActivity();
+ if (activity != null) {
+ Toast.makeText(getActivity(), errString, Toast.LENGTH_SHORT);
+ }
+ finish();
}
};
@@ -490,18 +497,18 @@
mChooseLockSettingsHelper.utils().clearLock(UserHandle.myUserId());
mChooseLockSettingsHelper.utils().setLockScreenDisabled(disabled,
UserHandle.myUserId());
- removeAllFingerprintTemplates();
+ removeAllFingerprintTemplatesAndFinish();
getActivity().setResult(Activity.RESULT_OK);
- finish();
} else {
- removeAllFingerprintTemplates();
- finish();
+ removeAllFingerprintTemplatesAndFinish();
}
}
- private void removeAllFingerprintTemplates() {
+ private void removeAllFingerprintTemplatesAndFinish() {
if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()) {
mFingerprintManager.remove(new Fingerprint(null, 0, 0, 0), mRemovalCallback);
+ } else {
+ finish();
}
}
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index baf04d4..b957c38 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -505,7 +505,10 @@
}
public void finish() {
- getActivity().onBackPressed();
+ Activity activity = getActivity();
+ if (activity != null) {
+ activity.onBackPressed();
+ }
}
public boolean startFragment(Fragment caller, String fragmentClass, int titleRes,