diff --git a/src/com/android/settings/fingerprint/FingerprintSettings.java b/src/com/android/settings/fingerprint/FingerprintSettings.java index 56e9b12bd35..e3e7a79c745 100644 --- a/src/com/android/settings/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/fingerprint/FingerprintSettings.java @@ -37,6 +37,7 @@ import android.hardware.fingerprint.FingerprintManager.RemovalCallback; import android.os.Bundle; import android.os.CancellationSignal; import android.os.Handler; +import android.os.UserHandle; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference.OnPreferenceChangeListener; import android.support.v7.preference.PreferenceGroup; @@ -153,6 +154,7 @@ public class FingerprintSettings extends SubSettings { private byte[] mToken; private boolean mLaunchedConfirm; private Drawable mHighlightDrawable; + private int mUserId; private AuthenticationCallback mAuthCallback = new AuthenticationCallback() { @Override @@ -260,7 +262,7 @@ public class FingerprintSettings extends SubSettings { if (!mInFingerprintLockout) { mFingerprintCancel = new CancellationSignal(); mFingerprintManager.authenticate(null, mFingerprintCancel, 0 /* flags */, - mAuthCallback, null); + mAuthCallback, null, mUserId); } } @@ -278,6 +280,9 @@ public class FingerprintSettings extends SubSettings { mLaunchedConfirm = savedInstanceState.getBoolean( KEY_LAUNCHED_CONFIRM, false); } + mUserId = getActivity().getIntent().getIntExtra( + Intent.EXTRA_USER_ID, UserHandle.myUserId()); + Activity activity = getActivity(); mFingerprintManager = (FingerprintManager) activity.getSystemService( @@ -341,7 +346,7 @@ public class FingerprintSettings extends SubSettings { private void addFingerprintItemPreferences(PreferenceGroup root) { root.removeAll(); - final List items = mFingerprintManager.getEnrolledFingerprints(); + final List items = mFingerprintManager.getEnrolledFingerprints(mUserId); final int fingerprintCount = items.size(); for (int i = 0; i < fingerprintCount; i++) { final Fingerprint item = items.get(i); @@ -366,7 +371,7 @@ public class FingerprintSettings extends SubSettings { /* Disable preference if too many fingerprints added */ final int max = getContext().getResources().getInteger( com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser); - boolean tooMany = mFingerprintManager.getEnrolledFingerprints().size() >= max; + boolean tooMany = mFingerprintManager.getEnrolledFingerprints(mUserId).size() >= max; CharSequence maxSummary = tooMany ? getContext().getString(R.string.fingerprint_add_max, max) : ""; Preference addPreference = findPreference(KEY_FINGERPRINT_ADD); @@ -411,6 +416,7 @@ public class FingerprintSettings extends SubSettings { Intent intent = new Intent(); intent.setClassName("com.android.settings", FingerprintEnrollEnrolling.class.getName()); + intent.putExtra(Intent.EXTRA_USER_ID, mUserId); intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken); startActivityForResult(intent, ADD_FINGERPRINT_REQUEST); } else if (pref instanceof FingerprintPreference) { @@ -522,13 +528,14 @@ public class FingerprintSettings extends SubSettings { ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(getActivity(), this); if (!helper.launchConfirmationActivity(CONFIRM_REQUEST, getString(R.string.security_settings_fingerprint_preference_title), - null, null, challenge)) { + null, null, challenge, mUserId)) { intent.setClassName("com.android.settings", ChooseLockGeneric.class.getName()); intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY, DevicePolicyManager.PASSWORD_QUALITY_SOMETHING); intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.HIDE_DISABLED_PREFS, true); intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true); + intent.putExtra(Intent.EXTRA_USER_ID, mUserId); intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge); startActivityForResult(intent, CHOOSE_LOCK_GENERIC_REQUEST); }