From 385f5a0c7ba8a7f1213b1d6c4f0532aefe1e45f5 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 18 Apr 2024 07:24:07 +0000 Subject: [PATCH 01/21] Replace credential provider placeholder Replace credential provider placeholder with the actual credential autofill provider. Bug: 330177328 Test: cts Change-Id: Ib6c9688b3f728706b1f5ac0faa3f042bb6dc447c --- ...CredentialManagerPreferenceController.java | 30 ++++++++++++++----- .../credentials/DefaultCombinedPicker.java | 12 ++++++-- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java index a92b755331c..4619bdade5a 100644 --- a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java +++ b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java @@ -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 mServices; private final Set 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, diff --git a/src/com/android/settings/applications/credentials/DefaultCombinedPicker.java b/src/com/android/settings/applications/credentials/DefaultCombinedPicker.java index 6fdcf675e9f..8bc0bca627b 100644 --- a/src/com/android/settings/applications/credentials/DefaultCombinedPicker.java +++ b/src/com/android/settings/applications/credentials/DefaultCombinedPicker.java @@ -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 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; + } } } From 4e13fdcd378dc1f55cd0d7fa40446a2343ed75cb Mon Sep 17 00:00:00 2001 From: Tetiana Meronyk Date: Thu, 2 May 2024 11:54:46 +0000 Subject: [PATCH 02/21] Remove telephony related settings preferences for HSUM devices Bug: 338358654 Test: atest UserDetailsSettingsTest Change-Id: I53c3a8e4386b5d7738caffb42abf15dd33c360c7 --- .../settings/users/GuestTelephonyPreferenceController.java | 3 ++- src/com/android/settings/users/UserDetailsSettings.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/users/GuestTelephonyPreferenceController.java b/src/com/android/settings/users/GuestTelephonyPreferenceController.java index 83e4bfc5310..4fbd4493bb7 100644 --- a/src/com/android/settings/users/GuestTelephonyPreferenceController.java +++ b/src/com/android/settings/users/GuestTelephonyPreferenceController.java @@ -75,6 +75,7 @@ public class GuestTelephonyPreferenceController extends TogglePreferenceControll super.updateState(preference); mUserCaps.updateAddUserCapabilities(mContext); preference.setVisible(isAvailable() && mUserCaps.mUserSwitcherEnabled - && mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)); + && mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY) + && !UserManager.isHeadlessSystemUserMode()); } } diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java index a030d865a8b..1f0d824d087 100644 --- a/src/com/android/settings/users/UserDetailsSettings.java +++ b/src/com/android/settings/users/UserDetailsSettings.java @@ -376,7 +376,7 @@ public class UserDetailsSettings extends SettingsPreferenceFragment if (!Utils.isVoiceCapable(context)) { // no telephony removePreference(KEY_ENABLE_TELEPHONY); } - if (mUserInfo.isMain()) { + if (mUserInfo.isMain() || UserManager.isHeadlessSystemUserMode()) { removePreference(KEY_ENABLE_TELEPHONY); } if (mUserInfo.isRestricted()) { From 7d0d858136df1c72f8d817d5bc7cd8e027b83012 Mon Sep 17 00:00:00 2001 From: Pawan Wagh Date: Thu, 2 May 2024 18:02:53 +0000 Subject: [PATCH 03/21] Make links in dialog text clickable Test: m Settings && adb install -r $ANDROID_PRODUCT_OUT/system_ext/priv-app/Settings/Settings.apk Bug: 295035851 Change-Id: I71d4f5cb1e27cd52e6f0c5aaeabc9b3f89520cf1 --- .../development/Enable16KOemUnlockDialog.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/development/Enable16KOemUnlockDialog.java b/src/com/android/settings/development/Enable16KOemUnlockDialog.java index 65690df7ab4..8ddded41057 100644 --- a/src/com/android/settings/development/Enable16KOemUnlockDialog.java +++ b/src/com/android/settings/development/Enable16KOemUnlockDialog.java @@ -16,10 +16,15 @@ package com.android.settings.development; +import static androidx.core.text.HtmlCompat.FROM_HTML_MODE_COMPACT; + import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.DialogInterface; import android.os.Bundle; +import android.text.Html; +import android.text.method.LinkMovementMethod; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -60,7 +65,10 @@ public class Enable16KOemUnlockDialog extends InstrumentedDialogFragment public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()) .setTitle(R.string.confirm_oem_unlock_for_16k_title) - .setMessage(R.string.confirm_oem_unlock_for_16k_text) + .setMessage( + Html.fromHtml( + getString(R.string.confirm_oem_unlock_for_16k_text), + FROM_HTML_MODE_COMPACT)) .setPositiveButton(android.R.string.ok, this /* onClickListener */) .create(); } @@ -74,4 +82,11 @@ public class Enable16KOemUnlockDialog extends InstrumentedDialogFragment public void onDismiss(@NonNull DialogInterface dialog) { super.onDismiss(dialog); } + + @Override + public void onStart() { + super.onStart(); + ((TextView) getDialog().findViewById(android.R.id.message)) + .setMovementMethod(LinkMovementMethod.getInstance()); + } } From dc087a635b1fe31617e8484caf1beed3a0637793 Mon Sep 17 00:00:00 2001 From: marcusge Date: Tue, 23 Apr 2024 19:26:55 +0000 Subject: [PATCH 04/21] [Settings] Migrate color roles to respect color contrast This change updated color roles in the main Settings page and in the alert dialogs. Bug: 335668262 Bug: 335668306 Bug: 335711196 Bug: 335711422 Bug: 335713067 Bug: 335712185 Bug: 335713398 Bug: 335714079 Bug: 335713405 Bug: 335714437 Test: local raven device Change-Id: I29895ecb869f1053bbcc55ebeb42020e7ce77b8b --- .../settings_two_pane_background_color.xml | 18 ++++++++++++++++++ .../settings_two_pane_background_color.xml | 18 ++++++++++++++++++ res/values-night/themes.xml | 6 +++--- res/values/themes.xml | 5 +++-- 4 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 res/color-night-v35/settings_two_pane_background_color.xml create mode 100644 res/color-v35/settings_two_pane_background_color.xml diff --git a/res/color-night-v35/settings_two_pane_background_color.xml b/res/color-night-v35/settings_two_pane_background_color.xml new file mode 100644 index 00000000000..1d5daf29f77 --- /dev/null +++ b/res/color-night-v35/settings_two_pane_background_color.xml @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file diff --git a/res/color-v35/settings_two_pane_background_color.xml b/res/color-v35/settings_two_pane_background_color.xml new file mode 100644 index 00000000000..ff305abada2 --- /dev/null +++ b/res/color-v35/settings_two_pane_background_color.xml @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file diff --git a/res/values-night/themes.xml b/res/values-night/themes.xml index c28bfbb94ef..141badbc9c6 100644 --- a/res/values-night/themes.xml +++ b/res/values-night/themes.xml @@ -20,7 +20,7 @@