diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java index 1015a45b8d6..167a381b277 100644 --- a/src/com/android/settings/ChooseLockGeneric.java +++ b/src/com/android/settings/ChooseLockGeneric.java @@ -109,11 +109,18 @@ public class ChooseLockGeneric extends SettingsActivity { @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 @@ public class ChooseLockGeneric extends SettingsActivity { 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 baf04d4f195..b957c38c031 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -505,7 +505,10 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF } public void finish() { - getActivity().onBackPressed(); + Activity activity = getActivity(); + if (activity != null) { + activity.onBackPressed(); + } } public boolean startFragment(Fragment caller, String fragmentClass, int titleRes,