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 {
|
implements LifecycleObserver {
|
||||||
public static final String ADD_SERVICE_DEVICE_CONFIG = "credential_manager_service_search_uri";
|
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
|
* 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
|
* 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";
|
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 PackageManager mPm;
|
||||||
private final List<CredentialProviderInfo> mServices;
|
private final List<CredentialProviderInfo> mServices;
|
||||||
private final Set<String> mEnabledPackageNames;
|
private final Set<String> mEnabledPackageNames;
|
||||||
@@ -494,7 +494,12 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
|
|||||||
// empty string.
|
// empty string.
|
||||||
String selectedAutofillProvider =
|
String selectedAutofillProvider =
|
||||||
DefaultCombinedPicker.getSelectedAutofillProvider(mContext, getUser());
|
DefaultCombinedPicker.getSelectedAutofillProvider(mContext, getUser());
|
||||||
if (TextUtils.equals(
|
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, AUTOFILL_CREDMAN_ONLY_PROVIDER_PLACEHOLDER)) {
|
||||||
selectedAutofillProvider = "";
|
selectedAutofillProvider = "";
|
||||||
}
|
}
|
||||||
@@ -652,6 +657,17 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
|
|||||||
return (enabledAdditionalProviderCount + 1) >= MAX_SELECTABLE_PROVIDERS;
|
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(
|
private CombiPreference addProviderPreference(
|
||||||
@NonNull Context prefContext,
|
@NonNull Context prefContext,
|
||||||
@NonNull CharSequence title,
|
@NonNull CharSequence title,
|
||||||
|
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package com.android.settings.applications.credentials;
|
package com.android.settings.applications.credentials;
|
||||||
|
|
||||||
|
import static com.android.settings.applications.credentials.CredentialManagerPreferenceController.getCredentialAutofillService;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -463,11 +465,15 @@ public class DefaultCombinedPicker extends DefaultAppPickerFragment {
|
|||||||
private void setProviders(String autofillProvider, List<String> primaryCredManProviders) {
|
private void setProviders(String autofillProvider, List<String> primaryCredManProviders) {
|
||||||
if (TextUtils.isEmpty(autofillProvider)) {
|
if (TextUtils.isEmpty(autofillProvider)) {
|
||||||
if (primaryCredManProviders.size() > 0) {
|
if (primaryCredManProviders.size() > 0) {
|
||||||
|
if (android.service.autofill.Flags.autofillCredmanDevIntegration()) {
|
||||||
|
autofillProvider = getCredentialAutofillService(getContext(), TAG);
|
||||||
|
} else {
|
||||||
autofillProvider =
|
autofillProvider =
|
||||||
CredentialManagerPreferenceController
|
CredentialManagerPreferenceController
|
||||||
.AUTOFILL_CREDMAN_ONLY_PROVIDER_PLACEHOLDER;
|
.AUTOFILL_CREDMAN_ONLY_PROVIDER_PLACEHOLDER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Settings.Secure.putStringForUser(
|
Settings.Secure.putStringForUser(
|
||||||
getContext().getContentResolver(), AUTOFILL_SETTING, autofillProvider, getUser());
|
getContext().getContentResolver(), AUTOFILL_SETTING, autofillProvider, getUser());
|
||||||
|
Reference in New Issue
Block a user