Merge "Add null-check for subInfo.getCountryIso."
diff --git a/Android.mk b/Android.mk
index 775d795..7b0ec86 100644
--- a/Android.mk
+++ b/Android.mk
@@ -39,7 +39,8 @@
LOCAL_AAPT_FLAGS := \
--extra-packages com.android.phone.common \
- --extra-packages com.android.services.telephony.sip
+ --extra-packages com.android.services.telephony.sip \
+ --legacy \
LOCAL_PACKAGE_NAME := TeleService
LOCAL_PRIVATE_PLATFORM_APIS := true
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 5a4026d..bf52501 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -352,15 +352,9 @@
.createForSubscriptionId(mPhone.getSubId());
PersistableBundle carrierConfig =
PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
- boolean editableWfcRoamingMode = true;
- boolean useWfcHomeModeForRoaming = false;
- if (carrierConfig != null) {
- editableWfcRoamingMode = carrierConfig.getBoolean(
- CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL);
- useWfcHomeModeForRoaming = carrierConfig.getBoolean(
+ boolean useWfcHomeModeForRoaming = carrierConfig.getBoolean(
CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL,
false);
- }
if (mImsMgr.isVtEnabledByPlatform() && mImsMgr.isVtProvisionedOnDevice()
&& (carrierConfig.getBoolean(
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
@@ -404,8 +398,8 @@
int resId = com.android.internal.R.string.wifi_calling_off_summary;
if (mImsMgr.isWfcEnabledByUser()) {
boolean isRoaming = telephonyManager.isNetworkRoaming();
- boolean wfcRoamingEnabled = editableWfcRoamingMode && !useWfcHomeModeForRoaming;
- int wfcMode = mImsMgr.getWfcMode(isRoaming && wfcRoamingEnabled);
+ // Also check carrier config for roaming mode
+ int wfcMode = mImsMgr.getWfcMode(isRoaming && !useWfcHomeModeForRoaming);
switch (wfcMode) {
case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index da478fa..8b74af4 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -57,6 +57,7 @@
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.SubscriptionInfoUpdater;
import com.android.internal.telephony.TelephonyPermissions;
+import com.android.internal.util.ArrayUtils;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.IndentingPrintWriter;
@@ -572,15 +573,22 @@
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT |
Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND |
Intent.FLAG_RECEIVER_FOREGROUND);
- // Include subId/carrier id extra only if SIM records are loaded
- TelephonyManager telephonyManager = TelephonyManager.from(mContext);
- int simApplicationState = telephonyManager.getSimApplicationState();
- if (addSubIdExtra && (simApplicationState != TelephonyManager.SIM_STATE_UNKNOWN
- && simApplicationState != TelephonyManager.SIM_STATE_NOT_READY)) {
- SubscriptionManager.putPhoneIdAndSubIdExtra(intent, phoneId);
- intent.putExtra(TelephonyManager.EXTRA_SPECIFIC_CARRIER_ID,
- getSpecificCarrierIdForPhoneId(phoneId));
- intent.putExtra(TelephonyManager.EXTRA_CARRIER_ID, getCarrierIdForPhoneId(phoneId));
+ if (addSubIdExtra) {
+ int simApplicationState = TelephonyManager.SIM_STATE_UNKNOWN;
+ int[] subIds = SubscriptionManager.getSubId(phoneId);
+ if (!ArrayUtils.isEmpty(subIds)) {
+ TelephonyManager telMgr = TelephonyManager.from(mContext)
+ .createForSubscriptionId(subIds[0]);
+ simApplicationState = telMgr.getSimApplicationState();
+ }
+ // Include subId/carrier id extra only if SIM records are loaded
+ if (simApplicationState != TelephonyManager.SIM_STATE_UNKNOWN
+ && simApplicationState != TelephonyManager.SIM_STATE_NOT_READY) {
+ SubscriptionManager.putPhoneIdAndSubIdExtra(intent, phoneId);
+ intent.putExtra(TelephonyManager.EXTRA_SPECIFIC_CARRIER_ID,
+ getSpecificCarrierIdForPhoneId(phoneId));
+ intent.putExtra(TelephonyManager.EXTRA_CARRIER_ID, getCarrierIdForPhoneId(phoneId));
+ }
}
intent.putExtra(CarrierConfigManager.EXTRA_SLOT_INDEX, phoneId);
log("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId);
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 1ba1edd..87b2033 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -1871,10 +1871,10 @@
}
@Override
- public int getDataState(int subId) {
+ public int getDataState() {
final long identity = Binder.clearCallingIdentity();
try {
- final Phone phone = getPhone(subId);
+ Phone phone = getPhone(mSubscriptionController.getDefaultDataSubId());
if (phone != null) {
return PhoneConstantConversions.convertDataState(phone.getDataConnectionState());
} else {
@@ -1887,10 +1887,10 @@
}
@Override
- public int getDataActivity(int subId) {
+ public int getDataActivity() {
final long identity = Binder.clearCallingIdentity();
try {
- final Phone phone = getPhone(subId);
+ Phone phone = getPhone(mSubscriptionController.getDefaultDataSubId());
if (phone != null) {
return DefaultPhoneNotifier.convertDataActivityState(phone.getDataActivityState());
} else {