[Settings] Add permission for #getCdmaRoamingMode and use value from TelephonyManager
Bug: 145788881
Test: make
Change-Id: Idf237f008af2ab6cab07689f1f2a602f6a98c4f1
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 6ee6a87..cb53aad 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -38,6 +38,7 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
+ <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/>
diff --git a/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java b/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java
index e6c1c22..ac068c1 100644
--- a/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java
+++ b/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.os.SystemProperties;
import android.provider.Settings;
+import android.telephony.TelephonyManager;
import android.text.TextUtils;
import androidx.annotation.VisibleForTesting;
@@ -57,7 +58,7 @@
listPreference.setVisible(getAvailabilityStatus() == AVAILABLE);
final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.CDMA_SUBSCRIPTION_MODE, Phone.PREFERRED_CDMA_SUBSCRIPTION);
- if (mode != Phone.CDMA_SUBSCRIPTION_UNKNOWN) {
+ if (mode != TelephonyManager.CDMA_SUBSCRIPTION_UNKNOWN) {
listPreference.setValue(Integer.toString(mode));
}
}
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 d94ffae..bcc82ba 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
@@ -34,8 +34,6 @@
import androidx.preference.ListPreference;
import androidx.preference.PreferenceManager;
-import com.android.internal.telephony.Phone;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -90,33 +88,37 @@
public void onPreferenceChange_selectNV_returnNVMode() {
doReturn(true).when(mTelephonyManager).setCdmaSubscriptionMode(anyInt());
- mController.onPreferenceChange(mPreference, Integer.toString(Phone.CDMA_SUBSCRIPTION_NV));
+ mController.onPreferenceChange(mPreference, Integer.toString(
+ TelephonyManager.CDMA_SUBSCRIPTION_NV));
assertThat(Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.CDMA_SUBSCRIPTION_MODE,
- Phone.CDMA_SUBSCRIPTION_RUIM_SIM)).isEqualTo(Phone.CDMA_SUBSCRIPTION_NV);
+ TelephonyManager.CDMA_SUBSCRIPTION_RUIM_SIM)).isEqualTo(
+ TelephonyManager.CDMA_SUBSCRIPTION_NV);
}
@Test
public void updateState_stateRUIM_displayRUIM() {
Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.CDMA_SUBSCRIPTION_MODE, Phone.CDMA_SUBSCRIPTION_NV);
+ Settings.Global.CDMA_SUBSCRIPTION_MODE, TelephonyManager.CDMA_SUBSCRIPTION_NV);
mController.updateState(mPreference);
- assertThat(mPreference.getValue()).isEqualTo(Integer.toString(Phone.CDMA_SUBSCRIPTION_NV));
+ assertThat(mPreference.getValue()).isEqualTo(Integer.toString(
+ TelephonyManager.CDMA_SUBSCRIPTION_NV));
}
@Test
public void updateState_stateUnknown_doNothing() {
- mPreference.setValue(Integer.toString(Phone.CDMA_SUBSCRIPTION_NV));
+ mPreference.setValue(Integer.toString(TelephonyManager.CDMA_SUBSCRIPTION_NV));
Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.CDMA_SUBSCRIPTION_MODE, Phone.CDMA_SUBSCRIPTION_UNKNOWN);
+ Settings.Global.CDMA_SUBSCRIPTION_MODE, TelephonyManager.CDMA_SUBSCRIPTION_UNKNOWN);
mController.updateState(mPreference);
// Still NV mode
- assertThat(mPreference.getValue()).isEqualTo(Integer.toString(Phone.CDMA_SUBSCRIPTION_NV));
+ assertThat(mPreference.getValue()).isEqualTo(Integer.toString(
+ TelephonyManager.CDMA_SUBSCRIPTION_NV));
}
@Test