Update subscription before broadcasting carrier config changed event
1. Update subscription before broadcasting carrier config changed
event.
2. Fixed crashes
This is same as the reverted ag/20813798.
Bug: 239607619
Test: Manual
Change-Id: I07e20291ba17966640776d1d0fb9c55f4eb4cbd0
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index c4449d8..ff4dcfe 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -394,7 +394,7 @@
private AppOpsManager mAppOps;
private PackageManager mPm;
private MainThreadHandler mMainThreadHandler;
- private SubscriptionController mSubscriptionController;
+ private final SubscriptionController mSubscriptionController;
private SharedPreferences mTelephonySharedPreferences;
private PhoneConfigurationManager mPhoneConfigurationManager;
private final RadioInterfaceCapabilityController mRadioInterfaceCapabilities;
@@ -2410,7 +2410,11 @@
mAppOps = (AppOpsManager)app.getSystemService(Context.APP_OPS_SERVICE);
mPm = app.getSystemService(PackageManager.class);
mMainThreadHandler = new MainThreadHandler();
- mSubscriptionController = SubscriptionController.getInstance();
+ if (!PhoneFactory.isSubscriptionManagerServiceEnabled()) {
+ mSubscriptionController = SubscriptionController.getInstance();
+ } else {
+ mSubscriptionController = null;
+ }
mTelephonySharedPreferences =
PreferenceManager.getDefaultSharedPreferences(mApp);
mNetworkScanRequestTracker = new NetworkScanRequestTracker();
@@ -6730,11 +6734,15 @@
return false;
}
- log("setAllowedNetworkTypesForReason: " + reason + " value: "
+ log("setAllowedNetworkTypesForReason: subId=" + subId + ", reason=" + reason + " value: "
+ TelephonyManager.convertNetworkTypeBitmaskToString(allowedNetworkTypes));
+ Phone phone = getPhone(subId);
+ if (phone == null) {
+ return false;
+ }
- if (allowedNetworkTypes == getPhoneFromSubId(subId).getAllowedNetworkTypes(reason)) {
+ if (allowedNetworkTypes == phone.getAllowedNetworkTypes(reason)) {
log("setAllowedNetworkTypesForReason: " + reason + "does not change value");
return true;
}