Add subtitle to settings (settings)

Allows a credential provider to show a
subtitle/summary underneath the title in
the list of providers.

Test: ondevice & atest
Bug: 253157366
Change-Id: I481da16985027a49ee464623b6db166d941cab55
(cherry picked from commit on googleplex-android-review.googlesource.com host: 6474e01372)
Merged-In: I481da16985027a49ee464623b6db166d941cab55
This commit is contained in:
Becca Hughes
2023-02-23 19:52:53 +00:00
parent 08893ed0b3
commit fb4488ea83
2 changed files with 35 additions and 9 deletions

View File

@@ -207,7 +207,7 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
}
// Build the pref and add it to the output & group.
SwitchPreference pref = addProviderPreference(context, title, icon, packageName);
SwitchPreference pref = addProviderPreference(context, title, icon, packageName, firstInfo.getSettingsSubtitle());
output.put(packageName, pref);
group.addPreference(pref);
}
@@ -223,7 +223,8 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
context,
label == null ? "" : label,
service.getServiceIcon(mContext),
service.getServiceInfo().packageName);
service.getServiceInfo().packageName,
service.getSettingsSubtitle());
}
/**
@@ -281,7 +282,8 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
@NonNull Context prefContext,
@NonNull CharSequence title,
@Nullable Drawable icon,
@NonNull String packageName) {
@NonNull String packageName,
@Nullable CharSequence subtitle) {
final SwitchPreference pref = new SwitchPreference(prefContext);
pref.setTitle(title);
pref.setChecked(mEnabledPackageNames.contains(packageName));
@@ -290,6 +292,10 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
pref.setIcon(Utils.getSafeIcon(icon));
}
if (subtitle != null) {
pref.setSummary(subtitle);
}
pref.setOnPreferenceClickListener(
p -> {
boolean isChecked = pref.isChecked();