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:
@@ -321,7 +321,7 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
|
||||
|
||||
mEnabledPackageNames.clear();
|
||||
for (CredentialProviderInfo cpi : availableServices) {
|
||||
if (cpi.isEnabled()) {
|
||||
if (cpi.isEnabled() && !cpi.isPrimary()) {
|
||||
mEnabledPackageNames.add(cpi.getServiceInfo().packageName);
|
||||
}
|
||||
}
|
||||
@@ -560,16 +560,25 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
|
||||
return;
|
||||
}
|
||||
|
||||
List<String> enabledServices = getEnabledSettings();
|
||||
// Get the existing primary providers since we don't touch them in
|
||||
// this part of the UI we should just copy them over.
|
||||
Set<String> primaryServices = new HashSet<>();
|
||||
for (CredentialProviderInfo service : mServices) {
|
||||
if (service.isPrimary()) {
|
||||
primaryServices.add(service.getServiceInfo().getComponentName().flattenToString());
|
||||
}
|
||||
}
|
||||
|
||||
mCredentialManager.setEnabledProviders(
|
||||
new ArrayList<String>(), // TODO(240466271): pass down primary providers
|
||||
enabledServices,
|
||||
new ArrayList<>(primaryServices),
|
||||
getEnabledSettings(),
|
||||
getUser(),
|
||||
mExecutor,
|
||||
new OutcomeReceiver<Void, SetEnabledProvidersException>() {
|
||||
@Override
|
||||
public void onResult(Void result) {
|
||||
Log.i(TAG, "setEnabledProviders success");
|
||||
updateFromExternal();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user