diff --git a/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java index 161c2187a28..ca45a328bad 100644 --- a/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java +++ b/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java @@ -17,7 +17,6 @@ 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; @@ -56,6 +55,10 @@ public class Enhanced4gLtePreferenceController extends TelephonyTogglePreference private final CharSequence[] mVariantTitles; private final CharSequence[] mVariantSumaries; + private final int VARIANT_TITLE_VOLTE = 0; + private final int VARIANT_TITLE_ADVANCED_CALL = 1; + private final int VARIANT_TITLE_4G_CALLING = 2; + public Enhanced4gLtePreferenceController(Context context, String key) { super(context, key); mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); @@ -101,20 +104,17 @@ public class Enhanced4gLtePreferenceController extends TelephonyTogglePreference public void updateState(Preference preference) { super.updateState(preference); final SwitchPreference switchPreference = (SwitchPreference) preference; - final int variant4glteTitleIndex = mCarrierConfig.getInt( - CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT); + final boolean show4GForLTE = mCarrierConfig.getBoolean( + CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL); + 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 != VARIANT_TITLE_ADVANCED_CALL) { + variant4glteTitleIndex = show4GForLTE ? VARIANT_TITLE_4G_CALLING : VARIANT_TITLE_VOLTE; } - if (variant4glteTitleIndex >= 0 && variant4glteTitleIndex < mVariantSumaries.length) { - enhanced4glteModeSummary = mVariantSumaries[variant4glteTitleIndex]; - } - switchPreference.setTitle(enhanced4glteModeTitle); - switchPreference.setSummary(enhanced4glteModeSummary); + + switchPreference.setTitle(mVariantTitles[variant4glteTitleIndex]); + switchPreference.setSummary(mVariantSumaries[variant4glteTitleIndex]); 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 9957cde89ed..bea8f679604 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceControllerTest.java @@ -102,20 +102,34 @@ public class Enhanced4gLtePreferenceControllerTest { } @Test - public void updateState_variant4gLte_useVariantTitleAndSummary() { + public void updateState_doNotShow4GForLTE_showVolteTitleAndSummary() { + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL, false); + 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)); + 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); + 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_advanced_calling)); + mContext.getString(R.string.enhanced_4g_lte_mode_title)); assertThat(mPreference.getSummary()).isEqualTo( mContext.getString(R.string.enhanced_4g_lte_mode_summary)); + } + + @Test + public void updateState_show4GForLTE_show4GTitleAndSummary() { + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL, true); + + 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_4g_calling)); + assertThat(mPreference.getSummary()).isEqualTo( + mContext.getString(R.string.enhanced_4g_lte_mode_summary_4g_calling)); mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 2); mController.updateState(mPreference); @@ -125,6 +139,25 @@ public class Enhanced4gLtePreferenceControllerTest { mContext.getString(R.string.enhanced_4g_lte_mode_summary_4g_calling)); } + @Test + public void updateState_variantAdvancedCalling_showAdvancedCallingTitleAndSummary() { + mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1); + + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL, false); + 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.putBoolean(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL, true); + 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)); + } + @Test public void updateState_configEnabled_prefEnabled() { mPreference.setEnabled(false);