Merge "Hide "additional services" if there is only a single primary services" into main
This commit is contained in:
@@ -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);
|
||||
|
@@ -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();
|
||||
|
Reference in New Issue
Block a user