From ef9c44461fe44396e191ea234e0763370516bad0 Mon Sep 17 00:00:00 2001 From: tonyzhu Date: Fri, 22 Mar 2019 16:40:36 +0800 Subject: [PATCH] Fix VoLTE toggle names for all carriers. Change default from "Enhanced 4G LTE Mode" to "VoLTE". Add 4g calling and its sub summary. Show carreirs VoLTE toggle names by carrier config. Bug: 129112234 Bug: 129153582 Test: Use commands to override carrier config to observe the UI as expected. Change-Id: I1d418873a661b3c20c5a6d0a056dcb2573742c65 --- res/values/arrays.xml | 20 ++++++++++++++ res/values/strings.xml | 12 ++++++--- .../Enhanced4gLtePreferenceController.java | 27 ++++++++++++++----- ...Enhanced4gLtePreferenceControllerTest.java | 24 +++++++++++++---- 4 files changed, 68 insertions(+), 15 deletions(-) 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