Update setCdmaRoaming/SubscriptionMode APIs
Test: atest TelephonyManagerTest
Test: make RunSettingsRoboTests
Bug: 171884158
Bug: 171883908
Change-Id: Ib78149c41612d56a46974621eb71b5e0cfe97c5a
diff --git a/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java b/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java
index 76b9ad0..4959565 100644
--- a/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java
+++ b/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java
@@ -67,13 +67,14 @@
public boolean onPreferenceChange(Preference preference, Object object) {
final int newMode = Integer.parseInt((String) object);
//TODO(b/117611981): only set it in one place
- if (mTelephonyManager.setCdmaSubscriptionMode(newMode)) {
+ try {
+ mTelephonyManager.setCdmaSubscriptionMode(newMode);
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.CDMA_SUBSCRIPTION_MODE, newMode);
return true;
+ } catch (IllegalStateException e) {
+ return false;
}
-
- return false;
}
@VisibleForTesting
diff --git a/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java b/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java
index 13324fc..2b0c221 100644
--- a/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java
+++ b/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java
@@ -63,13 +63,14 @@
public boolean onPreferenceChange(Preference preference, Object object) {
int newMode = Integer.parseInt((String) object);
//TODO(b/117611981): only set it in one place
- if (mTelephonyManager.setCdmaRoamingMode(newMode)) {
+ try {
+ mTelephonyManager.setCdmaRoamingMode(newMode);
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.CDMA_ROAMING_MODE, newMode);
return true;
+ } catch (IllegalStateException e) {
+ return false;
}
-
- return false;
}
private void resetCdmaRoamingModeToDefault() {
diff --git a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceControllerTest.java
index bcc82ba..c6d3868 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceControllerTest.java
@@ -18,7 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -86,8 +85,6 @@
@Test
public void onPreferenceChange_selectNV_returnNVMode() {
- doReturn(true).when(mTelephonyManager).setCdmaSubscriptionMode(anyInt());
-
mController.onPreferenceChange(mPreference, Integer.toString(
TelephonyManager.CDMA_SUBSCRIPTION_NV));
diff --git a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceControllerTest.java
index 1a7fd86..2352b0f 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceControllerTest.java
@@ -18,7 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -92,7 +91,6 @@
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.CDMA_ROAMING_MODE,
TelephonyManager.CDMA_ROAMING_MODE_ANY);
- doReturn(true).when(mTelephonyManager).setCdmaRoamingMode(anyInt());
mController.onPreferenceChange(mPreference,
Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_HOME));