Merge "Cleanup DataConnectionTracker" into honeycomb-LTE
This commit is contained in:
@@ -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,13 +725,12 @@ 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));
|
||||
}
|
||||
return isApnIdEnabled(apnTypeToId(apnType));
|
||||
}
|
||||
|
||||
protected synchronized boolean isApnIdEnabled(int id) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -102,26 +102,6 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
|
||||
//useful for debugging
|
||||
boolean mFailNextConnect = false;
|
||||
|
||||
/**
|
||||
* allApns holds all apns for this sim spn, retrieved from
|
||||
* the Carrier DB.
|
||||
*
|
||||
* Create once after simcard info is loaded
|
||||
*/
|
||||
private ArrayList<ApnSetting> mAllApns = null;
|
||||
|
||||
private ApnSetting mPreferredApn = null;
|
||||
|
||||
/** Convert an ApnType string to Id (TODO: Use "enumeration" instead of String for ApnType) */
|
||||
private HashMap<String, Integer> mApnToDataConnectionId =
|
||||
new HashMap<String, Integer>();
|
||||
|
||||
/** Phone.APN_TYPE_* ===> ApnContext */
|
||||
private ConcurrentHashMap<String, ApnContext> mApnContexts;
|
||||
|
||||
/** Is packet service restricted by network */
|
||||
private boolean mIsPsRestricted = false;
|
||||
|
||||
//***** Constants
|
||||
|
||||
private static final int POLL_PDP_MILLIS = 5 * 1000;
|
||||
@@ -320,7 +300,13 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setState(State s) {
|
||||
if (DBG) log("setState should not be used in GSM" + s);
|
||||
}
|
||||
|
||||
// Return state of specific apn type
|
||||
@Override
|
||||
public synchronized State getState(String apnType) {
|
||||
ApnContext apnContext = mApnContexts.get(apnType);
|
||||
if (apnContext != null) {
|
||||
@@ -613,11 +599,6 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setState(State s) {
|
||||
if (DBG) log("setState should not be used in GSM" + s);
|
||||
}
|
||||
|
||||
private boolean trySetupData(ApnContext apnContext) {
|
||||
|
||||
if (DBG)
|
||||
|
||||
Reference in New Issue
Block a user