am 73ae2d3a: Merge "[FRP] Remove None and Swipe from screen lock options" into lmp-mr1-dev

* commit '73ae2d3adca786efed712e088b03c520fe7e9790':
  [FRP] Remove None and Swipe from screen lock options
This commit is contained in:
Lucky Zhang
2014-12-08 10:11:50 +00:00
committed by Android Git Automerger
2 changed files with 45 additions and 3 deletions

View File

@@ -287,15 +287,31 @@ public class ChooseLockGeneric extends SettingsActivity {
return quality; return quality;
} }
/***
* Disables preferences that are less secure than required quality. The actual
* implementation is in disableUnusablePreferenceImpl.
*
* @param quality the requested quality.
* @param allowBiometric whether to allow biometic screen lock.
*/
protected void disableUnusablePreferences(final int quality,
MutableBoolean allowBiometric) {
disableUnusablePreferencesImpl(quality, allowBiometric, false /* hideDisabled */);
}
/*** /***
* Disables preferences that are less secure than required quality. * Disables preferences that are less secure than required quality.
* *
* @param quality the requested quality. * @param quality the requested quality.
* @param allowBiometric whether to allow biometic screen lock.
* @param hideDisabled whether to hide disable screen lock options.
*/ */
private void disableUnusablePreferences(final int quality, MutableBoolean allowBiometric) { protected void disableUnusablePreferencesImpl(final int quality,
MutableBoolean allowBiometric, boolean hideDisabled) {
final PreferenceScreen entries = getPreferenceScreen(); final PreferenceScreen entries = getPreferenceScreen();
final boolean onlyShowFallback = getActivity().getIntent() final Intent intent = getActivity().getIntent();
.getBooleanExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, false); final boolean onlyShowFallback = intent.getBooleanExtra(
LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, false);
final boolean weakBiometricAvailable = final boolean weakBiometricAvailable =
mChooseLockSettingsHelper.utils().isBiometricWeakInstalled(); mChooseLockSettingsHelper.utils().isBiometricWeakInstalled();
@@ -326,6 +342,9 @@ public class ChooseLockGeneric extends SettingsActivity {
} else if (KEY_UNLOCK_SET_PASSWORD.equals(key)) { } else if (KEY_UNLOCK_SET_PASSWORD.equals(key)) {
enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_COMPLEX; enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
} }
if (hideDisabled) {
visible = visible && enabled;
}
if (!visible || (onlyShowFallback && !allowedForFallback(key))) { if (!visible || (onlyShowFallback && !allowedForFallback(key))) {
entries.removePreference(pref); entries.removePreference(pref);
} else if (!enabled) { } else if (!enabled) {

View File

@@ -18,11 +18,13 @@ package com.android.settings;
import com.android.setupwizard.navigationbar.SetupWizardNavBar; import com.android.setupwizard.navigationbar.SetupWizardNavBar;
import android.app.admin.DevicePolicyManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceFragment; import android.preference.PreferenceFragment;
import android.util.MutableBoolean;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -92,6 +94,27 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric
SetupWizardUtils.setHeaderText(getActivity(), getActivity().getTitle()); SetupWizardUtils.setHeaderText(getActivity(), getActivity().getTitle());
} }
/***
* Disables preferences that are less secure than required quality and shows only secure
* screen lock options here.
*
* @param quality the requested quality.
* @param allowBiometric whether to allow biometic screen lock
*/
@Override
protected void disableUnusablePreferences(final int quality,
MutableBoolean allowBiometric) {
// At this part of the flow, the user has already indicated they want to add a pin,
// pattern or password, so don't show "None" or "Slide". We disable them here and set
// the HIDE_DISABLED flag to true to hide them. This only happens for setup wizard.
// We do the following max check here since the device may already have a Device Admin
// installed with a policy we need to honor.
final int newQuality = Math.max(quality,
DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
super.disableUnusablePreferencesImpl(newQuality, allowBiometric,
true /* hideDisabled */);
}
@Override @Override
protected Intent getLockPasswordIntent(Context context, int quality, boolean isFallback, protected Intent getLockPasswordIntent(Context context, int quality, boolean isFallback,
int minLength, int maxLength, boolean requirePasswordToDecrypt, int minLength, int maxLength, boolean requirePasswordToDecrypt,