Migrate Mobile Network Setting
Bug: 111453847
Test: existing telephony test
Change-Id: Ia6ce09e00b18c0138c26fd1353339fe2f8c2639d
diff --git a/src/com/android/phone/CdmaOptions.java b/src/com/android/phone/CdmaOptions.java
index 93c9879..47c0eb4 100644
--- a/src/com/android/phone/CdmaOptions.java
+++ b/src/com/android/phone/CdmaOptions.java
@@ -24,12 +24,12 @@
import android.preference.PreferenceScreen;
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
+import android.telephony.TelephonyManager;
import android.text.TextUtils;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -53,15 +53,9 @@
private PreferenceFragment mPrefFragment;
private PreferenceScreen mPrefScreen;
- private Phone mPhone;
+ private int mSubId;
- // Constructor for CdmaOptionsTest, since PreferenceScreen is final and cannot be mocked
- @VisibleForTesting
- public CdmaOptions(Phone phone) {
- mPhone = phone;
- }
-
- public CdmaOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen, Phone phone) {
+ public CdmaOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen, int subId) {
mPrefFragment = prefFragment;
mPrefScreen = prefScreen;
mPrefFragment.addPreferencesFromResource(R.xml.cdma_options);
@@ -75,19 +69,18 @@
mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
- update(phone);
+ updateSubscriptionId(subId);
}
- // Unlike mPrefFragment or mPrefScreen, mPhone may change during lifecycle of CdmaOptions.
- // For example, a new sim card is inserted. When that happens, we update CdmaOptions with new
- // phone.
- protected void update(Phone phone) {
- mPhone = phone;
+ protected void updateSubscriptionId(int subId) {
+ mSubId = subId;
+ int phoneType = TelephonyManager.from(mPrefFragment.getContext())
+ .createForSubscriptionId(mSubId).getPhoneType();
PersistableBundle carrierConfig =
- PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
+ PhoneGlobals.getInstance().getCarrierConfigForSubId(mSubId);
// Some CDMA carriers want the APN settings.
- boolean addAPNExpand = shouldAddApnExpandPreference(carrierConfig);
+ boolean addAPNExpand = shouldAddApnExpandPreference(phoneType, carrierConfig);
boolean addCdmaSubscription =
deviceSupportsNvAndRuim();
// Read platform settings for carrier settings
@@ -119,7 +112,7 @@
final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
// This will setup the Home and Search affordance
intent.putExtra(":settings:show_fragment_as_subsetting", true);
- intent.putExtra("sub_id", mPhone.getSubId());
+ intent.putExtra("sub_id", mSubId);
mPrefFragment.startActivity(intent);
return true;
}
@@ -150,12 +143,9 @@
* carrier config
*/
@VisibleForTesting
- public boolean shouldAddApnExpandPreference(PersistableBundle config) {
- if (mPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
- && config.getBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL)) {
- return true;
- }
- return false;
+ public static boolean shouldAddApnExpandPreference(int phoneType, PersistableBundle config) {
+ return phoneType == PhoneConstants.PHONE_TYPE_CDMA
+ && config.getBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL);
}
private boolean deviceSupportsNvAndRuim() {