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

Commit fc151b6e authored by Wink Saville's avatar Wink Saville Committed by Android (Google) Code Review
Browse files

Merge "Cleanup DataConnectionTracker" into honeycomb-LTE

parents b8c7c66d 09e4eea1
Loading
Loading
Loading
Loading
+33 −37
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import com.android.internal.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;

/**
@@ -244,9 +245,26 @@ public abstract class DataConnectionTracker extends Handler {
    protected HashMap<Integer, DataConnection> mDataConnections =
        new HashMap<Integer, DataConnection>();

    /** Convert an ApnType string to Id (TODO: Use "enumeration" instead of String for ApnType) */
    protected HashMap<String, Integer> mApnToDataConnectionId =
                                    new HashMap<String, Integer>();

    /** Phone.APN_TYPE_* ===> ApnContext */
    protected ConcurrentHashMap<String, ApnContext> mApnContexts;

    /* Currently active APN */
    protected ApnSetting mActiveApn;

    /** allApns holds all apns */
    protected ArrayList<ApnSetting> mAllApns = null;

    /** preferred apn */
    protected ApnSetting mPreferredApn = null;

    /** Is packet service restricted by network */
    protected boolean mIsPsRestricted = false;


    /* Once disposed dont handle any messages */
    protected boolean mIsDisposed = false;

@@ -344,11 +362,6 @@ public abstract class DataConnectionTracker extends Handler {
        return mActivity;
    }

    public State getState() {
        // TODO: reimplement to use apnType better yet REMOVE.
        return mState;
    }

    /**
     * @return the data connections
     */
@@ -390,16 +403,7 @@ public abstract class DataConnectionTracker extends Handler {
        return result;
    }

    private String getActiveApnType() {
        String result;
        if (mActiveApn != null) {
            result = apnIdToType(mActiveApn.id);
        } else {
            result = null;
        }
        return result;
    }

    /** TODO: See if we can remove */
    public String getActiveApnString() {
        String result = null;
        if (mActiveApn != null) {
@@ -434,10 +438,19 @@ public abstract class DataConnectionTracker extends Handler {
        }
    }


    // abstract methods
    protected abstract String getActionIntentReconnectAlarm();
    protected abstract void startNetStatPoll();
    protected abstract void stopNetStatPoll();
    protected abstract void restartRadio();
    protected abstract void log(String s);
    protected abstract void loge(String s);
    protected abstract boolean isDataAllowed();
    protected abstract boolean isApnTypeAvailable(String type);
    public    abstract State getState(String apnType);
    protected abstract void setState(State s);
    protected abstract void gotoIdleAndNotifyDataConnection(String reason);

    // abstract handler methods
    protected abstract boolean onTrySetupData(String reason);
    protected abstract void onRoamingOff();
    protected abstract void onRoamingOn();
@@ -546,16 +559,6 @@ public abstract class DataConnectionTracker extends Handler {
        return result;
    }

    protected abstract void startNetStatPoll();

    protected abstract void stopNetStatPoll();

    protected abstract void restartRadio();

    protected abstract void log(String s);

    protected abstract void loge(String s);

    protected int apnTypeToId(String type) {
        if (TextUtils.equals(type, Phone.APN_TYPE_DEFAULT)) {
            return APN_DEFAULT_ID;
@@ -602,12 +605,6 @@ public abstract class DataConnectionTracker extends Handler {
        }
    }

    protected abstract boolean isApnTypeAvailable(String type);

    protected abstract void setState(State s);

    protected abstract void gotoIdleAndNotifyDataConnection(String reason);

    protected LinkProperties getLinkProperties(String apnType) {
        int id = apnTypeToId(apnType);
        if (isApnIdEnabled(id)) {
@@ -728,14 +725,13 @@ public abstract class DataConnectionTracker extends Handler {
        return possible;
    }

    protected abstract boolean isDataAllowed();

    public boolean isApnTypeEnabled(String apnType) {
        if (apnType == null) {
            apnType = getActiveApnType();
        }
            return false;
        } else {
            return isApnIdEnabled(apnTypeToId(apnType));
        }
    }

    protected synchronized boolean isApnIdEnabled(int id) {
        if (id != APN_INVALID_ID) {
+1 −7
Original line number Diff line number Diff line
@@ -122,13 +122,7 @@ public class CDMALTEPhone extends CDMAPhone {
        } else if (mDataConnection.isApnTypeEnabled(apnType) == false) {
            ret = DataState.DISCONNECTED;
        } else {
            DataConnectionTracker.State state;
            if (isCdmaDataConnectionTracker) {
                state = mDataConnection.getState();
            } else {
                state = ((GsmDataConnectionTracker)mDataConnection).getState(apnType);
            }
            switch (state) {
            switch (mDataConnection.getState(apnType)) {
                case FAILED:
                case IDLE:
                    ret = DataState.DISCONNECTED;
+1 −1
Original line number Diff line number Diff line
@@ -633,7 +633,7 @@ public class CDMAPhone extends PhoneBase {
                mDataConnection.isApnTypeActive(apnType) == false) {
            ret = DataState.DISCONNECTED;
        } else {
            switch (mDataConnection.getState()) {
            switch (mDataConnection.getState(apnType)) {
                case FAILED:
                case IDLE:
                    ret = DataState.DISCONNECTED;
+5 −0
Original line number Diff line number Diff line
@@ -159,6 +159,11 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
        }
    }

    @Override
    public synchronized State getState(String apnType) {
        return mState;
    }

    @Override
    protected boolean isApnTypeAvailable(String type) {
        for (String s : mSupportedApnTypes) {
+1 −1
Original line number Diff line number Diff line
@@ -312,7 +312,7 @@ public class GSMPhone extends PhoneBase {
                mDataConnection.isApnTypeActive(apnType) == false) {
            ret = DataState.DISCONNECTED;
        } else { /* mSST.gprsState == ServiceState.STATE_IN_SERVICE */
            switch (mDataConnection.getState()) {
            switch (mDataConnection.getState(apnType)) {
                case FAILED:
                case IDLE:
                    ret = DataState.DISCONNECTED;
Loading