Merge "Pass cause and precise call fail causes for IMS calls"
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
index 3cc0aa7..d9e7f14 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
@@ -280,6 +280,7 @@
private boolean mSwitchingFgAndBgCalls = false;
private ImsCall mCallExpectedToResume = null;
private boolean mAllowEmergencyVideoCalls = false;
+ private boolean mIgnoreDataEnabledChangedForVideoCalls = false;
/**
* Listeners to changes in the phone state. Intended for use by other interested IMS components
@@ -827,6 +828,8 @@
CarrierConfigManager.KEY_SUPPORT_DOWNGRADE_VT_TO_AUDIO_BOOL);
mNotifyHandoverVideoFromWifiToLTE = carrierConfig.getBoolean(
CarrierConfigManager.KEY_NOTIFY_VT_HANDOVER_TO_WIFI_FAILURE_BOOL);
+ mIgnoreDataEnabledChangedForVideoCalls = carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS);
String[] mappings = carrierConfig
.getStringArray(CarrierConfigManager.KEY_IMS_REASONINFO_MAPPING_STRING_ARRAY);
@@ -3058,8 +3061,14 @@
private void onDataEnabledChanged(boolean enabled, int reason) {
log("onDataEnabledChanged: enabled=" + enabled + ", reason=" + reason);
+
ImsManager.getInstance(mPhone.getContext(), mPhone.getPhoneId()).setDataEnabled(enabled);
+ if (mIgnoreDataEnabledChangedForVideoCalls) {
+ log("Ignore data " + ((enabled) ? "enabled" : "disabled") + " due to carrier policy.");
+ return;
+ }
+
if (!enabled) {
int reasonCode;
if (reason == DataEnabledSettings.REASON_POLICY_DATA_ENABLED) {