Loading src/com/android/settings/biometrics/BiometricNavigationUtils.java 0 → 100644 +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; } } src/com/android/settings/biometrics/BiometricStatusPreferenceController.java +8 −45 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 { Loading @@ -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); Loading @@ -79,6 +60,7 @@ public abstract class BiometricStatusPreferenceController extends BasePreference .getSecurityFeatureProvider() .getLockPatternUtils(context); mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId); mBiometricNavigationUtils = new BiometricNavigationUtils(); } @Override Loading @@ -103,8 +85,7 @@ public abstract class BiometricStatusPreferenceController extends BasePreference } else { preference.setVisible(true); } preference.setSummary(hasEnrolledBiometrics() ? getSummaryTextEnrolled() : getSummaryTextNoneEnrolled()); preference.setSummary(getSummaryText()); } @Override Loading @@ -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() { Loading src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java +1 −1 Original line number Diff line number Diff line Loading @@ -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( Loading src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java +1 −1 Original line number Diff line number Diff line Loading @@ -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( Loading src/com/android/settings/biometrics/combination/CombinedBiometricProfileStatusPreferenceController.java +1 −8 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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
src/com/android/settings/biometrics/BiometricNavigationUtils.java 0 → 100644 +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; } }
src/com/android/settings/biometrics/BiometricStatusPreferenceController.java +8 −45 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 { Loading @@ -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); Loading @@ -79,6 +60,7 @@ public abstract class BiometricStatusPreferenceController extends BasePreference .getSecurityFeatureProvider() .getLockPatternUtils(context); mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId); mBiometricNavigationUtils = new BiometricNavigationUtils(); } @Override Loading @@ -103,8 +85,7 @@ public abstract class BiometricStatusPreferenceController extends BasePreference } else { preference.setVisible(true); } preference.setSummary(hasEnrolledBiometrics() ? getSummaryTextEnrolled() : getSummaryTextNoneEnrolled()); preference.setSummary(getSummaryText()); } @Override Loading @@ -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() { Loading
src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java +1 −1 Original line number Diff line number Diff line Loading @@ -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( Loading
src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java +1 −1 Original line number Diff line number Diff line Loading @@ -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( Loading
src/com/android/settings/biometrics/combination/CombinedBiometricProfileStatusPreferenceController.java +1 −8 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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(); } }