Loading telephony/java/com/android/internal/telephony/DataConnectionTracker.java +8 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,14 @@ public abstract class DataConnectionTracker extends Handler { public static final int DISABLED = 0; public static final int ENABLED = 1; /** * Constants for the data connection activity: * physical link down/up */ protected static final int DATA_CONNECTION_ACTIVE_PH_LINK_INACTIVE = 0; protected static final int DATA_CONNECTION_ACTIVE_PH_LINK_DOWN = 1; protected static final int DATA_CONNECTION_ACTIVE_PH_LINK_UP = 2; public static final String APN_TYPE_KEY = "apnType"; /** Delay between APN attempts. Loading telephony/java/com/android/internal/telephony/gsm/GSMPhone.java +4 −0 Original line number Diff line number Diff line Loading @@ -350,6 +350,10 @@ public class GSMPhone extends PhoneBase { case DATAINANDOUT: ret = DataActivityState.DATAINANDOUT; break; case DORMANT: ret = DataActivityState.DORMANT; break; } } Loading telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +29 −1 Original line number Diff line number Diff line Loading @@ -1211,6 +1211,9 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { dataCallStates = clearDuplicates(dataCallStates); boolean isAnyDataCallDormant = false; boolean isAnyDataCallActive = false; // Create a hash map to store the dataCallState of each DataConnectionAc HashMap<DataCallState, DataConnectionAc> dataCallStateToDcac; dataCallStateToDcac = new HashMap<DataCallState, DataConnectionAc>(); Loading @@ -1232,6 +1235,9 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { continue; } if (newState.active == DATA_CONNECTION_ACTIVE_PH_LINK_UP) isAnyDataCallActive = true; if (newState.active == DATA_CONNECTION_ACTIVE_PH_LINK_DOWN) isAnyDataCallDormant = true; // The list of apn's associated with this DataConnection Collection<ApnContext> apns = dcac.getApnListSync(); Loading Loading @@ -1312,6 +1318,28 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { } } if (isAnyDataCallDormant && !isAnyDataCallActive) { // There is no way to indicate link activity per APN right now. So // Link Activity will be considered dormant only when all data calls // are dormant. // If a single data call is in dormant state and none of the data // calls are active broadcast overall link state as dormant. mActivity = Activity.DORMANT; if (DBG) { log("onDataStateChanged: Data Activity updated to DORMANT. stopNetStatePoll"); } stopNetStatPoll(); } else { mActivity = Activity.NONE; if (DBG) { log("onDataStateChanged: Data Activity updated to NONE. " + "isAnyDataCallActive = " + isAnyDataCallActive + " isAnyDataCallDormant = " + isAnyDataCallDormant); } if (isAnyDataCallActive) startNetStatPoll(); } mPhone.notifyDataActivity(); if (apnsToCleanup.size() != 0) { // Add an event log when the network drops PDP int cid = getCellLocationId(); Loading Loading @@ -1546,7 +1574,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { } else if (sent == 0 && received > 0) { newActivity = Activity.DATAIN; } else { newActivity = Activity.NONE; newActivity = (mActivity == Activity.DORMANT) ? mActivity : Activity.NONE; } if (mActivity != newActivity && mIsScreenOn) { Loading Loading
telephony/java/com/android/internal/telephony/DataConnectionTracker.java +8 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,14 @@ public abstract class DataConnectionTracker extends Handler { public static final int DISABLED = 0; public static final int ENABLED = 1; /** * Constants for the data connection activity: * physical link down/up */ protected static final int DATA_CONNECTION_ACTIVE_PH_LINK_INACTIVE = 0; protected static final int DATA_CONNECTION_ACTIVE_PH_LINK_DOWN = 1; protected static final int DATA_CONNECTION_ACTIVE_PH_LINK_UP = 2; public static final String APN_TYPE_KEY = "apnType"; /** Delay between APN attempts. Loading
telephony/java/com/android/internal/telephony/gsm/GSMPhone.java +4 −0 Original line number Diff line number Diff line Loading @@ -350,6 +350,10 @@ public class GSMPhone extends PhoneBase { case DATAINANDOUT: ret = DataActivityState.DATAINANDOUT; break; case DORMANT: ret = DataActivityState.DORMANT; break; } } Loading
telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +29 −1 Original line number Diff line number Diff line Loading @@ -1211,6 +1211,9 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { dataCallStates = clearDuplicates(dataCallStates); boolean isAnyDataCallDormant = false; boolean isAnyDataCallActive = false; // Create a hash map to store the dataCallState of each DataConnectionAc HashMap<DataCallState, DataConnectionAc> dataCallStateToDcac; dataCallStateToDcac = new HashMap<DataCallState, DataConnectionAc>(); Loading @@ -1232,6 +1235,9 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { continue; } if (newState.active == DATA_CONNECTION_ACTIVE_PH_LINK_UP) isAnyDataCallActive = true; if (newState.active == DATA_CONNECTION_ACTIVE_PH_LINK_DOWN) isAnyDataCallDormant = true; // The list of apn's associated with this DataConnection Collection<ApnContext> apns = dcac.getApnListSync(); Loading Loading @@ -1312,6 +1318,28 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { } } if (isAnyDataCallDormant && !isAnyDataCallActive) { // There is no way to indicate link activity per APN right now. So // Link Activity will be considered dormant only when all data calls // are dormant. // If a single data call is in dormant state and none of the data // calls are active broadcast overall link state as dormant. mActivity = Activity.DORMANT; if (DBG) { log("onDataStateChanged: Data Activity updated to DORMANT. stopNetStatePoll"); } stopNetStatPoll(); } else { mActivity = Activity.NONE; if (DBG) { log("onDataStateChanged: Data Activity updated to NONE. " + "isAnyDataCallActive = " + isAnyDataCallActive + " isAnyDataCallDormant = " + isAnyDataCallDormant); } if (isAnyDataCallActive) startNetStatPoll(); } mPhone.notifyDataActivity(); if (apnsToCleanup.size() != 0) { // Add an event log when the network drops PDP int cid = getCellLocationId(); Loading Loading @@ -1546,7 +1574,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { } else if (sent == 0 && received > 0) { newActivity = Activity.DATAIN; } else { newActivity = Activity.NONE; newActivity = (mActivity == Activity.DORMANT) ? mActivity : Activity.NONE; } if (mActivity != newActivity && mIsScreenOn) { Loading