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

Commit aec27a62 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Mms: Add support for sending and receiving mms when mobile data is off."

parents 6178f209 8890d7ce
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -574,8 +574,19 @@ public class DcTracker extends DcTrackerBase {
     */
    @Override
    public boolean getAnyDataEnabled() {
        return getAnyDataEnabled(false);
    }

    private boolean getAnyDataEnabled(boolean enableMmsData) {
        synchronized (mDataEnabledLock) {
            if (!(mInternalDataEnabled && mUserDataEnabled && sPolicyDataEnabled)) return false;
            if (!(mInternalDataEnabled && (mUserDataEnabled || enableMmsData)
                    && sPolicyDataEnabled)) {
                log(String.format("getAnyDataEnabled data disabled: mInternalDataEnabled=%b "
                        + "mUserDataEnabled=%b enableMmsData=%b sPolicyDataEnabled=%b",
                        mInternalDataEnabled, mUserDataEnabled,
                        enableMmsData, sPolicyDataEnabled));
                return false;
            }
            for (ApnContext apnContext : mApnContexts.values()) {
                // Make sure we don't have a context that is going down
                // and is explicitly disabled.
@@ -748,8 +759,15 @@ public class DcTracker extends DcTrackerBase {
            }
        }

        // If set the special property, enable mms data even if mobile data is turned off.
        boolean enableMmsData = false;
        if (apnContext.getDataProfileType().equals(PhoneConstants.APN_TYPE_MMS)) {
            enableMmsData = mPhone.getContext().getResources().getBoolean(
                    com.android.internal.R.bool.config_setup_mms_data);
        }

        if (apnContext.isConnectable() &&
                isDataAllowed(apnContext) && getAnyDataEnabled() && !isEmergency()) {
                isDataAllowed(apnContext) && getAnyDataEnabled(enableMmsData) && !isEmergency()) {
            if (apnContext.getState() == DctConstants.State.FAILED) {
                if (DBG) log("trySetupData: make a FAILED ApnContext IDLE so its reusable");
                apnContext.setState(DctConstants.State.IDLE);