Device didn't renew the allowed network types
Bug: 189185335
Test: build pass.
atest PhoneInterfaceManagerTest (PASS)
Change-Id: Ic041e204fd488f88d340471c8489cce92f11bf24
Merged-In: Ic041e204fd488f88d340471c8489cce92f11bf24
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index b03d6f3..8d946f5 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -134,6 +134,7 @@
import com.android.ims.ImsManager;
import com.android.ims.internal.IImsServiceFeatureCallback;
import com.android.ims.rcs.uce.eab.EabUtil;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.CallForwardInfo;
import com.android.internal.telephony.CallManager;
import com.android.internal.telephony.CallStateException;
@@ -7303,13 +7304,7 @@
getDefaultDataEnabled());
setNetworkSelectionModeAutomatic(subId);
Phone phone = getPhone(subId);
- if (phone != null) {
- SubscriptionManager.setSubscriptionProperty(subId,
- SubscriptionManager.ALLOWED_NETWORK_TYPES,
- "user=" + RadioAccessFamily.getRafFromNetworkType(
- RILConstants.PREFERRED_NETWORK_MODE));
- phone.loadAllowedNetworksFromSubscriptionDatabase();
- }
+ cleanUpAllowedNetworkTypes(phone, subId);
setDataRoamingEnabled(subId, getDefaultDataRoamingEnabled(subId));
CarrierInfoManager.deleteAllCarrierKeysForImsiEncryption(mApp);
}
@@ -7335,6 +7330,21 @@
}
}
+ @VisibleForTesting
+ void cleanUpAllowedNetworkTypes(Phone phone, int subId) {
+ if (phone == null || !SubscriptionManager.isUsableSubscriptionId(subId)) {
+ return;
+ }
+ long defaultNetworkType = RadioAccessFamily.getRafFromNetworkType(
+ RILConstants.PREFERRED_NETWORK_MODE);
+ SubscriptionManager.setSubscriptionProperty(subId,
+ SubscriptionManager.ALLOWED_NETWORK_TYPES,
+ "user=" + defaultNetworkType);
+ phone.loadAllowedNetworksFromSubscriptionDatabase();
+ phone.setAllowedNetworkTypes(TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER,
+ defaultNetworkType, null);
+ }
+
private void cleanUpSmsRawTable(Context context) {
ContentResolver resolver = context.getContentResolver();
Uri uri = Uri.withAppendedPath(Telephony.Sms.CONTENT_URI, "raw/permanentDelete");