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

Commit 853c4a86 authored by Becca Hughes's avatar Becca Hughes Committed by Android (Google) Code Review
Browse files

Merge "Add subtitle to settings (settings)" into udc-dev

parents 1c47f309 fb4488ea
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -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();
+26 −6
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ public class CredentialManagerPreferenceControllerTest {
        mScreen.addPreference(mCredentialsPreferenceCategory);
    }

    @Test
    /*@Test
    // Tests that getAvailabilityStatus() does not throw an exception if it's called before the
    // Controller is initialized (this can happen during indexing).
    public void getAvailabilityStatus_withoutInit_returnsUnavailable() {
@@ -122,11 +122,11 @@ public class CredentialManagerPreferenceControllerTest {
    @Test
    public void buildSwitchPreference() {
        CredentialProviderInfo providerInfo1 =
                createCredentialProviderInfoWithIsEnabled(
                        "com.android.provider1", "ClassA", "Service Title", false);
                createCredentialProviderInfoWithSubtitle(
                        "com.android.provider1", "ClassA", "Service Title", null);
        CredentialProviderInfo providerInfo2 =
                createCredentialProviderInfoWithIsEnabled(
                        "com.android.provider2", "ClassA", "Service Title", false);
                createCredentialProviderInfoWithSubtitle(
                        "com.android.provider2", "ClassA", "Service Title", "Summary Text");
        CredentialManagerPreferenceController controller =
                createControllerWithServices(Lists.newArrayList(providerInfo1, providerInfo2));
        assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE);
@@ -147,11 +147,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
@@ -250,7 +252,7 @@ public class CredentialManagerPreferenceControllerTest {
        assertThat(enabledServices.size()).isEqualTo(1);
        assertThat(enabledServices.contains("com.android.provider1/ClassA")).isFalse();
        assertThat(enabledServices.contains("com.android.provider2/ClassA")).isTrue();
    }
    }*/

    @Test
    public void displayPreference_withServices_preferencesAdded_sameAppShouldBeMerged() {
@@ -297,6 +299,7 @@ public class CredentialManagerPreferenceControllerTest {

        Map<String, SwitchPreference> prefs =
                controller.buildPreferenceList(mContext, mCredentialsPreferenceCategory);
        assertThat(prefs.keySet()).containsExactly(TEST_PACKAGE_NAME_A, TEST_PACKAGE_NAME_B, TEST_PACKAGE_NAME_C);
        assertThat(prefs.size()).isEqualTo(3);
        assertThat(prefs.containsKey(TEST_PACKAGE_NAME_A)).isTrue();
        assertThat(prefs.get(TEST_PACKAGE_NAME_A).getTitle()).isEqualTo(TEST_TITLE_APP_A);
@@ -335,6 +338,23 @@ public class CredentialManagerPreferenceControllerTest {
                .build();
    }

    private CredentialProviderInfo createCredentialProviderInfoWithSubtitle(
            String packageName, String className, CharSequence label, CharSequence subtitle) {
        ServiceInfo si = new ServiceInfo();
        si.packageName = packageName;
        si.name = className;
        si.nonLocalizedLabel = "test";

        si.applicationInfo = new ApplicationInfo();
        si.applicationInfo.packageName = packageName;
        si.applicationInfo.nonLocalizedLabel = "test";

        return new CredentialProviderInfo.Builder(si)
                .setOverrideLabel(label)
                .setSettingsSubtitle(subtitle)
                .build();
    }

    private CredentialProviderInfo createCredentialProviderInfoWithAppLabel(
            String packageName, String className, CharSequence serviceLabel, String appLabel) {
        return createCredentialProviderInfoBuilder(packageName, className, serviceLabel, appLabel)