Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b55eb8b authored by Joshua Mccloskey's avatar Joshua Mccloskey Committed by Android (Google) Code Review
Browse files

Merge "Update face & fingerprint pref logic" into main

parents 965da3df 3e253568
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -15,12 +15,17 @@
 */
package com.android.settings.biometrics.combination;

import android.app.admin.DevicePolicyManager;
import android.content.Context;

import androidx.lifecycle.Lifecycle;
import androidx.preference.Preference;

import com.android.settings.Utils;
import com.android.settings.biometrics.face.FaceStatusPreferenceController;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedPreference;

/**
 * Preference controller for face settings within the biometrics settings page, that controls the
@@ -37,6 +42,20 @@ public class BiometricFaceStatusPreferenceController extends FaceStatusPreferenc
        super(context, key, lifecycle);
    }

    @Override
    public void updateState(Preference preference) {
        super.updateState(preference);
        final boolean isFaceEnrolled = mFaceStatusUtils.hasEnrolled();
        final RestrictedLockUtils.EnforcedAdmin admin =
                RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
                        mContext, DevicePolicyManager.KEYGUARD_DISABLE_FACE, getUserId());
        if (admin != null && !isFaceEnrolled) {
            ((RestrictedPreference) preference).setDisabledByAdmin(admin);
        } else {
            preference.setEnabled(true);
        }
    }

    @Override
    protected boolean isDeviceSupported() {
        return Utils.isMultipleBiometricsSupported(mContext) && isHardwareSupported();
+19 −0
Original line number Diff line number Diff line
@@ -15,12 +15,17 @@
 */
package com.android.settings.biometrics.combination;

import android.app.admin.DevicePolicyManager;
import android.content.Context;

import androidx.lifecycle.Lifecycle;
import androidx.preference.Preference;

import com.android.settings.Utils;
import com.android.settings.biometrics.fingerprint.FingerprintStatusPreferenceController;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedPreference;

/**
 * Preference controller for fingerprint settings within the biometrics settings page of work
@@ -38,6 +43,20 @@ public class BiometricFingerprintStatusPreferenceController extends
        super(context, key, lifecycle);
    }

    @Override
    public void updateState(Preference preference) {
        super.updateState(preference);
        final boolean isFingerprintEnrolled = mFingerprintStatusUtils.hasEnrolled();
        final RestrictedLockUtils.EnforcedAdmin admin =
                RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
                        mContext, DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT, getUserId());
        if (admin != null && !isFingerprintEnrolled) {
            ((RestrictedPreference) preference).setDisabledByAdmin(admin);
        } else {
            preference.setEnabled(true);
        }
    }

    @Override
    protected boolean isDeviceSupported() {
        return Utils.isMultipleBiometricsSupported(mContext) && isHardwareSupported();
+14 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import android.util.Log;
import android.widget.Button;

import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;

import com.android.settings.R;
import com.android.settings.SettingsActivity;
@@ -46,6 +47,7 @@ import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.LayoutPreference;
@@ -68,6 +70,8 @@ public class FaceSettings extends DashboardFragment {
            "security_settings_face_delete_faces_container";
    private static final String PREF_KEY_ENROLL_FACE_UNLOCK =
            "security_settings_face_enroll_faces_container";
    public static final String SECURITY_SETTINGS_FACE_MANAGE_CATEGORY =
            "security_settings_face_manage_category";

    private UserManager mUserManager;
    private FaceManager mFaceManager;
@@ -175,6 +179,8 @@ public class FaceSettings extends DashboardFragment {
                : use(FaceSettingsLockscreenBypassPreferenceController.class);
        mLockscreenController.setUserId(mUserId);

        final PreferenceCategory managePref =
                findPreference(SECURITY_SETTINGS_FACE_MANAGE_CATEGORY);
        Preference keyguardPref = findPreference(FaceSettingsKeyguardPreferenceController.KEY);
        Preference appPref = findPreference(FaceSettingsAppPreferenceController.KEY);
        Preference attentionPref = findPreference(FaceSettingsAttentionPreferenceController.KEY);
@@ -184,6 +190,14 @@ public class FaceSettings extends DashboardFragment {
        mTogglePreferences = new ArrayList<>(
                Arrays.asList(keyguardPref, appPref, attentionPref, confirmPref, bypassPref));

        if (RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
                getContext(), DevicePolicyManager.KEYGUARD_DISABLE_FACE, mUserId) != null) {
            managePref.setTitle(getString(
                    com.android.settingslib.widget.restricted.R.string.disabled_by_admin));
        } else {
            managePref.setTitle(R.string.security_settings_face_settings_preferences_category);
        }

        mRemoveButton = findPreference(FaceSettingsRemoveButtonPreferenceController.KEY);
        mEnrollButton = findPreference(FaceSettingsEnrollButtonPreferenceController.KEY);

+6 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.hardware.face.FaceManager.GetFeatureCallback;
import android.hardware.face.FaceManager.SetFeatureCallback;
import android.provider.Settings;

import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference;

@@ -66,8 +67,12 @@ public class FaceSettingsAttentionPreferenceController extends FaceSettingsPrefe
                    requireAttentionEnabled = featureState[i];
                }
            }
            mPreference.setEnabled(success);
            mPreference.setChecked(requireAttentionEnabled);
            if (getRestrictingAdmin() != null) {
                mPreference.setEnabled(false);
            } else {
                mPreference.setEnabled(success);
            }
        }
    };

+2 −0
Original line number Diff line number Diff line
@@ -72,6 +72,8 @@ public class FaceSettingsConfirmPreferenceController extends FaceSettingsPrefere
            preference.setEnabled(false);
        } else if (!mFaceManager.hasEnrolledTemplates(getUserId())) {
            preference.setEnabled(false);
        } else if (getRestrictingAdmin() != null) {
            preference.setEnabled(false);
        } else {
            preference.setEnabled(true);
        }
Loading