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;
|
return CONDITIONALLY_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mServices.isEmpty()) {
|
if (!hasNonPrimaryServices()) {
|
||||||
return CONDITIONALLY_UNAVAILABLE;
|
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
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
|
@@ -528,6 +528,23 @@ public class CredentialManagerPreferenceControllerTest {
|
|||||||
assertThat(thumbnail.getIntrinsicWidth()).isEqualTo(getIconSize());
|
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
|
@Test
|
||||||
public void testProviderLimitReached() {
|
public void testProviderLimitReached() {
|
||||||
// The limit is 5 with one slot reserved for primary.
|
// The limit is 5 with one slot reserved for primary.
|
||||||
@@ -580,6 +597,13 @@ public class CredentialManagerPreferenceControllerTest {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private CredentialProviderInfo createCredentialProviderPrimary() {
|
||||||
|
return createCredentialProviderInfoBuilder(
|
||||||
|
"com.android.primary", "CredManProvider", "Service Label", "App Name")
|
||||||
|
.setPrimary(true)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
private CredentialProviderInfo createCredentialProviderInfoWithSubtitle(
|
private CredentialProviderInfo createCredentialProviderInfoWithSubtitle(
|
||||||
String packageName, String className, CharSequence label, CharSequence subtitle) {
|
String packageName, String className, CharSequence label, CharSequence subtitle) {
|
||||||
ServiceInfo si = new ServiceInfo();
|
ServiceInfo si = new ServiceInfo();
|
||||||
|
Reference in New Issue
Block a user