summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2015-07-30 12:41:42 -0700
committerJorim Jaggi <jjaggi@google.com>2015-07-30 12:42:08 -0700
commit12ee807c1fbef73d9a05cff523d797748d209002 (patch)
tree51e961f3990931405de301ab5480e941a2a02c5a
parent32b96646eec917987fdd38208c6b11a9bc8832d3 (diff)
downloadpackages_apps_Settings-12ee807c1fbef73d9a05cff523d797748d209002.zip
packages_apps_Settings-12ee807c1fbef73d9a05cff523d797748d209002.tar.gz
packages_apps_Settings-12ee807c1fbef73d9a05cff523d797748d209002.tar.bz2
Add dialog to confirm last fingerprint removal
Bug: 22847296 Change-Id: Ib4984d8db0c9abc00442026360bd5617515225aa
-rw-r--r--res/values/strings.xml9
-rw-r--r--src/com/android/settings/fingerprint/FingerprintSettings.java58
2 files changed, 61 insertions, 6 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b8a3401..ade2cb5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -777,6 +777,15 @@
<!-- Text shown when "Add fingerprint" button is disabled -->
<string name="fingerprint_add_max">You can add up to <xliff:g id="count" example="5">%d</xliff:g> fingerprints</string>
+ <!-- Title shown in a dialog which asks the user to confirm when the last fingerprint gets deleted by him. [CHAR LIMIT=35]-->
+ <string name="fingerprint_last_delete_title">Remove all fingerprints?</string>
+
+ <!-- Message shown in a dialog which asks the user to confirm when the last fingerprint gets deleted by him. [CHAR LIMIT=NONE]-->
+ <string name="fingerprint_last_delete_message">You won\'t be able to use your fingerprints to unlock your phone, authorize purchases, or sign in to apps with them.</string>
+
+ <!-- Button to confirm the last removing the last fingerprint. [CHAR LIMIT=20]-->
+ <string name="fingerprint_last_delete_confirm">Yes, remove</string>
+
<!-- Content description for the fingerprint icon when the user is prompted to enter his credentials. Not shown on the screen. [CHAR LIMIT=NONE] -->
<string name="confirm_fingerprint_icon_content_description">Use your fingerprint to continue.</string>
diff --git a/src/com/android/settings/fingerprint/FingerprintSettings.java b/src/com/android/settings/fingerprint/FingerprintSettings.java
index f065bff..d40dc50 100644
--- a/src/com/android/settings/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/fingerprint/FingerprintSettings.java
@@ -63,7 +63,6 @@ import com.android.settings.HelpUtils;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.SubSettings;
-import com.android.settings.search.Indexable;
import java.util.List;
@@ -569,11 +568,7 @@ public class FingerprintSettings extends SubSettings {
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- if (DEBUG) Log.v(TAG, "Removing fpId=" + mFp.getFingerId());
- FingerprintSettingsFragment parent
- = (FingerprintSettingsFragment) getTargetFragment();
- parent.deleteFingerPrint(mFp);
- dialog.dismiss();
+ onDeleteClick(dialog);
}
})
.create();
@@ -599,6 +594,24 @@ public class FingerprintSettings extends SubSettings {
return alertDialog;
}
+ private void onDeleteClick(DialogInterface dialog) {
+ if (DEBUG) Log.v(TAG, "Removing fpId=" + mFp.getFingerId());
+ FingerprintSettingsFragment parent
+ = (FingerprintSettingsFragment) getTargetFragment();
+ if (parent.mFingerprintManager.getEnrolledFingerprints().size() > 1) {
+ parent.deleteFingerPrint(mFp);
+ } else {
+ ConfirmLastDeleteDialog lastDeleteDialog = new ConfirmLastDeleteDialog();
+ Bundle args = new Bundle();
+ args.putParcelable("fingerprint", mFp);
+ lastDeleteDialog.setArguments(args);
+ lastDeleteDialog.setTargetFragment(getTargetFragment(), 0);
+ lastDeleteDialog.show(getFragmentManager(),
+ ConfirmLastDeleteDialog.class.getName());
+ }
+ dialog.dismiss();
+ }
+
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
@@ -610,6 +623,39 @@ public class FingerprintSettings extends SubSettings {
}
}
}
+
+ public static class ConfirmLastDeleteDialog extends DialogFragment {
+
+ private Fingerprint mFp;
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ mFp = getArguments().getParcelable("fingerprint");
+ final AlertDialog alertDialog = new AlertDialog.Builder(getActivity())
+ .setTitle(R.string.fingerprint_last_delete_title)
+ .setMessage(R.string.fingerprint_last_delete_message)
+ .setPositiveButton(R.string.fingerprint_last_delete_confirm,
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ FingerprintSettingsFragment parent
+ = (FingerprintSettingsFragment) getTargetFragment();
+ parent.deleteFingerPrint(mFp);
+ dialog.dismiss();
+ }
+ })
+ .setNegativeButton(
+ R.string.cancel,
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+ }
+ })
+ .create();
+ return alertDialog;
+ }
+ }
}
public static class FingerprintPreference extends Preference {