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

Commit 77e47b49 authored by Jack Yu's avatar Jack Yu
Browse files

Data connection cleanup

Preliminary changes for multiple DcTracker instances, which
is part of the IWLAN refactoring work.

1. Some requests or event registrations are for cellular only, so
   added the check to make sure we don't do that on IWLAN DcTracker.
2. Removed the redundant event registration.

Test: Manual
Bug: 73659459
Change-Id: I0193ae14e7a80be9da620684639e4b2ed5ae5b0f
parent 587752f7
Loading
Loading
Loading
Loading
+18 −13
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ import android.os.Looper;
import android.os.Message;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.telephony.AccessNetworkConstants;
import android.telephony.AccessNetworkConstants.TransportType;
import android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
@@ -461,8 +461,7 @@ public class DataConnection extends StateMachine {
    //***** Constructor (NOTE: uses dcc.getHandler() as its Handler)
    private DataConnection(Phone phone, String name, int id,
                           DcTracker dct, DataServiceManager dataServiceManager,
                           DcTesterFailBringUpAll failBringUpAll,
                DcController dcc) {
                           DcTesterFailBringUpAll failBringUpAll, DcController dcc) {
        super(name, dcc.getHandler());
        setLogRecSize(300);
        setLogOnlyTransitions(true);
@@ -1664,11 +1663,13 @@ public class DataConnection extends StateMachine {
            mNetworkAgent = new DcNetworkAgent(getHandler().getLooper(), mPhone.getContext(),
                    "DcNetworkAgent", mNetworkInfo, getNetworkCapabilities(), mLinkProperties,
                    50, misc);
            if (mDataServiceManager.getTransportType() == TransportType.WWAN) {
                mPhone.mCi.registerForNattKeepaliveStatus(
                        getHandler(), DataConnection.EVENT_KEEPALIVE_STATUS, null);
                mPhone.mCi.registerForLceInfo(
                        getHandler(), DataConnection.EVENT_LINK_CAPACITY_CHANGED, null);
            }
        }

        @Override
        public void exit() {
@@ -1686,8 +1687,11 @@ public class DataConnection extends StateMachine {

            mNetworkInfo.setDetailedState(NetworkInfo.DetailedState.DISCONNECTED,
                    reason, mNetworkInfo.getExtraInfo());

            if (mDataServiceManager.getTransportType() == TransportType.WWAN) {
                mPhone.mCi.unregisterForNattKeepaliveStatus(getHandler());
                mPhone.mCi.unregisterForLceInfo(getHandler());
            }
            if (mNetworkAgent != null) {
                mNetworkAgent.sendNetworkInfo(mNetworkInfo);
                mNetworkAgent = null;
@@ -1809,8 +1813,7 @@ public class DataConnection extends StateMachine {
                    KeepalivePacketData pkt = (KeepalivePacketData) msg.obj;
                    int slotId = msg.arg1;
                    int intervalMillis = msg.arg2 * 1000;
                    if (mDataServiceManager.getTransportType()
                            == AccessNetworkConstants.TransportType.WWAN) {
                    if (mDataServiceManager.getTransportType() == TransportType.WWAN) {
                        mPhone.mCi.startNattKeepalive(
                                DataConnection.this.mCid, pkt, intervalMillis,
                                DataConnection.this.obtainMessage(
@@ -2081,8 +2084,10 @@ public class DataConnection extends StateMachine {

        @Override
        protected void pollLceData() {
            if(mPhone.getLceStatus() == RILConstants.LCE_ACTIVE) {  // active LCE service
                mPhone.mCi.pullLceData(DataConnection.this.obtainMessage(EVENT_BW_REFRESH_RESPONSE));
            if (mPhone.getLceStatus() == RILConstants.LCE_ACTIVE     // active LCE service
                    && mDataServiceManager.getTransportType() == TransportType.WWAN) {
                mPhone.mCi.pullLceData(
                        DataConnection.this.obtainMessage(EVENT_BW_REFRESH_RESPONSE));
            }
        }

+0 −2
Original line number Diff line number Diff line
@@ -716,7 +716,6 @@ public class DcTracker extends Handler {
        mPhone.getCallTracker().registerForVoiceCallStarted(this,
                DctConstants.EVENT_VOICE_CALL_STARTED, null);
        registerServiceStateTrackerEvents();
        mPhone.mCi.registerForPcoData(this, DctConstants.EVENT_PCO_DATA_RECEIVED, null);
        mPhone.getCarrierActionAgent().registerForCarrierAction(
                CarrierActionAgent.CARRIER_ACTION_SET_METERED_APNS_ENABLED, this,
                DctConstants.EVENT_SET_CARRIER_DATA_ENABLED, null, false);
@@ -773,7 +772,6 @@ public class DcTracker extends Handler {
        mPhone.getCallTracker().unregisterForVoiceCallEnded(this);
        mPhone.getCallTracker().unregisterForVoiceCallStarted(this);
        unregisterServiceStateTrackerEvents();
        mPhone.mCi.unregisterForPcoData(this);
        mPhone.getCarrierActionAgent().unregisterForCarrierAction(this,
                CarrierActionAgent.CARRIER_ACTION_SET_METERED_APNS_ENABLED);
        mDataServiceManager.unregisterForServiceBindingChanged(this);