Remove TelephonyManagerConstants

- Must migrated to TelephonyManager directly
- Except NETWORK_MODE_UNKNOWN not in TelephonyManager, moved to
  newly created NetworkModes
- Move addNrToLteNetworkMode() and reduceNrToLteNetworkMode() to
  NetworkModes and adding tests

Bug: 373771849
Flag: EXEMPT refactor
Test: manual - on sims settings
Test: unit tests
Change-Id: I0781a59905415aa7896510ad086d19da48e8ba37
This commit is contained in:
Chaohui Wang
2024-10-17 15:24:08 +08:00
parent 3b0a93df8b
commit bf5c04e16b
9 changed files with 304 additions and 430 deletions

View File

@@ -0,0 +1,59 @@
/*
* Copyright (C) 2024 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* 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.
*/
package com.android.settings.network.telephony.mode
import android.telephony.TelephonyManager
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.common.truth.Truth.assertThat
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class NetworkModesTest {
@Test
fun addNrToLteNetworkMode_lteOnly() {
val nrNetworkMode =
NetworkModes.addNrToLteNetworkMode(TelephonyManager.NETWORK_MODE_LTE_ONLY)
assertThat(nrNetworkMode).isEqualTo(TelephonyManager.NETWORK_MODE_NR_LTE)
}
@Test
fun addNrToLteNetworkMode_lteCdmaEvdo() {
val nrNetworkMode =
NetworkModes.addNrToLteNetworkMode(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO)
assertThat(nrNetworkMode).isEqualTo(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO)
}
@Test
fun reduceNrToLteNetworkMode_nrLte() {
val lteNetworkMode =
NetworkModes.reduceNrToLteNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE)
assertThat(lteNetworkMode).isEqualTo(TelephonyManager.NETWORK_MODE_LTE_ONLY)
}
@Test
fun reduceNrToLteNetworkMode_nrLteCdmaEvdo() {
val lteNetworkMode =
NetworkModes.reduceNrToLteNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO)
assertThat(lteNetworkMode).isEqualTo(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO)
}
}

View File

@@ -52,7 +52,6 @@ import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.network.CarrierConfigCache;
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
@@ -149,7 +148,7 @@ public class EnabledNetworkModePreferenceControllerTest {
@Test
public void updateState_selectedOn5gItem() {
mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mController.init(SUB_ID, mFragmentManager);
@@ -161,14 +160,13 @@ public class EnabledNetworkModePreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(
TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
}
@UiThreadTest
@Test
public void updateState_disAllowed5g_5gOptionHidden() {
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
mController.init(SUB_ID, mFragmentManager);
@@ -188,7 +186,7 @@ public class EnabledNetworkModePreferenceControllerTest {
@UiThreadTest
@Test
public void updateState_disAllowed5g_selectOn4gOption() {
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
mController.init(SUB_ID, mFragmentManager);
@@ -200,14 +198,13 @@ public class EnabledNetworkModePreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(
TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
}
@UiThreadTest
@Test
public void updateState_NrEnableBoolFalse_5gOptionHidden() {
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA);
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
@@ -221,8 +218,7 @@ public class EnabledNetworkModePreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(
TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
assertThat(mPreference.getEntryValues())
.asList()
.doesNotContain(
@@ -264,14 +260,13 @@ public class EnabledNetworkModePreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(
TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
}
@UiThreadTest
@Test
public void updateState_updateByNetworkMode() {
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
// NETWORK_MODE_TDSCDMA_GSM_WCDMA = RAF_TD_SCDMA | GSM | WCDMA
when(mTelephonyManager.getAllowedNetworkTypesForReason(
@@ -280,14 +275,14 @@ public class EnabledNetworkModePreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
assertThat(mPreference.getSummary()).isEqualTo("3G");
}
@UiThreadTest
@Test
public void updateState_updateByNetworkMode_useDefaultValue() {
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
// NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = LTE | CDMA | EVDO | GSM | WCDMA
when(mTelephonyManager.getAllowedNetworkTypesForReason(
@@ -296,41 +291,41 @@ public class EnabledNetworkModePreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
}
@UiThreadTest
@Test
public void onPreferenceChange_updateSuccess() {
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
doReturn(true).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
RadioAccessFamily.getRafFromNetworkType(
TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
mController.updateState(mPreference);
mController.onViewCreated(new TestLifecycleOwner());
mController.onPreferenceChange(mPreference,
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
}
@UiThreadTest
@Test
public void onPreferenceChange_updateFail() {
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
doReturn(false).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
RadioAccessFamily.getRafFromNetworkType(
TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
mController.updateState(mPreference);
mController.onViewCreated(new TestLifecycleOwner());
mController.onPreferenceChange(mPreference,
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
assertThat(mPreference.getValue()).isNotEqualTo(
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
}
@UiThreadTest
@@ -341,7 +336,7 @@ public class EnabledNetworkModePreferenceControllerTest {
PreferenceScreen screen = preferenceManager.createPreferenceScreen(mContext);
mPreference.setKey(KEY);
screen.addPreference(mPreference);
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
// NETWORK_MODE_TDSCDMA_GSM_WCDMA = RAF_TD_SCDMA | GSM | WCDMA
when(mTelephonyManager.getAllowedNetworkTypesForReason(
@@ -353,7 +348,7 @@ public class EnabledNetworkModePreferenceControllerTest {
mLifecycle.handleLifecycleEvent(ON_START);
assertThat(Integer.parseInt(mPreference.getValue())).isEqualTo(
TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
assertThat(mPreference.getSummary()).isEqualTo("3G");
}
@@ -412,20 +407,19 @@ public class EnabledNetworkModePreferenceControllerTest {
}
private void mockEnabledNetworkMode(int networkMode) {
if (networkMode == TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA) {
if (networkMode == TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA) {
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
} else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA
|| networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA) {
} else if (networkMode == TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA
|| networkMode == TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA) {
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true);
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true);
} else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA) {
} else if (networkMode == TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA) {
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
} else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA
|| networkMode
== TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA) {
} else if (networkMode == TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA
|| networkMode == TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA) {
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true);
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true);

View File

@@ -40,7 +40,6 @@ import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.network.CarrierConfigCache;
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
import com.android.settings.testutils.ResourcesUtils;
import org.junit.Before;
@@ -99,7 +98,7 @@ public class PreferredNetworkModePreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
assertThat(mPreference.getSummary()).isEqualTo(
ResourcesUtils.getResourcesString(mContext,
"preferred_network_mode_tdscdma_gsm_wcdma_summary"));
@@ -108,11 +107,10 @@ public class PreferredNetworkModePreferenceControllerTest {
@Test
public void onPreferenceChange_updateNetworkMode() {
mController.onPreferenceChange(mPreference,
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA));
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_TDSCDMA));
verify(mTelephonyManager, times(1)).setAllowedNetworkTypesForReason(
TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER,
RadioAccessFamily.getRafFromNetworkType(
TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA));
RadioAccessFamily.getRafFromNetworkType(TelephonyManager.NETWORK_MODE_LTE_TDSCDMA));
}
}