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

Commit 5247c8ba authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Moved data settings to phone"

parents 34a47610 5be1215c
Loading
Loading
Loading
Loading
+4 −10
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ import android.os.PersistableBundle;
import android.os.Registrant;
import android.os.RegistrantList;
import android.os.SystemProperties;
import android.telephony.AccessNetworkConstants.TransportType;
import android.telephony.CarrierConfigManager;
import android.telephony.CellLocation;
import android.telephony.DisconnectCause;
@@ -173,9 +172,8 @@ public class GsmCdmaCallTracker extends CallTracker {
            mCi.unregisterForCallWaitingInfo(this);
            // Prior to phone switch to GSM, if CDMA has any emergency call
            // data will be in disabled state, after switching to GSM enable data.
            if (mIsInEmergencyCall && mPhone.getDcTracker(TransportType.WWAN) != null) {
                mPhone.getDcTracker(TransportType.WWAN).setInternalDataEnabled(true);

            if (mIsInEmergencyCall) {
                mPhone.getDataEnabledSettings().setInternalDataEnabled(true);
            }
        } else {
            mConnections = new GsmCdmaConnection[MAX_CONNECTIONS_CDMA];
@@ -376,9 +374,7 @@ public class GsmCdmaCallTracker extends CallTracker {
    //CDMA
    public void setIsInEmergencyCall() {
        mIsInEmergencyCall = true;
        if (mPhone.getDcTracker(TransportType.WWAN) != null) {
            mPhone.getDcTracker(TransportType.WWAN).setInternalDataEnabled(false);
        }
        mPhone.getDataEnabledSettings().setInternalDataEnabled(false);
        mPhone.notifyEmergencyCallRegistrants(true);
        mPhone.sendEmergencyCallStateChange(true);
    }
@@ -1638,9 +1634,7 @@ public class GsmCdmaCallTracker extends CallTracker {
            }
            if (!inEcm) {
                // Re-initiate data connection
                if (mPhone.getDcTracker(TransportType.WWAN) != null) {
                    mPhone.getDcTracker(TransportType.WWAN).setInternalDataEnabled(true);
                }
                mPhone.getDataEnabledSettings().setInternalDataEnabled(true);
                mPhone.notifyEmergencyCallRegistrants(false);
            }
            mPhone.sendEmergencyCallStateChange(false);
+39 −21
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.cdma.CdmaMmiCode;
import com.android.internal.telephony.cdma.CdmaSubscriptionSourceManager;
import com.android.internal.telephony.cdma.EriManager;
import com.android.internal.telephony.dataconnection.DataEnabledSettings;
import com.android.internal.telephony.dataconnection.DcTracker;
import com.android.internal.telephony.dataconnection.TransportManager;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
@@ -208,6 +209,8 @@ public class GsmCdmaPhone extends Phone {
    private CarrierKeyDownloadManager mCDM;
    private CarrierInfoManager mCIM;

    private final SettingsObserver mSettingsObserver;

    // Constructors

    public GsmCdmaPhone(Context context, CommandsInterface ci, PhoneNotifier notifier, int phoneId,
@@ -238,6 +241,9 @@ public class GsmCdmaPhone extends Phone {
        mEmergencyNumberTracker = mTelephonyComponentFactory
                .inject(EmergencyNumberTracker.class.getName()).makeEmergencyNumberTracker(
                this, this.mCi);
        mDataEnabledSettings = mTelephonyComponentFactory
                .inject(DataEnabledSettings.class.getName()).makeDataEnabledSettings(this);

        // DcTracker uses SST so needs to be created after it is instantiated
        for (int transport : mTransportManager.getAvailableTransports()) {
            mDcTrackers.put(transport, mTelephonyComponentFactory.inject(DcTracker.class.getName())
@@ -247,11 +253,23 @@ public class GsmCdmaPhone extends Phone {
        mCarrierResolver = mTelephonyComponentFactory.inject(CarrierResolver.class.getName())
                .makeCarrierResolver(this);

        getCarrierActionAgent().registerForCarrierAction(
                CarrierActionAgent.CARRIER_ACTION_SET_METERED_APNS_ENABLED, this,
                EVENT_SET_CARRIER_DATA_ENABLED, null, false);

        mSST.registerForNetworkAttached(this, EVENT_REGISTERED_TO_NETWORK, null);
        mDeviceStateMonitor = mTelephonyComponentFactory.inject(DeviceStateMonitor.class.getName())
                .makeDeviceStateMonitor(this);

        mSST.registerForVoiceRegStateOrRatChanged(this, EVENT_VRS_OR_RAT_CHANGED, null);

        mSettingsObserver = new SettingsObserver(context, this);
        mSettingsObserver.observe(
                Settings.Global.getUriFor(Settings.Global.DEVICE_PROVISIONED),
                EVENT_DEVICE_PROVISIONED_CHANGE);
        mSettingsObserver.observe(
                Settings.Global.getUriFor(Settings.Global.DEVICE_PROVISIONING_MOBILE_DATA_ENABLED),
                EVENT_DEVICE_PROVISIONING_DATA_SETTING_CHANGE);
        logd("GsmCdmaPhone: constructor: sub = " + mPhoneId);
    }

@@ -2128,26 +2146,17 @@ public class GsmCdmaPhone extends Phone {
        mCT.unregisterForCallWaiting(h);
    }

    /**
     * Whether data is enabled by user. Unlike isDataEnabled, this only
     * checks user setting stored in {@link android.provider.Settings.Global#MOBILE_DATA}
     * if not provisioning, or isProvisioningDataEnabled if provisioning.
     */
    @Override
    public boolean isUserDataEnabled() {
        if (getDcTracker(TransportType.WWAN) != null) {
            return getDcTracker(TransportType.WWAN).isUserDataEnabled();
        }
        return false;
    }

    @Override
    public boolean isDataEnabled() {
        if (getDcTracker(TransportType.WWAN) != null) {
            return getDcTracker(TransportType.WWAN).isDataEnabled();
        }
        return false;
    }

    @Override
    public void setUserDataEnabled(boolean enable) {
        if (getDcTracker(TransportType.WWAN) != null) {
            getDcTracker(TransportType.WWAN).setUserDataEnabled(enable);
        if (mDataEnabledSettings.isProvisioning()) {
            return mDataEnabledSettings.isProvisioningDataEnabled();
        } else {
            return mDataEnabledSettings.isUserDataEnabled();
        }
    }

@@ -2676,6 +2685,17 @@ public class GsmCdmaPhone extends Phone {
                onVoiceRegStateOrRatChanged(vrsRatPair.first, vrsRatPair.second);
                break;

            case EVENT_SET_CARRIER_DATA_ENABLED:
                ar = (AsyncResult) msg.obj;
                boolean enabled = (boolean) ar.result;
                mDataEnabledSettings.setCarrierDataEnabled(enabled);
                break;
            case EVENT_DEVICE_PROVISIONED_CHANGE:
                mDataEnabledSettings.updateProvisionedChanged();
                break;
            case EVENT_DEVICE_PROVISIONING_DATA_SETTING_CHANGE:
                mDataEnabledSettings.updateProvisioningDataEnabled();
                break;
            default:
                super.handleMessage(msg);
        }
@@ -3117,9 +3137,7 @@ public class GsmCdmaPhone extends Phone {
            // send an Intent
            sendEmergencyCallbackModeChange();
            // Re-initiate data connection
            if (getDcTracker(TransportType.WWAN) != null) {
                getDcTracker(TransportType.WWAN).setInternalDataEnabled(true);
            }
            mDataEnabledSettings.setInternalDataEnabled(true);
            notifyEmergencyCallRegistrants(false);
        }
    }
+8 −25
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ import com.android.ims.ImsConfig;
import com.android.ims.ImsManager;
import com.android.internal.R;
import com.android.internal.telephony.dataconnection.DataConnectionReasons;
import com.android.internal.telephony.dataconnection.DataEnabledSettings;
import com.android.internal.telephony.dataconnection.DcTracker;
import com.android.internal.telephony.dataconnection.TransportManager;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
@@ -209,8 +210,11 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
    protected static final int EVENT_VRS_OR_RAT_CHANGED             = 46;
    // Radio state change
    protected static final int EVENT_RADIO_STATE_CHANGED            = 47;
    protected static final int EVENT_SET_CARRIER_DATA_ENABLED       = 48;
    protected static final int EVENT_DEVICE_PROVISIONED_CHANGE      = 49;
    protected static final int EVENT_DEVICE_PROVISIONING_DATA_SETTING_CHANGE = 50;

    protected static final int EVENT_LAST                       = EVENT_RADIO_STATE_CHANGED;
    protected static final int EVENT_LAST = EVENT_DEVICE_PROVISIONING_DATA_SETTING_CHANGE;

    // For shared prefs.
    private static final String GSM_ROAMING_LIST_OVERRIDE_PREFIX = "gsm_roaming_list_";
@@ -294,6 +298,7 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
    private final String mActionAttached;
    protected DeviceStateMonitor mDeviceStateMonitor;
    protected TransportManager mTransportManager;
    protected DataEnabledSettings mDataEnabledSettings;

    protected int mPhoneId;

@@ -3739,16 +3744,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        mAllDataDisconnectedRegistrants.remove(h);
    }

    public void registerForDataEnabledChanged(Handler h, int what, Object obj) {
        if (getDcTracker(TransportType.WWAN) != null) {
            getDcTracker(TransportType.WWAN).registerForDataEnabledChanged(h, what, obj);
        }
    }

    public void unregisterForDataEnabledChanged(Handler h) {
        if (getDcTracker(TransportType.WWAN) != null) {
            getDcTracker(TransportType.WWAN).unregisterForDataEnabledChanged(h);
        }
    public DataEnabledSettings getDataEnabledSettings() {
        return mDataEnabledSettings;
    }

    public IccSmsInterfaceManager getIccSmsInterfaceManager(){
@@ -3821,20 +3818,6 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        return mImsPhone.getVtDataUsage(perUidStats);
    }

    /**
     * Policy control of data connection. Usually used when we hit data limit.
     * @param enabled True if enabling the data, otherwise disabling.
     */
    public void setPolicyDataEnabled(boolean enabled) {
        if (mTransportManager != null) {
            for (int transport : mTransportManager.getAvailableTransports()) {
                if (getDcTracker(transport) != null) {
                    getDcTracker(transport).setPolicyDataEnabled(enabled);
                }
            }
        }
    }

    /**
     * SIP URIs aliased to the current subscriber given by the IMS implementation.
     * Applicable only on IMS; used in absence of line1number.
+1 −11
Original line number Diff line number Diff line
@@ -123,7 +123,7 @@ public interface PhoneInternalInterface {
     */
    static final String REASON_ROAMING_ON = "roamingOn";
    static final String REASON_ROAMING_OFF = "roamingOff";
    static final String REASON_DATA_DISABLED = "dataDisabled";
    static final String REASON_DATA_DISABLED_INTERNAL = "dataDisabledInternal";
    static final String REASON_DATA_ENABLED = "dataEnabled";
    static final String REASON_DATA_ATTACHED = "dataAttached";
    static final String REASON_DATA_DETACHED = "dataDetached";
@@ -739,16 +739,6 @@ public interface PhoneInternalInterface {
     */
    boolean isUserDataEnabled();

    /**
     * @return true if data is enabled considering all factors
     */
    boolean isDataEnabled();

    /**
     * @param @enable set {@code true} if enable data connection
     */
    void setUserDataEnabled(boolean enable);

    /**
     * Retrieves the unique device ID, e.g., IMEI for GSM phones and MEID for CDMA phones.
     */
+6 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.telephony.Rlog;

import com.android.internal.telephony.cdma.CdmaSubscriptionSourceManager;
import com.android.internal.telephony.cdma.EriManager;
import com.android.internal.telephony.dataconnection.DataEnabledSettings;
import com.android.internal.telephony.dataconnection.DcTracker;
import com.android.internal.telephony.dataconnection.TransportManager;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
@@ -371,8 +372,13 @@ public class TelephonyComponentFactory {
        return IDeviceIdleController.Stub.asInterface(
                ServiceManager.getService(Context.DEVICE_IDLE_CONTROLLER));
    }

    public LocaleTracker makeLocaleTracker(Phone phone, NitzStateMachine nitzStateMachine,
                                           Looper looper) {
        return new LocaleTracker(phone, nitzStateMachine, looper);
    }

    public DataEnabledSettings makeDataEnabledSettings(Phone phone) {
        return new DataEnabledSettings(phone);
    }
}
Loading