Loading src/java/com/android/internal/telephony/dataconnection/DataConnection.java +21 −7 Original line number Diff line number Diff line Loading @@ -1694,7 +1694,7 @@ public class DataConnection extends StateMachine { mApnSetting != null ? mApnSetting.canHandleType(ApnSetting.TYPE_DEFAULT) : false); if (mHandoverState == HANDOVER_STATE_BEING_TRANSFERRED) { mHandoverState = HANDOVER_STATE_COMPLETED; setHandoverState(HANDOVER_STATE_COMPLETED); } // Check for dangling agent. Ideally the handover source agent should be null if Loading @@ -1707,7 +1707,8 @@ public class DataConnection extends StateMachine { // If the source data connection still owns this agent, then just reset the // handover state back to idle because handover is already failed. mHandoverLocalLog.log( "Handover failed. Reset the source dc state to idle"); "Handover failed. Reset the source dc " + sourceDc.getName() + " state to idle"); sourceDc.setHandoverState(HANDOVER_STATE_IDLE); } else { // The agent is now a dangling agent. No data connection owns this agent. Loading @@ -1716,7 +1717,17 @@ public class DataConnection extends StateMachine { "Handover failed and dangling agent found."); mHandoverSourceNetworkAgent.acquireOwnership( DataConnection.this, mTransportType); mHandoverSourceNetworkAgent.sendNetworkInfo(mNetworkInfo, DataConnection.this); NetworkInfo networkInfo = mHandoverSourceNetworkAgent.getNetworkInfo(); if (networkInfo != null) { networkInfo.setDetailedState(NetworkInfo.DetailedState.DISCONNECTED, "dangling clean up", networkInfo.getExtraInfo()); mHandoverSourceNetworkAgent.sendNetworkInfo(networkInfo, DataConnection.this); } else { String str = "Failed to get network info."; loge(str); mHandoverLocalLog.log(str); } mHandoverSourceNetworkAgent.releaseOwnership(DataConnection.this); } mHandoverSourceNetworkAgent = null; Loading Loading @@ -1996,7 +2007,8 @@ public class DataConnection extends StateMachine { } if (mHandoverSourceNetworkAgent != null) { String logStr = "Transfer network agent successfully."; String logStr = "Transfer network agent " + mHandoverSourceNetworkAgent.getTag() + " successfully."; log(logStr); mHandoverLocalLog.log(logStr); mNetworkAgent = mHandoverSourceNetworkAgent; Loading Loading @@ -2630,10 +2642,12 @@ public class DataConnection extends StateMachine { } void setHandoverState(@HandoverState int state) { if (mHandoverState != state) { mHandoverLocalLog.log("State changed from " + handoverStateToString(mHandoverState) + " to " + handoverStateToString(state)); mHandoverState = state; } } /** * @return the string for msg.what as our info. Loading src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java +21 −1 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ import java.util.concurrent.atomic.AtomicInteger; * different {@link DataConnection}. Thus each method in this class needs to be synchronized. */ public class DcNetworkAgent extends NetworkAgent { private String mTag; private final String mTag; private Phone mPhone; Loading @@ -67,6 +67,8 @@ public class DcNetworkAgent extends NetworkAgent { private static AtomicInteger sSerialNumber = new AtomicInteger(0); private NetworkInfo mNetworkInfo; private DcNetworkAgent(DataConnection dc, String tag, Phone phone, NetworkInfo ni, int score, NetworkMisc misc, int factorySerialNumber, int transportType) { Loading @@ -78,9 +80,17 @@ public class DcNetworkAgent extends NetworkAgent { mNetworkCapabilities = dc.getNetworkCapabilities(); mTransportType = transportType; mDataConnection = dc; mNetworkInfo = ni; logd(tag + " created for data connection " + dc.getName()); } /** * @return The tag */ String getTag() { return mTag; } /** * Constructor * Loading Loading @@ -263,9 +273,19 @@ public class DcNetworkAgent extends NetworkAgent { + mDataConnection.getName() + ", ignored the request from " + dc.getName()); return; } mNetworkInfo = networkInfo; sendNetworkInfo(networkInfo); } /** * Get the latest sent network info. * * @return network info */ public synchronized NetworkInfo getNetworkInfo() { return mNetworkInfo; } @Override protected synchronized void startSocketKeepalive(Message msg) { if (mDataConnection == null) { Loading Loading
src/java/com/android/internal/telephony/dataconnection/DataConnection.java +21 −7 Original line number Diff line number Diff line Loading @@ -1694,7 +1694,7 @@ public class DataConnection extends StateMachine { mApnSetting != null ? mApnSetting.canHandleType(ApnSetting.TYPE_DEFAULT) : false); if (mHandoverState == HANDOVER_STATE_BEING_TRANSFERRED) { mHandoverState = HANDOVER_STATE_COMPLETED; setHandoverState(HANDOVER_STATE_COMPLETED); } // Check for dangling agent. Ideally the handover source agent should be null if Loading @@ -1707,7 +1707,8 @@ public class DataConnection extends StateMachine { // If the source data connection still owns this agent, then just reset the // handover state back to idle because handover is already failed. mHandoverLocalLog.log( "Handover failed. Reset the source dc state to idle"); "Handover failed. Reset the source dc " + sourceDc.getName() + " state to idle"); sourceDc.setHandoverState(HANDOVER_STATE_IDLE); } else { // The agent is now a dangling agent. No data connection owns this agent. Loading @@ -1716,7 +1717,17 @@ public class DataConnection extends StateMachine { "Handover failed and dangling agent found."); mHandoverSourceNetworkAgent.acquireOwnership( DataConnection.this, mTransportType); mHandoverSourceNetworkAgent.sendNetworkInfo(mNetworkInfo, DataConnection.this); NetworkInfo networkInfo = mHandoverSourceNetworkAgent.getNetworkInfo(); if (networkInfo != null) { networkInfo.setDetailedState(NetworkInfo.DetailedState.DISCONNECTED, "dangling clean up", networkInfo.getExtraInfo()); mHandoverSourceNetworkAgent.sendNetworkInfo(networkInfo, DataConnection.this); } else { String str = "Failed to get network info."; loge(str); mHandoverLocalLog.log(str); } mHandoverSourceNetworkAgent.releaseOwnership(DataConnection.this); } mHandoverSourceNetworkAgent = null; Loading Loading @@ -1996,7 +2007,8 @@ public class DataConnection extends StateMachine { } if (mHandoverSourceNetworkAgent != null) { String logStr = "Transfer network agent successfully."; String logStr = "Transfer network agent " + mHandoverSourceNetworkAgent.getTag() + " successfully."; log(logStr); mHandoverLocalLog.log(logStr); mNetworkAgent = mHandoverSourceNetworkAgent; Loading Loading @@ -2630,10 +2642,12 @@ public class DataConnection extends StateMachine { } void setHandoverState(@HandoverState int state) { if (mHandoverState != state) { mHandoverLocalLog.log("State changed from " + handoverStateToString(mHandoverState) + " to " + handoverStateToString(state)); mHandoverState = state; } } /** * @return the string for msg.what as our info. Loading
src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java +21 −1 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ import java.util.concurrent.atomic.AtomicInteger; * different {@link DataConnection}. Thus each method in this class needs to be synchronized. */ public class DcNetworkAgent extends NetworkAgent { private String mTag; private final String mTag; private Phone mPhone; Loading @@ -67,6 +67,8 @@ public class DcNetworkAgent extends NetworkAgent { private static AtomicInteger sSerialNumber = new AtomicInteger(0); private NetworkInfo mNetworkInfo; private DcNetworkAgent(DataConnection dc, String tag, Phone phone, NetworkInfo ni, int score, NetworkMisc misc, int factorySerialNumber, int transportType) { Loading @@ -78,9 +80,17 @@ public class DcNetworkAgent extends NetworkAgent { mNetworkCapabilities = dc.getNetworkCapabilities(); mTransportType = transportType; mDataConnection = dc; mNetworkInfo = ni; logd(tag + " created for data connection " + dc.getName()); } /** * @return The tag */ String getTag() { return mTag; } /** * Constructor * Loading Loading @@ -263,9 +273,19 @@ public class DcNetworkAgent extends NetworkAgent { + mDataConnection.getName() + ", ignored the request from " + dc.getName()); return; } mNetworkInfo = networkInfo; sendNetworkInfo(networkInfo); } /** * Get the latest sent network info. * * @return network info */ public synchronized NetworkInfo getNetworkInfo() { return mNetworkInfo; } @Override protected synchronized void startSocketKeepalive(Message msg) { if (mDataConnection == null) { Loading