diff options
author | Jorim Jaggi <jjaggi@google.com> | 2015-07-30 12:41:42 -0700 |
---|---|---|
committer | Jorim Jaggi <jjaggi@google.com> | 2015-07-30 12:42:08 -0700 |
commit | 12ee807c1fbef73d9a05cff523d797748d209002 (patch) | |
tree | 51e961f3990931405de301ab5480e941a2a02c5a | |
parent | 32b96646eec917987fdd38208c6b11a9bc8832d3 (diff) | |
download | packages_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.xml | 9 | ||||
-rw-r--r-- | src/com/android/settings/fingerprint/FingerprintSettings.java | 58 |
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 { |