From 466b3e006611831f2f8442bf52335e60006b3271 Mon Sep 17 00:00:00 2001 From: Santos Cordon Date: Fri, 1 Nov 2024 22:36:50 +0000 Subject: [PATCH 1/7] Updating Setting EvenDimmer->ExtraDim Bug: 376929378 Flag: EXEMPT Bug fix Test: Manually verify text Change-Id: I7d9af05f2898545bf16ede61a4a680f480e46dc5 --- res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 97a7e232304..b2dd1e0598c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3008,7 +3008,7 @@ Modes settings - Even dimmer + Extra dim Allow device to go dimmer than usual From c79f368dbf712f9e8e33bca0c50866bf61a42cee Mon Sep 17 00:00:00 2001 From: Haijie Hong Date: Mon, 18 Nov 2024 16:55:50 +0800 Subject: [PATCH 2/7] Add logging for LE Audio toggle enable/disable BUG: 364201880 Test: local tested Flag: EXEMPT minor change, only add logging Change-Id: I05ea2d0cd85da9879e18ae730fb64beeb4d81dd4 --- .../BluetoothDetailsProfilesController.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java index d75e7da3f86..924ba2c7fa7 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java @@ -18,6 +18,7 @@ package com.android.settings.bluetooth; import static android.bluetooth.BluetoothDevice.METADATA_MODEL_NAME; +import android.app.settings.SettingsEnums; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; import android.content.Context; @@ -83,6 +84,8 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll private static final boolean LE_AUDIO_TOGGLE_VISIBLE_DEFAULT_VALUE = true; private static final String LE_AUDIO_TOGGLE_VISIBLE_PROPERTY = "persist.bluetooth.leaudio.toggle_visible"; + private static final String BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY = + "persist.bluetooth.leaudio.bypass_allow_list"; private Set mInvisibleProfiles = Collections.emptySet(); private final AtomicReference> mAdditionalInvisibleProfiles = @@ -378,6 +381,16 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll return result; } + private boolean isCurrentDeviceInOrByPassAllowList() { + if (!SystemProperties.getBoolean(LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY, true)) { + return false; + } + return SystemProperties.getBoolean(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY, false) + || isModelNameInAllowList( + BluetoothUtils.getStringMetaData( + mCachedDevice.getDevice(), METADATA_MODEL_NAME)); + } + /** * Disable the Le Audio profile for each of the Le Audio devices. * @@ -389,6 +402,11 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll return; } + mMetricsFeatureProvider.action( + mContext, + SettingsEnums.ACTION_BLUETOOTH_PROFILE_LE_AUDIO_OFF, + isCurrentDeviceInOrByPassAllowList()); + LocalBluetoothProfile asha = mProfileManager.getHearingAidProfile(); LocalBluetoothProfile broadcastAssistant = mProfileManager.getLeAudioBroadcastAssistantProfile(); @@ -427,6 +445,11 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll return; } + mMetricsFeatureProvider.action( + mContext, + SettingsEnums.ACTION_BLUETOOTH_PROFILE_LE_AUDIO_ON, + isCurrentDeviceInOrByPassAllowList()); + if (!SystemProperties.getBoolean(ENABLE_DUAL_MODE_AUDIO, false)) { Log.i(TAG, "Disabling classic audio profiles because dual mode is disabled"); disableProfileBeforeUserEnablesLeAudio(mProfileManager.getA2dpProfile()); From f4d392b27888fd8b738656dc32a6845818a1c76f Mon Sep 17 00:00:00 2001 From: Harry Cutts Date: Fri, 22 Nov 2024 12:59:43 +0000 Subject: [PATCH 3/7] Disable checkcolor hook MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This hook is currently broken (in that it does not fail when a hard-coded colour is added), and adds 30–40 seconds to the time taken by repo upload. Bug: 377902600 Change-Id: I868df74da7e3b6b15e18c9572877dc368ae6f643 Test: Treehugger Flag: EXEMPT change to pre-upload checks --- PREUPLOAD.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg index 01d75e88a17..6e22780c3d7 100644 --- a/PREUPLOAD.cfg +++ b/PREUPLOAD.cfg @@ -1,5 +1,6 @@ [Hook Scripts] -checkcolor_hook = ${REPO_ROOT}/prebuilts/checkcolor/checkcolor.py -p . +# TODO(b/377902600): Re-enable this hook once it is fixed. +#checkcolor_hook = ${REPO_ROOT}/prebuilts/checkcolor/checkcolor.py -p . checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT} From db43380380fe09b949179f14215ca73da782a1aa Mon Sep 17 00:00:00 2001 From: tomhsu Date: Mon, 25 Nov 2024 05:24:49 +0000 Subject: [PATCH 4/7] Make UI and wording dynamically show on - Satellite preferences may show on by deifferent reason. To fullfill these conditions, let category be able to dynamically show on base on the preference exist or not. - Show string of Connectivity or Messaging for service state change. Flag: com.android.settings.flags.satellite_oem_settings_ux_migration Fix: b/378408939 Test: atest pass Test: make pass Change-Id: Ibb0f9089805bb35d0334603e55d292c9883262ff --- res/values/strings.xml | 4 +- res/xml/mobile_network_settings.xml | 2 +- .../SatelliteSettingPreferenceController.java | 1 + ...eSettingsPreferenceCategoryController.java | 109 ++++++++++++++---- ...tingsPreferenceCategoryControllerTest.java | 106 +++++++++-------- 5 files changed, 151 insertions(+), 71 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index d9594b3ffdb..54c91e846cd 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -12298,8 +12298,10 @@ Can’t turn on %1$s To turn on %1$s, first end the satellite connection - + Satellite connectivity + + Satellite connectivity diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml index fb20dceacd3..3c1317d15b5 100644 --- a/res/xml/mobile_network_settings.xml +++ b/res/xml/mobile_network_settings.xml @@ -206,7 +206,7 @@ availableServices) { + CarrierRoamingNtnModeListener.super.onCarrierRoamingNtnAvailableServicesChanged( + availableServices); + boolean isSmsAvailable = availableServices.contains(SERVICE_TYPE_SMS); + boolean isDataAvailable = availableServices.contains(SERVICE_TYPE_DATA); + Log.i(TAG, "isSmsAvailable : " + isSmsAvailable + + " / isDataAvailable " + isDataAvailable); + if (mPreferenceCategory == null) { + Log.d(TAG, "Satellite preference category is not initialized yet"); + return; + } + if (isDataAvailable) { + mPreferenceCategory.setTitle(R.string.category_title_satellite_connectivity); + } else if (isSmsAvailable) { + mPreferenceCategory.setTitle(R.string.satellite_setting_title); + } } - if (mSatelliteManager == null) { - Log.d(TAG, "getAvailabilityStatus(" + subId + ") : SatelliteManager is null"); - return UNSUPPORTED_ON_DEVICE; + @Override + public void onCarrierRoamingNtnEligibleStateChanged(boolean eligible) { + // Do nothing } - final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId); - final boolean isSatelliteAttachSupported = carrierConfig.getBoolean( - CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL); + @Override + public void onCarrierRoamingNtnModeChanged(boolean active) { + // Do nothing + } - return isSatelliteAttachSupported ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; + @Override + public void onCarrierRoamingNtnSignalStrengthChanged(NtnSignalStrength ntnSignalStrength) { + // Do nothing + } } } diff --git a/tests/unit/src/com/android/settings/network/telephony/SatelliteSettingsPreferenceCategoryControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/SatelliteSettingsPreferenceCategoryControllerTest.java index 3b6e9434ba8..52c317996d5 100644 --- a/tests/unit/src/com/android/settings/network/telephony/SatelliteSettingsPreferenceCategoryControllerTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/SatelliteSettingsPreferenceCategoryControllerTest.java @@ -16,38 +16,37 @@ package com.android.settings.network.telephony; -import static com.android.settings.core.BasePreferenceController.AVAILABLE; -import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE; +import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_DATA; +import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_SMS; + +import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.when; import android.content.Context; import android.os.Looper; -import android.os.PersistableBundle; -import android.platform.test.annotations.DisableFlags; -import android.platform.test.annotations.EnableFlags; -import android.platform.test.flag.junit.SetFlagsRule; -import android.telephony.CarrierConfigManager; -import android.telephony.satellite.SatelliteManager; +import androidx.preference.Preference; +import androidx.preference.PreferenceCategory; +import androidx.preference.PreferenceManager; +import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; -import com.android.internal.telephony.flags.Flags; -import com.android.settings.network.CarrierConfigCache; +import com.android.settings.R; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; +import java.util.List; + @RunWith(AndroidJUnit4.class) public class SatelliteSettingsPreferenceCategoryControllerTest { private static final String KEY = "key"; @@ -55,16 +54,9 @@ public class SatelliteSettingsPreferenceCategoryControllerTest { @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule(); - @Rule - public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); - - @Mock - private CarrierConfigCache mCarrierConfigCache; private Context mContext = null; - private SatelliteManager mSatelliteManager = null; private SatelliteSettingsPreferenceCategoryController mController = null; - private PersistableBundle mCarrierConfig = new PersistableBundle(); @Before public void setUp() { @@ -72,25 +64,38 @@ public class SatelliteSettingsPreferenceCategoryControllerTest { Looper.prepare(); } mContext = spy(ApplicationProvider.getApplicationContext()); - mSatelliteManager = new SatelliteManager(mContext); - CarrierConfigCache.setTestInstance(mContext, mCarrierConfigCache); - when(mContext.getSystemService(SatelliteManager.class)).thenReturn(mSatelliteManager); mController = new SatelliteSettingsPreferenceCategoryController(mContext, KEY); } @Test - @DisableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) - public void getAvailabilityStatus_featureDisabled_returnUnsupport() { + public void getAvailabilityStatus_default_returnUnsupported() { int result = mController.getAvailabilityStatus(TEST_SUB_ID); - assertThat(result).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test - @EnableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) - public void getAvailabilityStatus_noSatellite_returnUnsupport() { - when(mContext.getSystemService(SatelliteManager.class)).thenReturn(null); - mController = new SatelliteSettingsPreferenceCategoryController(mContext, KEY); + public void getAvailabilityStatus_hasAvailablePreference_returnAvailableUnsearchable() { + PreferenceManager preferenceManager = new PreferenceManager(mContext); + PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); + PreferenceCategory preferenceCategory = new PreferenceCategory(mContext); + preferenceCategory.setKey(KEY); + preferenceScreen.addPreference(preferenceCategory); + preferenceCategory.addPreference(new Preference(mContext)); + mController.displayPreference(preferenceScreen); + + int result = mController.getAvailabilityStatus(TEST_SUB_ID); + + assertThat(result).isEqualTo(AVAILABLE_UNSEARCHABLE); + } + + @Test + public void getAvailabilityStatus_noAvailablePreference_returnUnsupported() { + PreferenceManager preferenceManager = new PreferenceManager(mContext); + PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); + PreferenceCategory preferenceCategory = new PreferenceCategory(mContext); + preferenceCategory.setKey(KEY); + preferenceScreen.addPreference(preferenceCategory); + mController.displayPreference(preferenceScreen); int result = mController.getAvailabilityStatus(TEST_SUB_ID); @@ -98,30 +103,37 @@ public class SatelliteSettingsPreferenceCategoryControllerTest { } @Test - @EnableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) - public void getAvailabilityStatus_carrierIsNotSupport_returnUnavailable() { - when(mContext.getSystemService(SatelliteManager.class)).thenReturn(null); - mCarrierConfig.putBoolean( - CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, - false); - when(mCarrierConfigCache.getConfigForSubId(TEST_SUB_ID)).thenReturn(mCarrierConfig); + public void setPreferenceTitle_hasDataService_showConnectivity() { + PreferenceManager preferenceManager = new PreferenceManager(mContext); + PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); + PreferenceCategory preferenceCategory = new PreferenceCategory(mContext); + preferenceCategory.setKey(KEY); + preferenceScreen.addPreference(preferenceCategory); + preferenceCategory.addPreference(new Preference(mContext)); + mController.displayPreference(preferenceScreen); - int result = mController.getAvailabilityStatus(TEST_SUB_ID); + mController.mCarrierRoamingNtnModeCallback.onCarrierRoamingNtnAvailableServicesChanged( + List.of(SERVICE_TYPE_DATA)); - assertThat(result).isEqualTo(CONDITIONALLY_UNAVAILABLE); + assertThat(preferenceCategory.getTitle()).isEqualTo( + mContext.getString(R.string.satellite_setting_connectivity)); } + @Test - @EnableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) - public void getAvailabilityStatus_carrierIsSupport_returnAvailable() { - when(mContext.getSystemService(SatelliteManager.class)).thenReturn(null); - mCarrierConfig.putBoolean( - CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, - true); - when(mCarrierConfigCache.getConfigForSubId(TEST_SUB_ID)).thenReturn(mCarrierConfig); + public void setPreferenceTitle_hasSmsService_showMessaging() { + PreferenceManager preferenceManager = new PreferenceManager(mContext); + PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); + PreferenceCategory preferenceCategory = new PreferenceCategory(mContext); + preferenceCategory.setKey(KEY); + preferenceScreen.addPreference(preferenceCategory); + preferenceCategory.addPreference(new Preference(mContext)); + mController.displayPreference(preferenceScreen); - int result = mController.getAvailabilityStatus(TEST_SUB_ID); + mController.mCarrierRoamingNtnModeCallback.onCarrierRoamingNtnAvailableServicesChanged( + List.of(SERVICE_TYPE_SMS)); - assertThat(result).isEqualTo(AVAILABLE); + assertThat(preferenceCategory.getTitle()).isEqualTo( + mContext.getString(R.string.satellite_setting_title)); } } From d6f139b3892cdee312686bb058ce4e3f1a835424 Mon Sep 17 00:00:00 2001 From: Eric Lin Date: Tue, 26 Nov 2024 07:13:23 +0000 Subject: [PATCH 5/7] Update comments to point to the new location of event.logtags. event.logtags was moved from system/core/logcat to system/logging/logcat in Android 12 by aosp/1454058. Change-Id: I8a6d046bf31e1e0d28862664f5cc0e2e941ab60c BUG: 168791309 Flag: DOCS_ONLY Test: Local build --- src/com/android/settings/EventLogTags.logtags | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/settings/EventLogTags.logtags b/src/com/android/settings/EventLogTags.logtags index 2c8ad3577cf..4e5a742730a 100644 --- a/src/com/android/settings/EventLogTags.logtags +++ b/src/com/android/settings/EventLogTags.logtags @@ -1,4 +1,4 @@ -# See system/core/logcat/event.logtags for a description of the format of this file. +# See system/logging/logcat/event.logtags for a description of the format of this file. option java_package com.android.settings From f54048ad4c4edebc0cf4d69af56fbad4f8d06f6c Mon Sep 17 00:00:00 2001 From: danielwbhuang Date: Tue, 26 Nov 2024 14:47:03 +0800 Subject: [PATCH 6/7] Modify App languages entry 1. add a new category 2. move App languages preference to the new category Bug: 379962955 Flag: com.android.settings.flags.regional_preferences_api_enabled Test: check hsv and atest ManageApplicationsTest, AppLocalePreferenceControllerTest Change-Id: Ie6bdcb1899b705cff48ce3be9c0d0b060be8ee72 --- res/values/strings.xml | 2 + res/xml/language_settings.xml | 19 +++++++- .../AppsLocalePreferenceController.java | 42 ++++++++++++++++++ .../NewAppsLocalePreferenceController.java | 44 +++++++++++++++++++ ...reLanguagesSettingsCategoryController.java | 42 ++++++++++++++++++ 5 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 src/com/android/settings/applications/appinfo/AppsLocalePreferenceController.java create mode 100644 src/com/android/settings/applications/appinfo/NewAppsLocalePreferenceController.java create mode 100644 src/com/android/settings/language/MoreLanguagesSettingsCategoryController.java diff --git a/res/values/strings.xml b/res/values/strings.xml index 4d51512d29f..ffdadf93bd1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -470,6 +470,8 @@ Region preference Type language name + + More language settings diff --git a/res/xml/language_settings.xml b/res/xml/language_settings.xml index fb79346b3b8..f9f423e5ca5 100644 --- a/res/xml/language_settings.xml +++ b/res/xml/language_settings.xml @@ -28,12 +28,13 @@ android:title="@string/system_language" android:fragment="com.android.settings.localepicker.LocaleListEditor" settings:controller="com.android.settings.language.PhoneLanguagePreferenceController" /> + + settings:controller="com.android.settings.applications.appinfo.AppsLocalePreferenceController"> @@ -48,6 +49,22 @@ + + + + + + Date: Tue, 26 Nov 2024 09:15:09 +0000 Subject: [PATCH 7/7] Add aconfig for biometric onboarding education Bug: 370940762 Test: m Flag: com.android.settings.flags.biometric_onboarding_education Change-Id: I1517feecdb6baff2cf1f97c951c6a4c18e342c45 --- ...ttings_biometrics_integration_declarations.aconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/aconfig/settings_biometrics_integration_declarations.aconfig b/aconfig/settings_biometrics_integration_declarations.aconfig index 8168c85d394..cc756c6d587 100644 --- a/aconfig/settings_biometrics_integration_declarations.aconfig +++ b/aconfig/settings_biometrics_integration_declarations.aconfig @@ -41,3 +41,14 @@ flag { description: "This flag controls whether the onboarding education settings UX should be enabled" bug: "370940762" } + +flag { + name: "biometric_onboarding_education" + namespace: "biometrics_integration" + description: "This flag controls whether the onboarding education settings UX should be enabled" + bug: "370940762" + metadata { + purpose: PURPOSE_BUGFIX + } +} +