From a4e2afb6a96c5a2350586df3d6884dc80d87f2c4 Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Tue, 15 Nov 2016 12:41:12 -0800 Subject: Added configuration for VT downgrade/tear down when data disabled Added a new flag that allows carriers to ignore data disabled (e.g. data reaches limit or user disables data) so VT calls will not be downgraded/torn down and VT service will not be disabled. bug: 32880745 Merged-In: I8852d1f636d7cc73802119666b902b7df6a39e72 Change-Id: I977f1aa511c59f32446b4a76de3c6da54500adc1 --- .../android/internal/telephony/imsphone/ImsPhoneCallTracker.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java index 14a44d7a1..fe3a86aaf 100644 --- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java @@ -268,6 +268,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { 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 @@ -571,6 +572,8 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { 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); @@ -2728,8 +2731,14 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { 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) { -- cgit v1.2.3