Merge "Add subtitle to settings (settings)"

This commit is contained in:
TreeHugger Robot
2023-03-08 07:12:45 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 4 deletions

View File

@@ -176,7 +176,8 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
context,
label == null ? "" : label,
service.getServiceIcon(mContext),
service.getServiceInfo().packageName);
service.getServiceInfo().packageName,
service.getSettingsSubtitle());
}
/**
@@ -234,7 +235,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));
@@ -244,6 +246,10 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
pref.setIcon(Utils.getSafeIcon(icon));
}
if (subtitle != null) {
pref.setSummary(subtitle);
}
pref.setOnPreferenceClickListener(
p -> {
boolean isChecked = pref.isChecked();

View File

@@ -115,10 +115,10 @@ public class CredentialManagerPreferenceControllerTest {
public void buildSwitchPreference() {
CredentialProviderInfo providerInfo1 =
createCredentialProviderInfo(
"com.android.provider1", "ClassA", "Service Title", false);
"com.android.provider1", "ClassA", "Service Title", false, null);
CredentialProviderInfo providerInfo2 =
createCredentialProviderInfo(
"com.android.provider2", "ClassA", "Service Title", false);
"com.android.provider2", "ClassA", "Service Title", false, "Summary Text");
CredentialManagerPreferenceController controller =
createControllerWithServices(Lists.newArrayList(providerInfo1, providerInfo2));
assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE);
@@ -139,11 +139,13 @@ public class CredentialManagerPreferenceControllerTest {
SwitchPreference pref = controller.createPreference(mContext, providerInfo1);
assertThat(pref.getTitle().toString()).isEqualTo("Service Title");
assertThat(pref.isChecked()).isTrue();
assertThat(pref.getSummary()).isNull();
// Create the pref (not checked).
SwitchPreference pref2 = controller.createPreference(mContext, providerInfo2);
assertThat(pref2.getTitle().toString()).isEqualTo("Service Title");
assertThat(pref2.isChecked()).isFalse();
assertThat(pref2.getSummary().toString()).isEqualTo("Summary Text");
}
@Test
@@ -264,6 +266,15 @@ public class CredentialManagerPreferenceControllerTest {
private CredentialProviderInfo createCredentialProviderInfo(
String packageName, String className, CharSequence label, boolean isEnabled) {
return createCredentialProviderInfo(packageName, className, label, isEnabled, null);
}
private CredentialProviderInfo createCredentialProviderInfo(
String packageName,
String className,
CharSequence label,
boolean isEnabled,
CharSequence subtitle) {
ServiceInfo si = new ServiceInfo();
si.packageName = packageName;
si.name = className;
@@ -276,6 +287,7 @@ public class CredentialManagerPreferenceControllerTest {
return new CredentialProviderInfo.Builder(si)
.setOverrideLabel(label)
.setEnabled(isEnabled)
.setSettingsSubtitle(subtitle)
.build();
}
}