Loading src/java/com/android/internal/telephony/dataconnection/DataConnection.java +56 −16 Original line number Diff line number Diff line Loading @@ -140,6 +140,8 @@ public class DataConnection extends StateMachine { private String[] mPcscfAddr; private final String mTagSuffix; /** * Used internally for saving connecting parameters. */ Loading Loading @@ -325,9 +327,9 @@ public class DataConnection extends StateMachine { String transportType = (dataServiceManager.getTransportType() == TransportType.WWAN) ? "C" // Cellular : "I"; // IWLAN DataConnection dc = new DataConnection(phone, "DC-" + transportType + "-" + mInstanceNumber.incrementAndGet(), id, dct, dataServiceManager, failBringUpAll, dcc); DataConnection dc = new DataConnection(phone, transportType + "-" + mInstanceNumber.incrementAndGet(), id, dct, dataServiceManager, failBringUpAll, dcc); dc.start(); if (DBG) dc.log("Made " + dc.getName()); return dc; Loading Loading @@ -504,10 +506,11 @@ public class DataConnection extends StateMachine { } //***** Constructor (NOTE: uses dcc.getHandler() as its Handler) private DataConnection(Phone phone, String name, int id, private DataConnection(Phone phone, String tagSuffix, int id, DcTracker dct, DataServiceManager dataServiceManager, DcTesterFailBringUpAll failBringUpAll, DcController dcc) { super(name, dcc.getHandler()); super("DC-" + tagSuffix, dcc.getHandler()); mTagSuffix = tagSuffix; setLogRecSize(300); setLogOnlyTransitions(true); if (DBG) log("DataConnection created"); Loading Loading @@ -1876,6 +1879,8 @@ public class DataConnection extends StateMachine { if (dc != null) { mNetworkAgent = dc.getNetworkAgent(); if (mNetworkAgent != null) { mNetworkAgent.setTransportType(mDataServiceManager.getTransportType()); log("Transfer the network agent from " + dc.getName() + " successfully."); mNetworkAgent.sendNetworkCapabilities(getNetworkCapabilities()); mNetworkAgent.sendLinkProperties(mLinkProperties); } else { Loading @@ -1887,8 +1892,8 @@ public class DataConnection extends StateMachine { } else { mScore = calculateScore(); mNetworkAgent = new DcNetworkAgent(getHandler().getLooper(), mPhone.getContext(), "DcNetworkAgent", mNetworkInfo, getNetworkCapabilities(), mLinkProperties, mScore, misc); "DcNetworkAgent" + mTagSuffix, mNetworkInfo, getNetworkCapabilities(), mLinkProperties, mScore, misc); } if (mDataServiceManager.getTransportType() == TransportType.WWAN) { mPhone.mCi.registerForNattKeepaliveStatus( Loading Loading @@ -1920,14 +1925,7 @@ public class DataConnection extends StateMachine { mPhone.mCi.unregisterForLceInfo(getHandler()); } if (mNetworkAgent != null) { // We do not want to update the network info if this is a handover. For all other // cases we need to update connectivity service with the latest network info. // // For handover, the network agent is transferred to the other data connection. if (mDisconnectParams == null || mDisconnectParams.mReleaseType != DcTracker.RELEASE_TYPE_HANDOVER) { mNetworkAgent.sendNetworkInfo(mNetworkInfo); } mNetworkAgent = null; } } Loading Loading @@ -2328,6 +2326,8 @@ public class DataConnection extends StateMachine { private class DcNetworkAgent extends NetworkAgent { private final AtomicInteger mTransportType; private NetworkCapabilities mNetworkCapabilities; public final DcKeepaliveTracker keepaliveTracker = new DcKeepaliveTracker(); Loading @@ -2337,6 +2337,11 @@ public class DataConnection extends StateMachine { super(l, c, TAG, ni, nc, lp, score, misc); mNetCapsLocalLog.log("New network agent created. capabilities=" + nc); mNetworkCapabilities = nc; mTransportType = new AtomicInteger(mDataServiceManager.getTransportType()); } public void setTransportType(int transportType) { mTransportType.set(transportType); } @Override Loading Loading @@ -2380,6 +2385,11 @@ public class DataConnection extends StateMachine { @Override public void sendNetworkCapabilities(NetworkCapabilities networkCapabilities) { if (mTransportType.get() != mDataServiceManager.getTransportType()) { log("sendNetworkCapabilities: Data connection has been handover to transport " + TransportType.toString(mTransportType.get())); return; } if (!networkCapabilities.equals(mNetworkCapabilities)) { String logStr = "Changed from " + mNetworkCapabilities + " to " + networkCapabilities + ", Data RAT=" Loading @@ -2392,6 +2402,36 @@ public class DataConnection extends StateMachine { super.sendNetworkCapabilities(networkCapabilities); } @Override public void sendLinkProperties(LinkProperties linkProperties) { if (mTransportType.get() != mDataServiceManager.getTransportType()) { log("sendLinkProperties: Data connection has been handover to transport " + TransportType.toString(mTransportType.get())); return; } super.sendLinkProperties(linkProperties); } @Override public void sendNetworkScore(int score) { if (mTransportType.get() != mDataServiceManager.getTransportType()) { log("sendNetworkScore: Data connection has been handover to transport " + TransportType.toString(mTransportType.get())); return; } super.sendNetworkScore(score); } @Override public void sendNetworkInfo(NetworkInfo networkInfo) { if (mTransportType.get() != mDataServiceManager.getTransportType()) { log("sendNetworkScore: Data connection has been handover to transport " + TransportType.toString(mTransportType.get())); return; } super.sendNetworkInfo(networkInfo); } @Override protected void startSocketKeepalive(Message msg) { if (msg.obj instanceof NattKeepalivePacketData) { Loading Loading @@ -2592,7 +2632,7 @@ public class DataConnection extends StateMachine { */ public void tearDownAll(String reason, @ReleaseNetworkType int releaseType, Message onCompletedMsg) { if (DBG) log("tearDownAll: reason=" + reason + " onCompletedMsg=" + onCompletedMsg); if (DBG) log("tearDownAll: reason=" + reason + ", releaseType=" + releaseType); sendMessage(DataConnection.EVENT_DISCONNECT_ALL, new DisconnectParams(null, reason, releaseType, onCompletedMsg)); } Loading src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java +8 −5 Original line number Diff line number Diff line Loading @@ -60,13 +60,14 @@ import java.util.concurrent.ConcurrentHashMap; * Cellular data service, IWLAN data service). */ public class DataServiceManager { private static final String TAG = DataServiceManager.class.getSimpleName(); private static final boolean DBG = false; private static final boolean DBG = true; static final String DATA_CALL_RESPONSE = "data_call_response"; private final Phone mPhone; private final String mTag; private final CarrierConfigManager mCarrierConfigManager; private final AppOpsManager mAppOps; private final IPackageManager mPackageManager; Loading Loading @@ -228,9 +229,11 @@ public class DataServiceManager { * @param phone The phone object * @param transportType The transport type. Must be a * {@link AccessNetworkConstants.TransportType}. * @param tagSuffix Logging tag suffix */ public DataServiceManager(Phone phone, int transportType) { public DataServiceManager(Phone phone, int transportType, String tagSuffix) { mPhone = phone; mTag = "DSM" + tagSuffix; mTransportType = transportType; mBound = false; mCarrierConfigManager = (CarrierConfigManager) phone.getContext().getSystemService( Loading Loading @@ -580,11 +583,11 @@ public class DataServiceManager { } private void log(String s) { Rlog.d(TAG, s); Rlog.d(mTag, s); } private void loge(String s) { Rlog.e(TAG, s); Rlog.e(mTag, s); } } src/java/com/android/internal/telephony/dataconnection/DcController.java +3 −3 Original line number Diff line number Diff line Loading @@ -121,9 +121,9 @@ public class DcController extends StateMachine { } public static DcController makeDcc(Phone phone, DcTracker dct, DataServiceManager dataServiceManager, Handler handler) { DcController dcc = new DcController("Dcc", phone, dct, dataServiceManager, handler); return dcc; DataServiceManager dataServiceManager, Handler handler, String tagSuffix) { return new DcController("Dcc" + tagSuffix, phone, dct, dataServiceManager, handler); } void dispose() { Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +17 −13 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener; import android.telephony.TelephonyManager; import android.telephony.cdma.CdmaCellLocation; import android.telephony.data.ApnSetting; import android.telephony.data.ApnSetting.ApnType; import android.telephony.data.DataProfile; import android.telephony.gsm.GsmCellLocation; import android.text.TextUtils; Loading Loading @@ -671,14 +672,14 @@ public class DcTracker extends Handler { .createForSubscriptionId(phone.getSubId()); // The 'C' in tag indicates cellular, and 'I' indicates IWLAN. This is to distinguish // between two DcTrackers, one for each. String tag = "DCT-" + ((transportType == TransportType.WWAN) ? "C" : "I"); String tagSuffix = "-" + ((transportType == TransportType.WWAN) ? "C" : "I"); if (mTelephonyManager.getPhoneCount() > 1) { tag += "-" + mPhone.getPhoneId(); tagSuffix += "-" + mPhone.getPhoneId(); } mLogTag = tag; mLogTag = "DCT" + tagSuffix; mTransportType = transportType; mDataServiceManager = new DataServiceManager(phone, transportType); mDataServiceManager = new DataServiceManager(phone, transportType, tagSuffix); mResolver = mPhone.getContext().getContentResolver(); mUiccController = UiccController.getInstance(); Loading Loading @@ -711,7 +712,7 @@ public class DcTracker extends Handler { HandlerThread dcHandlerThread = new HandlerThread("DcHandlerThread"); dcHandlerThread.start(); Handler dcHandler = new Handler(dcHandlerThread.getLooper()); mDcc = DcController.makeDcc(mPhone, this, mDataServiceManager, dcHandler); mDcc = DcController.makeDcc(mPhone, this, mDataServiceManager, dcHandler, tagSuffix); mDcTesterFailBringUpAll = new DcTesterFailBringUpAll(mPhone, dcHandler); mDataConnectionTracker = this; Loading Loading @@ -2282,7 +2283,7 @@ public class DcTracker extends Handler { } private void addRequestNetworkCompleteMsg(Message onCompleteMsg, @ApnSetting.ApnType int apnType) { @ApnType int apnType) { if (onCompleteMsg != null) { List<Message> messageList = mRequestNetworkCompletionMsgs.get(apnType); if (messageList == null) messageList = new ArrayList<>(); Loading @@ -2302,13 +2303,13 @@ public class DcTracker extends Handler { message.sendToTarget(); } public void enableApn(@ApnSetting.ApnType int apnType, @RequestNetworkType int requestType, public void enableApn(@ApnType int apnType, @RequestNetworkType int requestType, Message onCompleteMsg) { sendMessage(obtainMessage(DctConstants.EVENT_ENABLE_APN, apnType, requestType, onCompleteMsg)); } private void onEnableApn(@ApnSetting.ApnType int apnType, @RequestNetworkType int requestType, private void onEnableApn(@ApnType int apnType, @RequestNetworkType int requestType, Message onCompleteMsg) { ApnContext apnContext = mApnContextsByType.get(apnType); if (apnContext == null) { Loading Loading @@ -2382,11 +2383,11 @@ public class DcTracker extends Handler { } } public void disableApn(@ApnSetting.ApnType int apnType, @ReleaseNetworkType int releaseType) { public void disableApn(@ApnType int apnType, @ReleaseNetworkType int releaseType) { sendMessage(obtainMessage(DctConstants.EVENT_DISABLE_APN, apnType, releaseType)); } private void onDisableApn(@ApnSetting.ApnType int apnType, private void onDisableApn(@ApnType int apnType, @ReleaseNetworkType int releaseType) { ApnContext apnContext = mApnContextsByType.get(apnType); if (apnContext == null) { Loading Loading @@ -2674,7 +2675,7 @@ public class DcTracker extends Handler { } } private void completeConnection(ApnContext apnContext) { private void completeConnection(ApnContext apnContext, @RequestNetworkType int type) { if (DBG) log("completeConnection: successful, notify the world apnContext=" + apnContext); Loading @@ -2701,7 +2702,10 @@ public class DcTracker extends Handler { mProvisioningSpinner)); } // Notify data is connected except for handover case. if (type != REQUEST_TYPE_HANDOVER) { mPhone.notifyDataConnection(apnContext.getApnType()); } startNetStatPoll(); startDataStallAlarm(DATA_STALL_NOT_SUSPECTED); } Loading Loading @@ -2805,7 +2809,7 @@ public class DcTracker extends Handler { // Complete the connection normally notifying the world we're connected. // We do this if this isn't a special provisioning apn or if we've been // told its time to provision. completeConnection(apnContext); completeConnection(apnContext, requestType); } else { // This is a provisioning APN that we're reporting as connected. Later // when the user desires to upgrade this to a "default" connection, Loading tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataConnectionTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -254,8 +254,8 @@ public class DataConnectionTest extends TelephonyTest { public void onLooperPrepared() { Handler h = new Handler(); DataServiceManager manager = new DataServiceManager(mPhone, TransportType.WWAN); mDcc = DcController.makeDcc(mPhone, mDcTracker, manager, h); DataServiceManager manager = new DataServiceManager(mPhone, TransportType.WWAN, ""); mDcc = DcController.makeDcc(mPhone, mDcTracker, manager, h, ""); mDcc.start(); mDc = DataConnection.makeDataConnection(mPhone, 0, mDcTracker, manager, mDcTesterFailBringUpAll, mDcc); Loading Loading
src/java/com/android/internal/telephony/dataconnection/DataConnection.java +56 −16 Original line number Diff line number Diff line Loading @@ -140,6 +140,8 @@ public class DataConnection extends StateMachine { private String[] mPcscfAddr; private final String mTagSuffix; /** * Used internally for saving connecting parameters. */ Loading Loading @@ -325,9 +327,9 @@ public class DataConnection extends StateMachine { String transportType = (dataServiceManager.getTransportType() == TransportType.WWAN) ? "C" // Cellular : "I"; // IWLAN DataConnection dc = new DataConnection(phone, "DC-" + transportType + "-" + mInstanceNumber.incrementAndGet(), id, dct, dataServiceManager, failBringUpAll, dcc); DataConnection dc = new DataConnection(phone, transportType + "-" + mInstanceNumber.incrementAndGet(), id, dct, dataServiceManager, failBringUpAll, dcc); dc.start(); if (DBG) dc.log("Made " + dc.getName()); return dc; Loading Loading @@ -504,10 +506,11 @@ public class DataConnection extends StateMachine { } //***** Constructor (NOTE: uses dcc.getHandler() as its Handler) private DataConnection(Phone phone, String name, int id, private DataConnection(Phone phone, String tagSuffix, int id, DcTracker dct, DataServiceManager dataServiceManager, DcTesterFailBringUpAll failBringUpAll, DcController dcc) { super(name, dcc.getHandler()); super("DC-" + tagSuffix, dcc.getHandler()); mTagSuffix = tagSuffix; setLogRecSize(300); setLogOnlyTransitions(true); if (DBG) log("DataConnection created"); Loading Loading @@ -1876,6 +1879,8 @@ public class DataConnection extends StateMachine { if (dc != null) { mNetworkAgent = dc.getNetworkAgent(); if (mNetworkAgent != null) { mNetworkAgent.setTransportType(mDataServiceManager.getTransportType()); log("Transfer the network agent from " + dc.getName() + " successfully."); mNetworkAgent.sendNetworkCapabilities(getNetworkCapabilities()); mNetworkAgent.sendLinkProperties(mLinkProperties); } else { Loading @@ -1887,8 +1892,8 @@ public class DataConnection extends StateMachine { } else { mScore = calculateScore(); mNetworkAgent = new DcNetworkAgent(getHandler().getLooper(), mPhone.getContext(), "DcNetworkAgent", mNetworkInfo, getNetworkCapabilities(), mLinkProperties, mScore, misc); "DcNetworkAgent" + mTagSuffix, mNetworkInfo, getNetworkCapabilities(), mLinkProperties, mScore, misc); } if (mDataServiceManager.getTransportType() == TransportType.WWAN) { mPhone.mCi.registerForNattKeepaliveStatus( Loading Loading @@ -1920,14 +1925,7 @@ public class DataConnection extends StateMachine { mPhone.mCi.unregisterForLceInfo(getHandler()); } if (mNetworkAgent != null) { // We do not want to update the network info if this is a handover. For all other // cases we need to update connectivity service with the latest network info. // // For handover, the network agent is transferred to the other data connection. if (mDisconnectParams == null || mDisconnectParams.mReleaseType != DcTracker.RELEASE_TYPE_HANDOVER) { mNetworkAgent.sendNetworkInfo(mNetworkInfo); } mNetworkAgent = null; } } Loading Loading @@ -2328,6 +2326,8 @@ public class DataConnection extends StateMachine { private class DcNetworkAgent extends NetworkAgent { private final AtomicInteger mTransportType; private NetworkCapabilities mNetworkCapabilities; public final DcKeepaliveTracker keepaliveTracker = new DcKeepaliveTracker(); Loading @@ -2337,6 +2337,11 @@ public class DataConnection extends StateMachine { super(l, c, TAG, ni, nc, lp, score, misc); mNetCapsLocalLog.log("New network agent created. capabilities=" + nc); mNetworkCapabilities = nc; mTransportType = new AtomicInteger(mDataServiceManager.getTransportType()); } public void setTransportType(int transportType) { mTransportType.set(transportType); } @Override Loading Loading @@ -2380,6 +2385,11 @@ public class DataConnection extends StateMachine { @Override public void sendNetworkCapabilities(NetworkCapabilities networkCapabilities) { if (mTransportType.get() != mDataServiceManager.getTransportType()) { log("sendNetworkCapabilities: Data connection has been handover to transport " + TransportType.toString(mTransportType.get())); return; } if (!networkCapabilities.equals(mNetworkCapabilities)) { String logStr = "Changed from " + mNetworkCapabilities + " to " + networkCapabilities + ", Data RAT=" Loading @@ -2392,6 +2402,36 @@ public class DataConnection extends StateMachine { super.sendNetworkCapabilities(networkCapabilities); } @Override public void sendLinkProperties(LinkProperties linkProperties) { if (mTransportType.get() != mDataServiceManager.getTransportType()) { log("sendLinkProperties: Data connection has been handover to transport " + TransportType.toString(mTransportType.get())); return; } super.sendLinkProperties(linkProperties); } @Override public void sendNetworkScore(int score) { if (mTransportType.get() != mDataServiceManager.getTransportType()) { log("sendNetworkScore: Data connection has been handover to transport " + TransportType.toString(mTransportType.get())); return; } super.sendNetworkScore(score); } @Override public void sendNetworkInfo(NetworkInfo networkInfo) { if (mTransportType.get() != mDataServiceManager.getTransportType()) { log("sendNetworkScore: Data connection has been handover to transport " + TransportType.toString(mTransportType.get())); return; } super.sendNetworkInfo(networkInfo); } @Override protected void startSocketKeepalive(Message msg) { if (msg.obj instanceof NattKeepalivePacketData) { Loading Loading @@ -2592,7 +2632,7 @@ public class DataConnection extends StateMachine { */ public void tearDownAll(String reason, @ReleaseNetworkType int releaseType, Message onCompletedMsg) { if (DBG) log("tearDownAll: reason=" + reason + " onCompletedMsg=" + onCompletedMsg); if (DBG) log("tearDownAll: reason=" + reason + ", releaseType=" + releaseType); sendMessage(DataConnection.EVENT_DISCONNECT_ALL, new DisconnectParams(null, reason, releaseType, onCompletedMsg)); } Loading
src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java +8 −5 Original line number Diff line number Diff line Loading @@ -60,13 +60,14 @@ import java.util.concurrent.ConcurrentHashMap; * Cellular data service, IWLAN data service). */ public class DataServiceManager { private static final String TAG = DataServiceManager.class.getSimpleName(); private static final boolean DBG = false; private static final boolean DBG = true; static final String DATA_CALL_RESPONSE = "data_call_response"; private final Phone mPhone; private final String mTag; private final CarrierConfigManager mCarrierConfigManager; private final AppOpsManager mAppOps; private final IPackageManager mPackageManager; Loading Loading @@ -228,9 +229,11 @@ public class DataServiceManager { * @param phone The phone object * @param transportType The transport type. Must be a * {@link AccessNetworkConstants.TransportType}. * @param tagSuffix Logging tag suffix */ public DataServiceManager(Phone phone, int transportType) { public DataServiceManager(Phone phone, int transportType, String tagSuffix) { mPhone = phone; mTag = "DSM" + tagSuffix; mTransportType = transportType; mBound = false; mCarrierConfigManager = (CarrierConfigManager) phone.getContext().getSystemService( Loading Loading @@ -580,11 +583,11 @@ public class DataServiceManager { } private void log(String s) { Rlog.d(TAG, s); Rlog.d(mTag, s); } private void loge(String s) { Rlog.e(TAG, s); Rlog.e(mTag, s); } }
src/java/com/android/internal/telephony/dataconnection/DcController.java +3 −3 Original line number Diff line number Diff line Loading @@ -121,9 +121,9 @@ public class DcController extends StateMachine { } public static DcController makeDcc(Phone phone, DcTracker dct, DataServiceManager dataServiceManager, Handler handler) { DcController dcc = new DcController("Dcc", phone, dct, dataServiceManager, handler); return dcc; DataServiceManager dataServiceManager, Handler handler, String tagSuffix) { return new DcController("Dcc" + tagSuffix, phone, dct, dataServiceManager, handler); } void dispose() { Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +17 −13 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener; import android.telephony.TelephonyManager; import android.telephony.cdma.CdmaCellLocation; import android.telephony.data.ApnSetting; import android.telephony.data.ApnSetting.ApnType; import android.telephony.data.DataProfile; import android.telephony.gsm.GsmCellLocation; import android.text.TextUtils; Loading Loading @@ -671,14 +672,14 @@ public class DcTracker extends Handler { .createForSubscriptionId(phone.getSubId()); // The 'C' in tag indicates cellular, and 'I' indicates IWLAN. This is to distinguish // between two DcTrackers, one for each. String tag = "DCT-" + ((transportType == TransportType.WWAN) ? "C" : "I"); String tagSuffix = "-" + ((transportType == TransportType.WWAN) ? "C" : "I"); if (mTelephonyManager.getPhoneCount() > 1) { tag += "-" + mPhone.getPhoneId(); tagSuffix += "-" + mPhone.getPhoneId(); } mLogTag = tag; mLogTag = "DCT" + tagSuffix; mTransportType = transportType; mDataServiceManager = new DataServiceManager(phone, transportType); mDataServiceManager = new DataServiceManager(phone, transportType, tagSuffix); mResolver = mPhone.getContext().getContentResolver(); mUiccController = UiccController.getInstance(); Loading Loading @@ -711,7 +712,7 @@ public class DcTracker extends Handler { HandlerThread dcHandlerThread = new HandlerThread("DcHandlerThread"); dcHandlerThread.start(); Handler dcHandler = new Handler(dcHandlerThread.getLooper()); mDcc = DcController.makeDcc(mPhone, this, mDataServiceManager, dcHandler); mDcc = DcController.makeDcc(mPhone, this, mDataServiceManager, dcHandler, tagSuffix); mDcTesterFailBringUpAll = new DcTesterFailBringUpAll(mPhone, dcHandler); mDataConnectionTracker = this; Loading Loading @@ -2282,7 +2283,7 @@ public class DcTracker extends Handler { } private void addRequestNetworkCompleteMsg(Message onCompleteMsg, @ApnSetting.ApnType int apnType) { @ApnType int apnType) { if (onCompleteMsg != null) { List<Message> messageList = mRequestNetworkCompletionMsgs.get(apnType); if (messageList == null) messageList = new ArrayList<>(); Loading @@ -2302,13 +2303,13 @@ public class DcTracker extends Handler { message.sendToTarget(); } public void enableApn(@ApnSetting.ApnType int apnType, @RequestNetworkType int requestType, public void enableApn(@ApnType int apnType, @RequestNetworkType int requestType, Message onCompleteMsg) { sendMessage(obtainMessage(DctConstants.EVENT_ENABLE_APN, apnType, requestType, onCompleteMsg)); } private void onEnableApn(@ApnSetting.ApnType int apnType, @RequestNetworkType int requestType, private void onEnableApn(@ApnType int apnType, @RequestNetworkType int requestType, Message onCompleteMsg) { ApnContext apnContext = mApnContextsByType.get(apnType); if (apnContext == null) { Loading Loading @@ -2382,11 +2383,11 @@ public class DcTracker extends Handler { } } public void disableApn(@ApnSetting.ApnType int apnType, @ReleaseNetworkType int releaseType) { public void disableApn(@ApnType int apnType, @ReleaseNetworkType int releaseType) { sendMessage(obtainMessage(DctConstants.EVENT_DISABLE_APN, apnType, releaseType)); } private void onDisableApn(@ApnSetting.ApnType int apnType, private void onDisableApn(@ApnType int apnType, @ReleaseNetworkType int releaseType) { ApnContext apnContext = mApnContextsByType.get(apnType); if (apnContext == null) { Loading Loading @@ -2674,7 +2675,7 @@ public class DcTracker extends Handler { } } private void completeConnection(ApnContext apnContext) { private void completeConnection(ApnContext apnContext, @RequestNetworkType int type) { if (DBG) log("completeConnection: successful, notify the world apnContext=" + apnContext); Loading @@ -2701,7 +2702,10 @@ public class DcTracker extends Handler { mProvisioningSpinner)); } // Notify data is connected except for handover case. if (type != REQUEST_TYPE_HANDOVER) { mPhone.notifyDataConnection(apnContext.getApnType()); } startNetStatPoll(); startDataStallAlarm(DATA_STALL_NOT_SUSPECTED); } Loading Loading @@ -2805,7 +2809,7 @@ public class DcTracker extends Handler { // Complete the connection normally notifying the world we're connected. // We do this if this isn't a special provisioning apn or if we've been // told its time to provision. completeConnection(apnContext); completeConnection(apnContext, requestType); } else { // This is a provisioning APN that we're reporting as connected. Later // when the user desires to upgrade this to a "default" connection, Loading
tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataConnectionTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -254,8 +254,8 @@ public class DataConnectionTest extends TelephonyTest { public void onLooperPrepared() { Handler h = new Handler(); DataServiceManager manager = new DataServiceManager(mPhone, TransportType.WWAN); mDcc = DcController.makeDcc(mPhone, mDcTracker, manager, h); DataServiceManager manager = new DataServiceManager(mPhone, TransportType.WWAN, ""); mDcc = DcController.makeDcc(mPhone, mDcTracker, manager, h, ""); mDcc.start(); mDc = DataConnection.makeDataConnection(mPhone, 0, mDcTracker, manager, mDcTesterFailBringUpAll, mDcc); Loading