Merge "Fix VoLTE toggle names for all carriers."

This commit is contained in:
Tony Zhu
2019-03-26 11:41:58 +00:00
committed by Android (Google) Code Review
4 changed files with 68 additions and 15 deletions

View File

@@ -1378,6 +1378,26 @@
<item>@string/wifi_calling_mode_cellular_preferred_summary</item>
</string-array>
<!-- Carrier variant of Enhaced 4G LTE Mode title. [CHAR LIMIT=NONE] -->
<string-array name="enhanced_4g_lte_mode_title_variant">
<!-- 0: Default -->
<item>@string/enhanced_4g_lte_mode_title</item>
<!-- 1: Verizon -->
<item>@string/enhanced_4g_lte_mode_title_advanced_calling</item>
<!-- 2: All carriers who want 4G -->
<item>@string/enhanced_4g_lte_mode_title_4g_calling</item>
</string-array>
<!-- Carrier variant of Enhaced 4G LTE Mode summary. [CHAR LIMIT=NONE] -->
<string-array name="enhanced_4g_lte_mode_sumary_variant">
<!-- 0: Default -->
<item>@string/enhanced_4g_lte_mode_summary</item>
<!-- 1: Verizon -->
<item>@string/enhanced_4g_lte_mode_summary</item>
<!-- 2: All carriers who want 4G -->
<item>@string/enhanced_4g_lte_mode_summary_4g_calling</item>
</string-array>
<!-- Bluetooth icon foreground colors -->
<integer-array name="bt_icon_fg_colors">
<item>@color/bt_color_icon_1</item>

View File

@@ -6921,9 +6921,15 @@
<!-- Access point names title. [CHAR LIMIT=50] -->
<string name="access_point_names">Access point names</string>
<!-- Enhaced 4G LTE Mode title. [CHAR LIMIT=50] -->
<string name="enhanced_4g_lte_mode_title">Enhanced 4G LTE Mode</string>
<string name="enhanced_4g_lte_mode_title">VoLTE</string>
<!-- Enhaced 4G LTE Mode title for carriers who want to show Advanced Calling. [CHAR LIMIT=50] -->
<string name="enhanced_4g_lte_mode_title_advanced_calling">Advanced Calling</string>
<!-- Enhaced 4G LTE Mode title for carriers who want to show 4G Calling. [CHAR LIMIT=50] -->
<string name="enhanced_4g_lte_mode_title_4g_calling">4G Calling</string>
<!-- Enhaced 4G LTE Mode summary. [CHAR LIMIT=100] -->
<string name="enhanced_4g_lte_mode_summary">Use LTE data to enhance voice and communications (Recommended)</string>
<string name="enhanced_4g_lte_mode_summary">Use LTE services to improve voice and other communications (recommended)</string>
<!-- Enhaced 4G LTE Mode summary for 4g calling. [CHAR LIMIT=100] -->
<string name="enhanced_4g_lte_mode_summary_4g_calling">Use 4G services to improve voice and other communications (recommended)</string>
<!-- Preferred network type title. [CHAR LIMIT=50] -->
<string name="preferred_network_type_title">Preferred network type</string>
<!-- Preferred network type summary. [CHAR LIMIT=100] -->
@@ -10534,8 +10540,6 @@
<!-- Message informs the user that has no SIM card in personalized Settings [CHAR LIMIT=30] -->
<string name="no_sim_card">No SIM card</string>
<!-- Carrier variant of Enhaced 4G LTE Mode title. [CHAR LIMIT=50] -->
<string name="enhanced_4g_lte_mode_title_variant">Advanced Calling</string>
<!-- The following strings are summaries for preferred network modes in Mobile network settings,
and have a character limit of 100 -->
<!-- WCDMA preferred [CHAR LIMIT=NONE] -->

View File

@@ -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<On4gLteUpdateListener> 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());

View File

@@ -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