diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 521d709e318..b8bd424bfc1 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -1378,6 +1378,26 @@ @string/wifi_calling_mode_cellular_preferred_summary + + + + @string/enhanced_4g_lte_mode_title + + @string/enhanced_4g_lte_mode_title_advanced_calling + + @string/enhanced_4g_lte_mode_title_4g_calling + + + + + + @string/enhanced_4g_lte_mode_summary + + @string/enhanced_4g_lte_mode_summary + + @string/enhanced_4g_lte_mode_summary_4g_calling + + @color/bt_color_icon_1 diff --git a/res/values/strings.xml b/res/values/strings.xml index 0986634355e..7c11ebf07b5 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -6890,9 +6890,15 @@ Access point names - Enhanced 4G LTE Mode + VoLTE + + Advanced Calling + + 4G Calling - Use LTE data to enhance voice and communications (Recommended) + Use LTE services to improve voice and other communications (recommended) + + Use 4G services to improve voice and other communications (recommended) Preferred network type @@ -10481,8 +10487,6 @@ No SIM card - - Advanced Calling diff --git a/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java index c510294c5b6..161c2187a28 100644 --- a/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java +++ b/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java @@ -17,6 +17,7 @@ package com.android.settings.network.telephony; import android.content.Context; +import android.content.res.Resources; import android.os.Looper; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; @@ -52,12 +53,18 @@ public class Enhanced4gLtePreferenceController extends TelephonyTogglePreference ImsManager mImsManager; private PhoneCallStateListener mPhoneStateListener; private final List m4gLteListeners; + private final CharSequence[] mVariantTitles; + private final CharSequence[] mVariantSumaries; public Enhanced4gLtePreferenceController(Context context, String key) { super(context, key); mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); m4gLteListeners = new ArrayList<>(); mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper()); + mVariantTitles = context.getResources() + .getTextArray(R.array.enhanced_4g_lte_mode_title_variant); + mVariantSumaries = context.getResources() + .getTextArray(R.array.enhanced_4g_lte_mode_sumary_variant); } @Override @@ -94,12 +101,20 @@ public class Enhanced4gLtePreferenceController extends TelephonyTogglePreference public void updateState(Preference preference) { super.updateState(preference); final SwitchPreference switchPreference = (SwitchPreference) preference; - final boolean useVariant4glteTitle = mCarrierConfig.getInt( - CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT) != 0; - int enhanced4glteModeTitleId = useVariant4glteTitle ? - R.string.enhanced_4g_lte_mode_title_variant : - R.string.enhanced_4g_lte_mode_title; - switchPreference.setTitle(enhanced4glteModeTitleId); + final int variant4glteTitleIndex = mCarrierConfig.getInt( + CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT); + + // Default index 0 indicates the default title/sumary string + CharSequence enhanced4glteModeTitle = mVariantTitles[0]; + CharSequence enhanced4glteModeSummary = mVariantSumaries[0]; + if (variant4glteTitleIndex >= 0 && variant4glteTitleIndex < mVariantTitles.length) { + enhanced4glteModeTitle = mVariantTitles[variant4glteTitleIndex]; + } + if (variant4glteTitleIndex >= 0 && variant4glteTitleIndex < mVariantSumaries.length) { + enhanced4glteModeSummary = mVariantSumaries[variant4glteTitleIndex]; + } + switchPreference.setTitle(enhanced4glteModeTitle); + switchPreference.setSummary(enhanced4glteModeSummary); switchPreference.setEnabled(is4gLtePrefEnabled()); switchPreference.setChecked(mImsManager.isEnhanced4gLteModeSettingEnabledByUser() && mImsManager.isNonTtyOrTtyOnVolteEnabled()); diff --git a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceControllerTest.java index 78ed4b596d3..9957cde89ed 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceControllerTest.java @@ -102,13 +102,27 @@ public class Enhanced4gLtePreferenceControllerTest { } @Test - public void updateState_variant4gLte_useVariantTitle() { - mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1); - + public void updateState_variant4gLte_useVariantTitleAndSummary() { + mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 0); mController.updateState(mPreference); - assertThat(mPreference.getTitle()).isEqualTo( - mContext.getString(R.string.enhanced_4g_lte_mode_title_variant)); + mContext.getString(R.string.enhanced_4g_lte_mode_title)); + assertThat(mPreference.getSummary()).isEqualTo( + mContext.getString(R.string.enhanced_4g_lte_mode_summary)); + + mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1); + mController.updateState(mPreference); + assertThat(mPreference.getTitle()).isEqualTo( + mContext.getString(R.string.enhanced_4g_lte_mode_title_advanced_calling)); + assertThat(mPreference.getSummary()).isEqualTo( + mContext.getString(R.string.enhanced_4g_lte_mode_summary)); + + mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 2); + mController.updateState(mPreference); + assertThat(mPreference.getTitle()).isEqualTo( + mContext.getString(R.string.enhanced_4g_lte_mode_title_4g_calling)); + assertThat(mPreference.getSummary()).isEqualTo( + mContext.getString(R.string.enhanced_4g_lte_mode_summary_4g_calling)); } @Test