OSDN Git Service

Fixes for fingerprint profile challenge
authorMahaver Chopra <mahaver@google.com>
Mon, 15 Feb 2016 21:35:14 +0000 (21:35 +0000)
committerMahaver Chopra <mahaver@google.com>
Tue, 16 Feb 2016 17:27:30 +0000 (17:27 +0000)
"Remove all fingerprints?" dialog should only be shown when removing the
last finger print. Fixed.
Changed the Dialog description for the same.

Bug: 26903306
Change-Id: I11b11a9173fa9b09e3fb20bb8a8e7a64594a7d81

res/values/strings.xml
src/com/android/settings/fingerprint/FingerprintSettings.java

index 5d093f1..b4b1f0e 100644 (file)
 
     <!-- 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>
+    <string name="fingerprint_last_delete_message_profile_challenge">You won\'t be able to use your fingerprints to unlock your work profile, authorize purchases, or sign in to work apps.</string>
 
     <!-- Button to confirm the last removing the last fingerprint. [CHAR LIMIT=20]-->
     <string name="fingerprint_last_delete_confirm">Yes, remove</string>
index b2b4c54..3b00168 100644 (file)
@@ -38,6 +38,7 @@ import android.os.Bundle;
 import android.os.CancellationSignal;
 import android.os.Handler;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 import android.support.v7.preference.PreferenceGroup;
@@ -66,6 +67,7 @@ import com.android.settings.HelpUtils;
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.SubSettings;
+import com.android.settings.Utils;
 import com.android.settingslib.RestrictedLockUtils;
 
 import java.util.List;
@@ -638,12 +640,15 @@ public class FingerprintSettings extends SubSettings {
                         mFp.getFingerId());
                 FingerprintSettingsFragment parent
                         = (FingerprintSettingsFragment) getTargetFragment();
-                if (parent.mFingerprintManager.getEnrolledFingerprints().size() > 1) {
+                final boolean isProfileChallengeUser =
+                        Utils.isManagedProfile(UserManager.get(getContext()), parent.mUserId);
+                if (parent.mFingerprintManager.getEnrolledFingerprints(parent.mUserId).size() > 1) {
                     parent.deleteFingerPrint(mFp);
                 } else {
                     ConfirmLastDeleteDialog lastDeleteDialog = new ConfirmLastDeleteDialog();
                     Bundle args = new Bundle();
                     args.putParcelable("fingerprint", mFp);
+                    args.putBoolean("isProfileChallengeUser", isProfileChallengeUser);
                     lastDeleteDialog.setArguments(args);
                     lastDeleteDialog.setTargetFragment(getTargetFragment(), 0);
                     lastDeleteDialog.show(getFragmentManager(),
@@ -671,9 +676,13 @@ public class FingerprintSettings extends SubSettings {
             @Override
             public Dialog onCreateDialog(Bundle savedInstanceState) {
                 mFp = getArguments().getParcelable("fingerprint");
+                final boolean isProfileChallengeUser =
+                        getArguments().getBoolean("isProfileChallengeUser");
                 final AlertDialog alertDialog = new AlertDialog.Builder(getActivity())
                         .setTitle(R.string.fingerprint_last_delete_title)
-                        .setMessage(R.string.fingerprint_last_delete_message)
+                        .setMessage((isProfileChallengeUser)
+                                ? R.string.fingerprint_last_delete_message_profile_challenge
+                                : R.string.fingerprint_last_delete_message)
                         .setPositiveButton(R.string.fingerprint_last_delete_confirm,
                                 new DialogInterface.OnClickListener() {
                                     @Override