Replace credential provider placeholder
Replace credential provider placeholder with the actual credential autofill provider. Bug: 330177328 Test: cts Change-Id: Ib6c9688b3f728706b1f5ac0faa3f042bb6dc447c
This commit is contained in:
@@ -87,6 +87,11 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
|
||||
implements LifecycleObserver {
|
||||
public static final String ADD_SERVICE_DEVICE_CONFIG = "credential_manager_service_search_uri";
|
||||
|
||||
private static final String TAG = "CredentialManagerPreferenceController";
|
||||
private static final String ALTERNATE_INTENT = "android.settings.SYNC_SETTINGS";
|
||||
private static final String PRIMARY_INTENT = "android.settings.CREDENTIAL_PROVIDER";
|
||||
private static final int MAX_SELECTABLE_PROVIDERS = 5;
|
||||
|
||||
/**
|
||||
* In the settings logic we should hide the list of additional credman providers if there is no
|
||||
* provider selected at the top. The current logic relies on checking whether the autofill
|
||||
@@ -95,11 +100,6 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
|
||||
*/
|
||||
public static final String AUTOFILL_CREDMAN_ONLY_PROVIDER_PLACEHOLDER = "credential-provider";
|
||||
|
||||
private static final String TAG = "CredentialManagerPreferenceController";
|
||||
private static final String ALTERNATE_INTENT = "android.settings.SYNC_SETTINGS";
|
||||
private static final String PRIMARY_INTENT = "android.settings.CREDENTIAL_PROVIDER";
|
||||
private static final int MAX_SELECTABLE_PROVIDERS = 5;
|
||||
|
||||
private final PackageManager mPm;
|
||||
private final List<CredentialProviderInfo> mServices;
|
||||
private final Set<String> mEnabledPackageNames;
|
||||
@@ -494,8 +494,13 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
|
||||
// empty string.
|
||||
String selectedAutofillProvider =
|
||||
DefaultCombinedPicker.getSelectedAutofillProvider(mContext, getUser());
|
||||
if (TextUtils.equals(
|
||||
selectedAutofillProvider, AUTOFILL_CREDMAN_ONLY_PROVIDER_PLACEHOLDER)) {
|
||||
String credentialAutofillService = "";
|
||||
if (android.service.autofill.Flags.autofillCredmanDevIntegration()) {
|
||||
credentialAutofillService = getCredentialAutofillService(mContext, TAG);
|
||||
}
|
||||
if (TextUtils.equals(selectedAutofillProvider, credentialAutofillService)
|
||||
|| TextUtils.equals(
|
||||
selectedAutofillProvider, AUTOFILL_CREDMAN_ONLY_PROVIDER_PLACEHOLDER)) {
|
||||
selectedAutofillProvider = "";
|
||||
}
|
||||
|
||||
@@ -652,6 +657,17 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
|
||||
return (enabledAdditionalProviderCount + 1) >= MAX_SELECTABLE_PROVIDERS;
|
||||
}
|
||||
|
||||
/** Gets the credential autofill service component name. */
|
||||
public static String getCredentialAutofillService(Context context, String tag) {
|
||||
try {
|
||||
return context.getResources().getString(
|
||||
com.android.internal.R.string.config_defaultCredentialManagerAutofillService);
|
||||
} catch (Resources.NotFoundException e) {
|
||||
Log.e(tag, "Failed to find credential autofill service.", e);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private CombiPreference addProviderPreference(
|
||||
@NonNull Context prefContext,
|
||||
@NonNull CharSequence title,
|
||||
|
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.settings.applications.credentials;
|
||||
|
||||
import static com.android.settings.applications.credentials.CredentialManagerPreferenceController.getCredentialAutofillService;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
@@ -463,9 +465,13 @@ public class DefaultCombinedPicker extends DefaultAppPickerFragment {
|
||||
private void setProviders(String autofillProvider, List<String> primaryCredManProviders) {
|
||||
if (TextUtils.isEmpty(autofillProvider)) {
|
||||
if (primaryCredManProviders.size() > 0) {
|
||||
autofillProvider =
|
||||
CredentialManagerPreferenceController
|
||||
.AUTOFILL_CREDMAN_ONLY_PROVIDER_PLACEHOLDER;
|
||||
if (android.service.autofill.Flags.autofillCredmanDevIntegration()) {
|
||||
autofillProvider = getCredentialAutofillService(getContext(), TAG);
|
||||
} else {
|
||||
autofillProvider =
|
||||
CredentialManagerPreferenceController
|
||||
.AUTOFILL_CREDMAN_ONLY_PROVIDER_PLACEHOLDER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user