Merge "Properly handle the autofill provider names, making sure place holder name is properly filtered out." into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
629fd6c680
@@ -521,16 +521,7 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
|
|||||||
// Get the selected autofill provider. If it is the placeholder then replace it with an
|
// Get the selected autofill provider. If it is the placeholder then replace it with an
|
||||||
// empty string.
|
// empty string.
|
||||||
String selectedAutofillProvider =
|
String selectedAutofillProvider =
|
||||||
DefaultCombinedPicker.getSelectedAutofillProvider(mContext, getUser());
|
getSelectedAutofillProvider(mContext, getUser(), TAG);
|
||||||
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 = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the list of combined providers.
|
// Get the list of combined providers.
|
||||||
List<CombinedProviderInfo> providers =
|
List<CombinedProviderInfo> providers =
|
||||||
@@ -695,6 +686,31 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Gets the selected autofill provider name. This will filter out place holder names. **/
|
||||||
|
public static @Nullable String getSelectedAutofillProvider(
|
||||||
|
Context context, int userId, String tag) {
|
||||||
|
String providerName = Settings.Secure.getStringForUser(
|
||||||
|
context.getContentResolver(), Settings.Secure.AUTOFILL_SERVICE, userId);
|
||||||
|
|
||||||
|
if (TextUtils.isEmpty(providerName)) {
|
||||||
|
return providerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (providerName.equals(AUTOFILL_CREDMAN_ONLY_PROVIDER_PLACEHOLDER)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
String credentialAutofillService = "";
|
||||||
|
if (android.service.autofill.Flags.autofillCredmanDevIntegration()) {
|
||||||
|
credentialAutofillService = getCredentialAutofillService(context, tag);
|
||||||
|
}
|
||||||
|
if (providerName.equals(credentialAutofillService)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
return providerName;
|
||||||
|
}
|
||||||
|
|
||||||
private CombiPreference addProviderPreference(
|
private CombiPreference addProviderPreference(
|
||||||
@NonNull Context prefContext,
|
@NonNull Context prefContext,
|
||||||
@NonNull CharSequence title,
|
@NonNull CharSequence title,
|
||||||
|
@@ -275,15 +275,13 @@ public class DefaultCombinedPicker extends DefaultAppPickerFragment {
|
|||||||
CredentialManager.PROVIDER_FILTER_USER_PROVIDERS_INCLUDING_HIDDEN));
|
CredentialManager.PROVIDER_FILTER_USER_PROVIDERS_INCLUDING_HIDDEN));
|
||||||
}
|
}
|
||||||
|
|
||||||
final String selectedAutofillProvider = getSelectedAutofillProvider(context, userId);
|
final String selectedAutofillProvider =
|
||||||
|
CredentialManagerPreferenceController
|
||||||
|
.getSelectedAutofillProvider(context, userId, TAG);
|
||||||
return CombinedProviderInfo.buildMergedList(
|
return CombinedProviderInfo.buildMergedList(
|
||||||
autofillProviders, credManProviders, selectedAutofillProvider);
|
autofillProviders, credManProviders, selectedAutofillProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getSelectedAutofillProvider(Context context, int userId) {
|
|
||||||
return Settings.Secure.getStringForUser(
|
|
||||||
context.getContentResolver(), AUTOFILL_SETTING, userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected List<DefaultAppInfo> getCandidates() {
|
protected List<DefaultAppInfo> getCandidates() {
|
||||||
final Context context = getContext();
|
final Context context = getContext();
|
||||||
|
@@ -183,16 +183,15 @@ public class DefaultCombinedPreferenceController extends DefaultAppPreferenceCon
|
|||||||
final List<AutofillServiceInfo> autofillProviders =
|
final List<AutofillServiceInfo> autofillProviders =
|
||||||
AutofillServiceInfo.getAvailableServices(mContext, userId);
|
AutofillServiceInfo.getAvailableServices(mContext, userId);
|
||||||
final String selectedAutofillProvider =
|
final String selectedAutofillProvider =
|
||||||
Settings.Secure.getStringForUser(
|
CredentialManagerPreferenceController
|
||||||
mContext.getContentResolver(),
|
.getSelectedAutofillProvider(mContext, userId, TAG);
|
||||||
DefaultCombinedPicker.AUTOFILL_SETTING,
|
|
||||||
userId);
|
|
||||||
|
|
||||||
final List<CredentialProviderInfo> credManProviders = new ArrayList<>();
|
final List<CredentialProviderInfo> credManProviders = new ArrayList<>();
|
||||||
if (mCredentialManager != null) {
|
if (mCredentialManager != null) {
|
||||||
credManProviders.addAll(
|
credManProviders.addAll(
|
||||||
mCredentialManager.getCredentialProviderServices(
|
mCredentialManager.getCredentialProviderServices(
|
||||||
userId, CredentialManager.PROVIDER_FILTER_USER_PROVIDERS_ONLY));
|
userId,
|
||||||
|
CredentialManager.PROVIDER_FILTER_USER_PROVIDERS_INCLUDING_HIDDEN));
|
||||||
}
|
}
|
||||||
|
|
||||||
return CombinedProviderInfo.buildMergedList(
|
return CombinedProviderInfo.buildMergedList(
|
||||||
@@ -226,6 +225,12 @@ public class DefaultCombinedPreferenceController extends DefaultAppPreferenceCon
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Clean the autofill provider settings
|
||||||
|
Settings.Secure.putStringForUser(
|
||||||
|
mContext.getContentResolver(),
|
||||||
|
DefaultCombinedPicker.AUTOFILL_SETTING, null, getUser());
|
||||||
|
|
||||||
|
// Clean the credman provider settings.
|
||||||
mCredentialManager.setEnabledProviders(
|
mCredentialManager.setEnabledProviders(
|
||||||
List.of(), // empty primary provider.
|
List.of(), // empty primary provider.
|
||||||
List.of(), // empty enabled providers.
|
List.of(), // empty enabled providers.
|
||||||
|
Reference in New Issue
Block a user