Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2dceec76 authored by tonyzhu's avatar tonyzhu
Browse files

Control VoLTE toggle names by "show_4g_for_lte_data_icon_bool".

Using "show_4g_for_lte_data_icon_bool" to control VoLTE toggle names,
making sure strings can be correspond to the icon.

Bug: 128325427
Test: Use commands to override carrier config to observe the
UI as expected.
Test: atest pass.

Change-Id: I41dd28eb2c14d385a8396c551bf5ef2cf9258997
parent 7c49d150
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -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(
        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 >= 0 && variant4glteTitleIndex < mVariantSumaries.length) {
            enhanced4glteModeSummary = mVariantSumaries[variant4glteTitleIndex];
        if (variant4glteTitleIndex != VARIANT_TITLE_ADVANCED_CALL) {
            variant4glteTitleIndex = show4GForLTE ? VARIANT_TITLE_4G_CALLING : VARIANT_TITLE_VOLTE;
        }
        switchPreference.setTitle(enhanced4glteModeTitle);
        switchPreference.setSummary(enhanced4glteModeSummary);

        switchPreference.setTitle(mVariantTitles[variant4glteTitleIndex]);
        switchPreference.setSummary(mVariantSumaries[variant4glteTitleIndex]);
        switchPreference.setEnabled(is4gLtePrefEnabled());
        switchPreference.setChecked(mImsManager.isEnhanced4gLteModeSettingEnabledByUser()
                && mImsManager.isNonTtyOrTtyOnVolteEnabled());
+37 −4
Original line number Diff line number Diff line
@@ -102,7 +102,9 @@ 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(
@@ -110,12 +112,24 @@ public class Enhanced4gLtePreferenceControllerTest {
        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);