Use isPrimary bit to determine top provider

If the cred man provider has the isPrimary
bit set then we should use it as top
provider.

Test: ondevice
Bug: 280454916
Change-Id: I8c5651909d3926f09549c64af68185f1ef633198
This commit is contained in:
Becca Hughes
2023-05-03 19:28:40 +00:00
parent 69fcc2ba5c
commit 3096997718
4 changed files with 52 additions and 24 deletions

View File

@@ -43,18 +43,18 @@ public final class CombinedProviderInfo {
private final List<CredentialProviderInfo> mCredentialProviderInfos;
private final @Nullable AutofillServiceInfo mAutofillServiceInfo;
private final boolean mIsDefaultAutofillProvider;
private final boolean mIsDefaultCredmanProvider;
private final boolean mIsPrimaryCredmanProvider;
/** Constructs an information instance from both autofill and credential provider. */
public CombinedProviderInfo(
@Nullable List<CredentialProviderInfo> cpis,
@Nullable AutofillServiceInfo asi,
boolean isDefaultAutofillProvider,
boolean isDefaultCredmanProvider) {
boolean IsPrimaryCredmanProvider) {
mCredentialProviderInfos = new ArrayList<>(cpis);
mAutofillServiceInfo = asi;
mIsDefaultAutofillProvider = isDefaultAutofillProvider;
mIsDefaultCredmanProvider = isDefaultCredmanProvider;
mIsPrimaryCredmanProvider = IsPrimaryCredmanProvider;
}
/** Returns the credential provider info. */
@@ -149,8 +149,8 @@ public final class CombinedProviderInfo {
}
/** Returns whether the provider is the default credman provider. */
public boolean isDefaultCredmanProvider() {
return mIsDefaultCredmanProvider;
public boolean isPrimaryCredmanProvider() {
return mIsPrimaryCredmanProvider;
}
/** Returns the settings subtitle. */
@@ -192,7 +192,13 @@ public final class CombinedProviderInfo {
}
}
// TODO(280454916): Add logic here.
// If there is a primary cred man provider then return that.
for (CombinedProviderInfo cpi : providers) {
if (cpi.isPrimaryCredmanProvider()) {
return cpi;
}
}
return null;
}
@@ -250,14 +256,14 @@ public final class CombinedProviderInfo {
}
// Check if we have any enabled cred man services.
boolean isDefaultCredmanProvider = false;
boolean isPrimaryCredmanProvider = false;
if (!cpi.isEmpty()) {
isDefaultCredmanProvider = cpi.get(0).isEnabled();
isPrimaryCredmanProvider = cpi.get(0).isPrimary();
}
cmpi.add(
new CombinedProviderInfo(
cpi, selectedAsi, isDefaultAutofillProvider, isDefaultCredmanProvider));
cpi, selectedAsi, isDefaultAutofillProvider, isPrimaryCredmanProvider));
}
return cmpi;