Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a4e2afb6 authored by Jack Yu's avatar Jack Yu
Browse files

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
parent ef212499
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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) {