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

Commit 84ba6dfa authored by Jack Yu's avatar Jack Yu Committed by android-build-merger
Browse files

Merge "Moved data settings to phone"

am: a5a4af1c

Change-Id: I0802447faed4561f321c522387d5831f9f0aa8f2
parents b6c859c3 a5a4af1c
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];
@@ -374,9 +372,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);
    }
@@ -1632,9 +1628,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);
    }

@@ -2119,26 +2137,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();
        }
    }

@@ -2667,6 +2676,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);
        }
@@ -3108,9 +3128,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;

@@ -3732,16 +3737,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(){
@@ -3814,20 +3811,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