Merge "Add context to FingerprintExtPreferencesProvider" into main

This commit is contained in:
Treehugger Robot
2025-03-21 02:23:39 -07:00
committed by Android (Google) Code Review
4 changed files with 62 additions and 8 deletions

View File

@@ -73,7 +73,7 @@ public interface FingerprintFeatureProvider {
default FingerprintExtPreferencesProvider getExtPreferenceProvider(
@NonNull Context context
) {
return new FingerprintExtPreferencesProvider();
return new FingerprintExtPreferencesProvider(context);
}
/**

View File

@@ -468,12 +468,10 @@ public class FingerprintSettings extends SubSettings {
* Add new preferences from FingerprintExtPreferencesProvider
*/
public void setupExtFingerprintPreferences() {
final FingerprintExtPreferencesProvider preferencesProvider =
FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider()
.getExtPreferenceProvider(requireContext());
FingerprintExtPreferencesProvider preferencesProvider = getExtPreferenceProvider();
for (int index = 0; index < preferencesProvider.getSize(); ++index) {
final RestrictedPreference preference = preferencesProvider.newPreference(
index, this::inflateFromResource, requireContext());
index, this::inflateFromResource);
if (preference == null || findPreference(preference.getKey()) != null) {
continue;
}
@@ -485,6 +483,12 @@ public class FingerprintSettings extends SubSettings {
}
}
@NonNull
private FingerprintExtPreferencesProvider getExtPreferenceProvider() {
return FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider()
.getExtPreferenceProvider(requireContext());
}
/**
*
*/
@@ -748,7 +752,8 @@ public class FingerprintSettings extends SubSettings {
// This needs to be after setting ids, otherwise
// |mRequireScreenOnToAuthPreferenceController.isChecked| is always checking the primary
// user instead of the user with |mUserId|.
if (isSfps() || (screenOffUnlockUdfps() && isScreenOffUnlcokSupported())) {
if (isSfps() || (screenOffUnlockUdfps() && isScreenOffUnlcokSupported())
|| getExtPreferenceProvider().getSize() > 0) {
scrollToPreference(fpPrefKey);
addFingerprintUnlockCategory();
}
@@ -1266,6 +1271,16 @@ public class FingerprintSettings extends SubSettings {
}
}
if (mFingerprintUnlockCategoryPreferenceController == null
&& getExtPreferenceProvider().getSize() > 0 && controllers != null) {
for (AbstractPreferenceController controller : controllers) {
if (KEY_FINGERPRINT_UNLOCK_CATEGORY.equals(controller.getPreferenceKey())) {
mFingerprintUnlockCategoryPreferenceController =
(FingerprintUnlockCategoryController) controller;
}
}
}
return controllers;
}

View File

@@ -27,14 +27,13 @@ import com.android.settingslib.RestrictedPreference
*
* @see com.android.settings.biometrics.fingerprint.FingerprintSettings
*/
open class FingerprintExtPreferencesProvider {
open class FingerprintExtPreferencesProvider(protected val context: Context) {
open val size: Int = 0
open fun newPreference(
index: Int,
inflater: PreferenceInflater,
context: Context
): RestrictedPreference? = null
interface PreferenceInflater {