import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.admin.DevicePolicyManager;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.fingerprint.FingerprintEnrollBase;
import com.android.settings.fingerprint.FingerprintEnrollFindSensor;
import com.android.settingslib.RestrictedLockUtils;
protected boolean mForFingerprint = false;
@Override
- protected int getMetricsCategory() {
+ public int getMetricsCategory() {
return MetricsEvent.CHOOSE_LOCK_GENERIC;
}
super.onCreate(savedInstanceState);
String chooseLockAction = getActivity().getIntent().getAction();
- mFingerprintManager =
- (FingerprintManager) getActivity().getSystemService(Context.FINGERPRINT_SERVICE);
+ mFingerprintManager = Utils.getFingerprintManagerOrNull(getActivity());
mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
mKeyStore = KeyStore.getInstance();
mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this.getActivity());
}
if (ACTION_SET_NEW_PASSWORD.equals(chooseLockAction)
- && Utils.isManagedProfile(UserManager.get(getActivity()), mUserId)
+ && UserManager.get(getActivity()).isManagedProfile(mUserId)
&& mLockPatternUtils.isSeparateProfileChallengeEnabled(mUserId)) {
getActivity().setTitle(R.string.lock_settings_picker_title_profile);
}
} else if (!mWaitingForConfirmation) {
ChooseLockSettingsHelper helper =
new ChooseLockSettingsHelper(this.getActivity(), this);
- boolean managedProfileWithUnifiedLock = Utils
- .isManagedProfile(UserManager.get(getActivity()), mUserId)
+ boolean managedProfileWithUnifiedLock =
+ UserManager.get(getActivity()).isManagedProfile(mUserId)
&& !mLockPatternUtils.isSeparateProfileChallengeEnabled(mUserId);
if (managedProfileWithUnifiedLock
|| !helper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST,
disabledByAdmin = adminEnforcedQuality
> DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
} else if (KEY_UNLOCK_SET_NONE.equals(key)) {
- if (mUserId != UserHandle.myUserId()) {
- // Swipe doesn't make sense for profiles.
+ if (getResources().getBoolean(R.bool.config_hide_swipe_security_option)) {
+ enabled = false;
visible = false;
+ } else {
+ if (mUserId != UserHandle.myUserId()) {
+ // Swipe doesn't make sense for profiles.
+ visible = false;
+ }
+ enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
}
- enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
disabledByAdmin = adminEnforcedQuality
> DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
} else if (KEY_UNLOCK_SET_PATTERN.equals(key)) {
}
private void removeManagedProfileFingerprintsAndFinishIfNecessary(final int parentUserId) {
- mFingerprintManager.setActiveUser(UserHandle.myUserId());
+ if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()) {
+ mFingerprintManager.setActiveUser(UserHandle.myUserId());
+ }
final UserManager um = UserManager.get(getActivity());
boolean hasChildProfile = false;
if (!um.getUserInfo(parentUserId).isManagedProfile()) {
}
private int getResIdForFactoryResetProtectionWarningTitle() {
- boolean isProfile = Utils.isManagedProfile(UserManager.get(getActivity()), mUserId);
+ boolean isProfile = UserManager.get(getActivity()).isManagedProfile(mUserId);
return isProfile ? R.string.unlock_disable_frp_warning_title_profile
: R.string.unlock_disable_frp_warning_title;
}
private int getResIdForFactoryResetProtectionWarningMessage() {
- boolean hasFingerprints = mFingerprintManager.hasEnrolledFingerprints(mUserId);
- boolean isProfile = Utils.isManagedProfile(UserManager.get(getActivity()), mUserId);
+ final boolean hasFingerprints;
+ if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()) {
+ hasFingerprints = mFingerprintManager.hasEnrolledFingerprints(mUserId);
+ } else {
+ hasFingerprints = false;
+ }
+ boolean isProfile = UserManager.get(getActivity()).isManagedProfile(mUserId);
switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId)) {
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
if (hasFingerprints && isProfile) {
dialog.show(getChildFragmentManager(), TAG_FRP_WARNING_DIALOG);
}
- public static class FactoryResetProtectionWarningDialog extends DialogFragment {
+ public static class FactoryResetProtectionWarningDialog extends InstrumentedDialogFragment {
private static final String ARG_TITLE_RES = "titleRes";
private static final String ARG_MESSAGE_RES = "messageRes";
)
.create();
}
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsEvent.DIALOG_FRP;
+ }
}
}
}