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

Commit 28d902c5 authored by Presubmit Automerger Backend's avatar Presubmit Automerger Backend
Browse files

[automerge] Move all the shared data from biometric controllers to separate...

[automerge] Move all the shared data from biometric controllers to separate utility classes 2p: 268d1d6d

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16931922

Bug: 215517420
Change-Id: I93674481947eca5ebabea41d183be9c24c2df029
parents ad3e2672 268d1d6d
Loading
Loading
Loading
Loading
+65 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.biometrics;

import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;

import com.android.settings.Utils;
import com.android.settings.core.SettingsBaseActivity;
import com.android.settingslib.transition.SettingsTransitionHelper;

/**
 * Utilities for navigation shared between Security Settings and Safety Center.
 */
public class BiometricNavigationUtils {

    private final int mUserId = UserHandle.myUserId();

    /**
     * Tries to launch the Settings screen if Quiet Mode is not enabled
     * for managed profile, otherwise shows a dialog to disable the Quiet Mode.
     *
     * @param className The class name of Settings screen to launch.
     * @param extras Extras to put into the launching {@link Intent}.
     * @return true if the Settings screen is launching.
     */
    public boolean launchBiometricSettings(Context context, String className, Bundle extras) {
        final UserManager userManager = UserManager.get(context);
        if (Utils.startQuietModeDialogIfNecessary(context, userManager, mUserId)) {
            return false;
        }

        final Intent intent = new Intent();
        intent.setClassName(SETTINGS_PACKAGE_NAME, className);
        if (!extras.isEmpty()) {
            intent.putExtras(extras);
        }
        intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, true);
        intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
        intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
                SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE);
        context.startActivity(intent);
        return true;
    }
}
+8 −45
Original line number Diff line number Diff line
@@ -16,11 +16,7 @@

package com.android.settings.biometrics;

import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY;

import android.content.Context;
import android.content.Intent;
import android.os.UserHandle;
import android.os.UserManager;
import android.text.TextUtils;
@@ -30,9 +26,7 @@ import androidx.preference.Preference;
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SettingsBaseActivity;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.transition.SettingsTransitionHelper;

public abstract class BiometricStatusPreferenceController extends BasePreferenceController {

@@ -42,36 +36,23 @@ public abstract class BiometricStatusPreferenceController extends BasePreference
    private final int mUserId = UserHandle.myUserId();
    protected final int mProfileChallengeUserId;

    private final BiometricNavigationUtils mBiometricNavigationUtils;

    /**
     * @return true if the manager is not null and the hardware is detected.
     */
    protected abstract boolean isDeviceSupported();

    /**
     * @return true if the user has enrolled biometrics of the subclassed type.
     */
    protected abstract boolean hasEnrolledBiometrics();

    /**
     * @return the summary text if biometrics are enrolled.
     */
    protected abstract String getSummaryTextEnrolled();

    /**
     * @return the summary text if no biometrics are enrolled.
     * @return the summary text.
     */
    protected abstract String getSummaryTextNoneEnrolled();
    protected abstract String getSummaryText();

    /**
     * @return the class name for the settings page.
     */
    protected abstract String getSettingsClassName();

    /**
     * @return the class name for entry to enrollment.
     */
    protected abstract String getEnrollClassName();

    public BiometricStatusPreferenceController(Context context, String key) {
        super(context, key);
        mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
@@ -79,6 +60,7 @@ public abstract class BiometricStatusPreferenceController extends BasePreference
                .getSecurityFeatureProvider()
                .getLockPatternUtils(context);
        mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId);
        mBiometricNavigationUtils = new BiometricNavigationUtils();
    }

    @Override
@@ -103,8 +85,7 @@ public abstract class BiometricStatusPreferenceController extends BasePreference
        } else {
            preference.setVisible(true);
        }
        preference.setSummary(hasEnrolledBiometrics() ? getSummaryTextEnrolled()
                : getSummaryTextNoneEnrolled());
        preference.setSummary(getSummaryText());
    }

    @Override
@@ -113,26 +94,8 @@ public abstract class BiometricStatusPreferenceController extends BasePreference
            return super.handlePreferenceTreeClick(preference);
        }

        final Context context = preference.getContext();
        final UserManager userManager = UserManager.get(context);
        final int userId = getUserId();
        if (Utils.startQuietModeDialogIfNecessary(context, userManager, userId)) {
            return false;
        }

        final Intent intent = new Intent();
        final String clazz = hasEnrolledBiometrics() ? getSettingsClassName()
                : getEnrollClassName();
        intent.setClassName(SETTINGS_PACKAGE_NAME, clazz);
        if (!preference.getExtras().isEmpty()) {
            intent.putExtras(preference.getExtras());
        }
        intent.putExtra(Intent.EXTRA_USER_ID, userId);
        intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, true);
        intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
                SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE);
        context.startActivity(intent);
        return true;
        return mBiometricNavigationUtils.launchBiometricSettings(
                preference.getContext(), getSettingsClassName(), preference.getExtras());
    }

    protected int getUserId() {
+1 −1
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ import com.android.settings.biometrics.face.FaceStatusPreferenceController;
public class BiometricFaceStatusPreferenceController extends FaceStatusPreferenceController {

    public BiometricFaceStatusPreferenceController(Context context, String key) {
        super(context, key);
        super(context, key, null /* lifecycle */);
    }

    public BiometricFaceStatusPreferenceController(
+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ public class BiometricFingerprintStatusPreferenceController extends
        FingerprintStatusPreferenceController {

    public BiometricFingerprintStatusPreferenceController(Context context, String key) {
        super(context, key);
        super(context, key, null /* lifecycle */);
    }

    public BiometricFingerprintStatusPreferenceController(
+1 −8
Original line number Diff line number Diff line
@@ -20,8 +20,6 @@ import android.os.UserHandle;

import androidx.lifecycle.Lifecycle;

import com.android.settings.Settings;

/**
 * Preference controller for biometrics settings page of work profile, controlling the ability to
 * unlock the phone with face and fingerprint.
@@ -62,11 +60,6 @@ public class CombinedBiometricProfileStatusPreferenceController extends

    @Override
    protected String getSettingsClassName() {
        return Settings.CombinedBiometricProfileSettingsActivity.class.getName();
    }

    @Override
    protected String getEnrollClassName() {
        return Settings.CombinedBiometricProfileSettingsActivity.class.getName();
        return mCombinedBiometricStatusUtils.getProfileSettingsClassName();
    }
}
Loading