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

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

Merge "Hide "additional services" if there is only a single primary services" into main

parents 12f88ceb c627cdbd
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -166,7 +166,7 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
            return CONDITIONALLY_UNAVAILABLE;
        }

        if (mServices.isEmpty()) {
        if (!hasNonPrimaryServices()) {
            return CONDITIONALLY_UNAVAILABLE;
        }

@@ -428,6 +428,17 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
        }
    }

    @VisibleForTesting
    public boolean hasNonPrimaryServices() {
        for (CredentialProviderInfo availableService : mServices) {
            if (!availableService.isPrimary()) {
                return true;
            }
        }

        return false;
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
+24 −0
Original line number Diff line number Diff line
@@ -528,6 +528,23 @@ public class CredentialManagerPreferenceControllerTest {
        assertThat(thumbnail.getIntrinsicWidth()).isEqualTo(getIconSize());
    }

    @Test
    public void hasNonPrimaryServices_allServicesArePrimary() {
        CredentialManagerPreferenceController controller =
                createControllerWithServices(
                    Lists.newArrayList(createCredentialProviderPrimary()));
        assertThat(controller.hasNonPrimaryServices()).isFalse();
    }

    @Test
    public void hasNonPrimaryServices_mixtureOfServices() {
        CredentialManagerPreferenceController controller =
                createControllerWithServices(
                    Lists.newArrayList(createCredentialProviderInfo(),
                        createCredentialProviderPrimary()));
        assertThat(controller.hasNonPrimaryServices()).isTrue();
    }

    @Test
    public void testProviderLimitReached() {
        // The limit is 5 with one slot reserved for primary.
@@ -580,6 +597,13 @@ public class CredentialManagerPreferenceControllerTest {
                .build();
    }

    private CredentialProviderInfo createCredentialProviderPrimary() {
        return createCredentialProviderInfoBuilder(
            "com.android.primary", "CredManProvider", "Service Label", "App Name")
                .setPrimary(true)
                .build();
    }

    private CredentialProviderInfo createCredentialProviderInfoWithSubtitle(
            String packageName, String className, CharSequence label, CharSequence subtitle) {
        ServiceInfo si = new ServiceInfo();