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

Commit 19113600 authored by SongFerng Wang's avatar SongFerng Wang Committed by Gerrit Code Review
Browse files

Merge changes Ia99a4cf4,Ib31e23b8

* changes:
  [Testcase] To migration DisabledSubscriptionControllerTest
  Use SubscriptionManager.getResourcesForSubId to get Resources
parents cbc2c4f1 1ffba4af
Loading
Loading
Loading
Loading
+61 −51
Original line number Diff line number Diff line
@@ -164,7 +164,22 @@ public class EnabledNetworkModePreferenceController extends
        }
    }

    private final static class PreferenceEntriesBuilder {
    enum EnabledNetworks {
        ENABLED_NETWORKS_UNKNOWN,
        ENABLED_NETWORKS_CDMA_CHOICES,
        ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES,
        ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES,
        ENABLED_NETWORKS_TDSCDMA_CHOICES,
        ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES,
        ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES,
        ENABLED_NETWORKS_EXCEPT_GSM_CHOICES,
        ENABLED_NETWORKS_EXCEPT_LTE_CHOICES,
        ENABLED_NETWORKS_4G_CHOICES,
        ENABLED_NETWORKS_CHOICES,
        PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE
    }

    private final class PreferenceEntriesBuilder {
        private CarrierConfigManager mCarrierConfigManager;
        private Context mContext;
        private TelephonyManager mTelephonyManager;
@@ -181,21 +196,6 @@ public class EnabledNetworkModePreferenceController extends
        private List<String> mEntries = new ArrayList<>();
        private List<Integer> mEntriesValue = new ArrayList<>();

        enum EnabledNetworks {
            ENABLED_NETWORKS_UNKNOWN,
            ENABLED_NETWORKS_CDMA_CHOICES,
            ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES,
            ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES,
            ENABLED_NETWORKS_TDSCDMA_CHOICES,
            ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES,
            ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES,
            ENABLED_NETWORKS_EXCEPT_GSM_CHOICES,
            ENABLED_NETWORKS_EXCEPT_LTE_CHOICES,
            ENABLED_NETWORKS_4G_CHOICES,
            ENABLED_NETWORKS_CHOICES,
            PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE
        }

        PreferenceEntriesBuilder(Context context, int subId) {
            this.mContext = context;
            this.mSubId = subId;
@@ -226,7 +226,7 @@ public class EnabledNetworkModePreferenceController extends
            int[] entryValuesInt;
            switch (getEnabledNetworkType()) {
                case ENABLED_NETWORKS_CDMA_CHOICES:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.enabled_networks_cdma_values);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 4) {
@@ -240,7 +240,7 @@ public class EnabledNetworkModePreferenceController extends
                    addGlobalEntry(entryValuesInt[3]);
                    break;
                case ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.enabled_networks_cdma_no_lte_values);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 2) {
@@ -251,7 +251,7 @@ public class EnabledNetworkModePreferenceController extends
                    add1xEntry(entryValuesInt[1]);
                    break;
                case ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.enabled_networks_cdma_only_lte_values);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 2) {
@@ -262,7 +262,7 @@ public class EnabledNetworkModePreferenceController extends
                    addGlobalEntry(entryValuesInt[1]);
                    break;
                case ENABLED_NETWORKS_TDSCDMA_CHOICES:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.enabled_networks_tdscdma_values);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 3) {
@@ -275,7 +275,7 @@ public class EnabledNetworkModePreferenceController extends
                    add2gEntry(entryValuesInt[2]);
                    break;
                case ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.enabled_networks_except_gsm_lte_values);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 1) {
@@ -285,7 +285,7 @@ public class EnabledNetworkModePreferenceController extends
                    add3gEntry(entryValuesInt[0]);
                    break;
                case ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.enabled_networks_except_gsm_values);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 2) {
@@ -297,7 +297,7 @@ public class EnabledNetworkModePreferenceController extends
                    add3gEntry(entryValuesInt[1]);
                    break;
                case ENABLED_NETWORKS_EXCEPT_GSM_CHOICES:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.enabled_networks_except_gsm_values);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 2) {
@@ -309,7 +309,7 @@ public class EnabledNetworkModePreferenceController extends
                    add3gEntry(entryValuesInt[1]);
                    break;
                case ENABLED_NETWORKS_EXCEPT_LTE_CHOICES:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.enabled_networks_except_lte_values);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 2) {
@@ -320,7 +320,7 @@ public class EnabledNetworkModePreferenceController extends
                    add2gEntry(entryValuesInt[1]);
                    break;
                case ENABLED_NETWORKS_4G_CHOICES:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.enabled_networks_values);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 3) {
@@ -334,7 +334,7 @@ public class EnabledNetworkModePreferenceController extends
                    add2gEntry(entryValuesInt[2]);
                    break;
                case ENABLED_NETWORKS_CHOICES:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.enabled_networks_values);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 3) {
@@ -346,7 +346,7 @@ public class EnabledNetworkModePreferenceController extends
                    add2gEntry(entryValuesInt[2]);
                    break;
                case PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE:
                    entryValues = mContext.getResources().getStringArray(
                    entryValues = getResourcesForSubId().getStringArray(
                            R.array.preferred_network_mode_values_world_mode);
                    entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
                    if (entryValuesInt.length < 3) {
@@ -354,9 +354,14 @@ public class EnabledNetworkModePreferenceController extends
                                "PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE index error.");
                    }
                    addGlobalEntry(entryValuesInt[0]);
                    addCustomEntry(mContext.getString(R.string.network_world_mode_cdma_lte),

                    addCustomEntry(
                            getResourcesForSubId().getString(
                                    R.string.network_world_mode_cdma_lte),
                            entryValuesInt[1]);
                    addCustomEntry(mContext.getString(R.string.network_world_mode_gsm_lte),
                    addCustomEntry(
                            getResourcesForSubId().getString(
                                    R.string.network_world_mode_gsm_lte),
                            entryValuesInt[2]);
                    break;
                default:
@@ -571,8 +576,9 @@ public class EnabledNetworkModePreferenceController extends
                case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA:
                    setSelectedEntry(
                            TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
                    setSummary(mContext.getString(R.string.network_5G)
                            + mContext.getString(R.string.network_recommended));
                    setSummary(getResourcesForSubId().getString(R.string.network_5G)
                            + getResourcesForSubId().getString(
                            R.string.network_recommended));
                    break;
                case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA:
                case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM:
@@ -581,13 +587,15 @@ public class EnabledNetworkModePreferenceController extends
                case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
                    setSelectedEntry(TelephonyManagerConstants
                            .NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA);
                    setSummary(mContext.getString(R.string.network_5G)
                            + mContext.getString(R.string.network_recommended));
                    setSummary(getResourcesForSubId().getString(R.string.network_5G)
                            + getResourcesForSubId().getString(
                            R.string.network_recommended));
                    break;
                case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO:
                    setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO);
                    setSummary(mContext.getString(R.string.network_5G)
                            + mContext.getString(R.string.network_recommended));
                    setSummary(getResourcesForSubId().getString(R.string.network_5G)
                            + getResourcesForSubId().getString(
                            R.string.network_recommended));
                    break;
                case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA:
                    setSelectedEntry(
@@ -597,13 +605,15 @@ public class EnabledNetworkModePreferenceController extends
                            || MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
                        setSummary(R.string.network_global);
                    } else {
                        setSummary(mContext.getString(R.string.network_5G)
                                + mContext.getString(R.string.network_recommended));
                        setSummary(getResourcesForSubId().getString(R.string.network_5G)
                                + getResourcesForSubId().getString(
                                R.string.network_recommended));
                    }
                    break;
                default:
                    setSummary(
                            mContext.getString(R.string.mobile_network_mode_error, networkMode));
                            getResourcesForSubId().getString(
                                    R.string.mobile_network_mode_error, networkMode));
            }
        }

@@ -613,7 +623,7 @@ public class EnabledNetworkModePreferenceController extends
         * @param networkType an LTE network mode without 5G.
         * @return the corresponding network mode with 5G.
         */
        private static int addNrToLteNetworkType(int networkType) {
        private int addNrToLteNetworkType(int networkType) {
            switch(networkType) {
                case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY:
                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE;
@@ -647,7 +657,7 @@ public class EnabledNetworkModePreferenceController extends
         * @param networkType an 5G network mode.
         * @return the corresponding network mode without 5G.
         */
        private static int reduceNrToLteNetworkType(int networkType) {
        private int reduceNrToLteNetworkType(int networkType) {
            switch(networkType) {
                case TelephonyManagerConstants.NETWORK_MODE_NR_LTE:
                    return TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY;
@@ -689,8 +699,8 @@ public class EnabledNetworkModePreferenceController extends
        private void add5gEntry(int value) {
            boolean isNRValue = value >= TelephonyManagerConstants.NETWORK_MODE_NR_ONLY;
            if (showNrList() && isNRValue) {
                mEntries.add(mContext.getString(R.string.network_5G)
                        + mContext.getString(R.string.network_recommended));
                mEntries.add(getResourcesForSubId().getString(R.string.network_5G)
                        + getResourcesForSubId().getString(R.string.network_recommended));
                mEntriesValue.add(value);
                mIs5gEntryDisplayed = true;
            } else {
@@ -706,7 +716,7 @@ public class EnabledNetworkModePreferenceController extends
            Log.d(LOG_TAG, "addGlobalEntry. "
                    + " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily
                    + " allowed5GNetworkType: " + mAllowed5gNetworkType);
            mEntries.add(mContext.getString(R.string.network_global));
            mEntries.add(getResourcesForSubId().getString(R.string.network_global));
            if (showNrList()) {
                value = addNrToLteNetworkType(value);
            }
@@ -722,9 +732,9 @@ public class EnabledNetworkModePreferenceController extends
         */
        private void addLteEntry(int value) {
            if (showNrList()) {
                mEntries.add(mContext.getString(R.string.network_lte_pure));
                mEntries.add(getResourcesForSubId().getString(R.string.network_lte_pure));
            } else {
                mEntries.add(mContext.getString(R.string.network_lte));
                mEntries.add(getResourcesForSubId().getString(R.string.network_lte));
            }
            mEntriesValue.add(value);
        }
@@ -734,25 +744,25 @@ public class EnabledNetworkModePreferenceController extends
         */
        private void add4gEntry(int value) {
            if (showNrList()) {
                mEntries.add(mContext.getString(R.string.network_4G_pure));
                mEntries.add(getResourcesForSubId().getString(R.string.network_4G_pure));
            } else {
                mEntries.add(mContext.getString(R.string.network_4G));
                mEntries.add(getResourcesForSubId().getString(R.string.network_4G));
            }
            mEntriesValue.add(value);
        }

        private void add3gEntry(int value) {
            mEntries.add(mContext.getString(R.string.network_3G));
            mEntries.add(getResourcesForSubId().getString(R.string.network_3G));
            mEntriesValue.add(value);
        }

        private void add2gEntry(int value) {
            mEntries.add(mContext.getString(R.string.network_2G));
            mEntries.add(getResourcesForSubId().getString(R.string.network_2G));
            mEntriesValue.add(value);
        }

        private void add1xEntry(int value) {
            mEntries.add(mContext.getString(R.string.network_1x));
            mEntries.add(getResourcesForSubId().getString(R.string.network_1x));
            mEntriesValue.add(value);
        }

@@ -800,7 +810,7 @@ public class EnabledNetworkModePreferenceController extends
        }

        private void setSummary(int summaryResId) {
            setSummary(mContext.getString(summaryResId));
            setSummary(getResourcesForSubId().getString(summaryResId));
        }

        private void setSummary(String summary) {
+10 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.network.telephony;

import android.content.Context;
import android.content.res.Resources;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
@@ -74,4 +75,13 @@ public abstract class TelephonyBasePreferenceController extends BasePreferenceCo
                mContext.getSystemService(CarrierConfigManager.class);
        return carrierConfigMgr.getConfigForSubId(subId);
    }

    /**
     * Returns the resources associated with Subscription.
     *
     * @return Resources associated with Subscription.
     */
    public Resources getResourcesForSubId() {
        return SubscriptionManager.getResourcesForSubId(mContext, mSubId);
    }
}
+10 −10
Original line number Diff line number Diff line
@@ -363,43 +363,43 @@ public class EnabledNetworkModePreferenceControllerTest {

    @Test
    public void checkResource_stringArrayLength() {
        String[] entryValues = mContext.getResources().getStringArray(
        String[] entryValues = mController.getResourcesForSubId().getStringArray(
                R.array.enabled_networks_cdma_values);
        assertEquals(4, entryValues.length);

        entryValues = mContext.getResources().getStringArray(
        entryValues = mController.getResourcesForSubId().getStringArray(
                R.array.enabled_networks_cdma_no_lte_values);
        assertEquals(2, entryValues.length);

        entryValues = mContext.getResources().getStringArray(
        entryValues = mController.getResourcesForSubId().getStringArray(
                R.array.enabled_networks_cdma_only_lte_values);
        assertEquals(2, entryValues.length);

        entryValues = mContext.getResources().getStringArray(
        entryValues = mController.getResourcesForSubId().getStringArray(
                R.array.enabled_networks_tdscdma_values);
        assertEquals(3, entryValues.length);

        entryValues = mContext.getResources().getStringArray(
        entryValues = mController.getResourcesForSubId().getStringArray(
                R.array.enabled_networks_except_gsm_lte_values);
        assertEquals(1, entryValues.length);

        entryValues = mContext.getResources().getStringArray(
        entryValues = mController.getResourcesForSubId().getStringArray(
                R.array.enabled_networks_except_gsm_values);
        assertEquals(2, entryValues.length);

        entryValues = mContext.getResources().getStringArray(
        entryValues = mController.getResourcesForSubId().getStringArray(
                R.array.enabled_networks_except_lte_values);
        assertEquals(2, entryValues.length);

        entryValues = mContext.getResources().getStringArray(
        entryValues = mController.getResourcesForSubId().getStringArray(
                R.array.enabled_networks_values);
        assertEquals(3, entryValues.length);

        entryValues = mContext.getResources().getStringArray(
        entryValues = mController.getResourcesForSubId().getStringArray(
                R.array.enabled_networks_values);
        assertEquals(3, entryValues.length);

        entryValues = mContext.getResources().getStringArray(
        entryValues = mController.getResourcesForSubId().getStringArray(
                R.array.preferred_network_mode_values_world_mode);
        assertEquals(3, entryValues.length);
    }
+21 −13
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License
 * limitations under the License.
 */

package com.android.settings.network.telephony;
@@ -20,13 +20,17 @@ import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.os.Looper;
import android.telephony.SubscriptionManager;

import androidx.lifecycle.LifecycleOwner;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.android.settingslib.core.lifecycle.Lifecycle;

@@ -35,10 +39,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;

@RunWith(RobolectricTestRunner.class)
@RunWith(AndroidJUnit4.class)
public class DisabledSubscriptionControllerTest {

    private static final String KEY = "disabled_subscription_category";
@@ -47,22 +49,28 @@ public class DisabledSubscriptionControllerTest {
    @Mock
    private SubscriptionManager mSubscriptionManager;
    @Mock
    private PreferenceScreen mScreen;
    private Lifecycle mLifecycle;

    private PreferenceScreen mScreen;
    private PreferenceManager mPreferenceManager;
    private PreferenceCategory mCategory;
    private Context mContext;
    private Lifecycle mLifecycle;
    private DisabledSubscriptionController mController;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mContext = spy(RuntimeEnvironment.application);
        LifecycleOwner lifecycleOwner = () -> mLifecycle;
        mLifecycle = new Lifecycle(lifecycleOwner);
        doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
        mContext = spy(ApplicationProvider.getApplicationContext());
        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
        if (Looper.myLooper() == null) {
            Looper.prepare();
        }
        mPreferenceManager = new PreferenceManager(mContext);
        mScreen = mPreferenceManager.createPreferenceScreen(mContext);
        mCategory = new PreferenceCategory(mContext);
        doReturn(mCategory).when(mScreen).findPreference(KEY);
        mCategory.setKey(KEY);
        mScreen.addPreference(mCategory);

        mController = new DisabledSubscriptionController(mContext, KEY);
        mController.init(mLifecycle, SUB_ID);
    }