Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +31 −7 Original line number Diff line number Diff line Loading @@ -757,6 +757,7 @@ public class DcTracker extends DcTrackerBase { } private boolean trySetupData(ApnContext apnContext) { boolean retValue = false; if (DBG) { log("trySetupData for type:" + apnContext.getDataProfileType() + " due to " + apnContext.getReason() + " apnContext=" + apnContext); Loading Loading @@ -809,14 +810,16 @@ public class DcTracker extends DcTrackerBase { } int radioTech = mPhone.getServiceState().getRilDataRadioTechnology(); if (apnContext.getState() == DctConstants.State.IDLE) { ArrayList<DataProfile> waitingDps = buildWaitingApns(apnContext.getDataProfileType(), radioTech); if (waitingDps.isEmpty()) { notifyOffApnsOfAvailability(apnContext.getReason()); retValue = setupData(apnContext, radioTech); if(!retValue) { notifyNoData(DcFailCause.MISSING_UNKNOWN_APN, apnContext); } notifyOffApnsOfAvailability(apnContext.getReason()); if (DBG) log("trySetupData: X No APN found retValue=false"); return false; return retValue; } else { apnContext.setWaitingDataProfiles(waitingDps); if (DBG) { Loading @@ -830,7 +833,7 @@ public class DcTracker extends DcTrackerBase { log("trySetupData: call setupData, waitingApns : " + apnListToString(apnContext.getWaitingApns())); } boolean retValue = setupData(apnContext, radioTech); retValue = setupData(apnContext, radioTech); notifyOffApnsOfAvailability(apnContext.getReason()); if (DBG) log("trySetupData: X retValue=" + retValue); Loading Loading @@ -1185,9 +1188,30 @@ public class DcTracker extends DcTrackerBase { int profileId = getApnProfileID(apnContext.getDataProfileType()); apnSetting = apnContext.getNextWaitingApn(); if (apnSetting == null) { if(PhoneConstants.PHONE_TYPE_CDMA==mPhone.getPhoneType()) { String[] mDunApnTypes = { PhoneConstants.APN_TYPE_DUN }; final int mDefaultApnId = DctConstants.APN_DEFAULT_ID; final String[] mDefaultApnTypes = { PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS, PhoneConstants.APN_TYPE_HIPRI }; String[] types; int apnId; if (mRequestedApnType.equals(PhoneConstants.APN_TYPE_DUN)) { types = mDunApnTypes; apnId = DctConstants.APN_DUN_ID; } else { types = mDefaultApnTypes; apnId = mDefaultApnId; } apnSetting = new ApnSetting(apnId, "", "", "", "", "", "", "", "", "", "", 0, types, "IP", "IP", true, 0); if (DBG) log("setupData: CDMA detected and apnSetting == null, use stubbed CDMA APN setting= " + apnSetting); } else { if (DBG) log("setupData: return for no apn found!"); return false; } } dcac = checkForCompatibleConnectedApnContext(apnContext); if (dcac != null) { Loading Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +31 −7 Original line number Diff line number Diff line Loading @@ -757,6 +757,7 @@ public class DcTracker extends DcTrackerBase { } private boolean trySetupData(ApnContext apnContext) { boolean retValue = false; if (DBG) { log("trySetupData for type:" + apnContext.getDataProfileType() + " due to " + apnContext.getReason() + " apnContext=" + apnContext); Loading Loading @@ -809,14 +810,16 @@ public class DcTracker extends DcTrackerBase { } int radioTech = mPhone.getServiceState().getRilDataRadioTechnology(); if (apnContext.getState() == DctConstants.State.IDLE) { ArrayList<DataProfile> waitingDps = buildWaitingApns(apnContext.getDataProfileType(), radioTech); if (waitingDps.isEmpty()) { notifyOffApnsOfAvailability(apnContext.getReason()); retValue = setupData(apnContext, radioTech); if(!retValue) { notifyNoData(DcFailCause.MISSING_UNKNOWN_APN, apnContext); } notifyOffApnsOfAvailability(apnContext.getReason()); if (DBG) log("trySetupData: X No APN found retValue=false"); return false; return retValue; } else { apnContext.setWaitingDataProfiles(waitingDps); if (DBG) { Loading @@ -830,7 +833,7 @@ public class DcTracker extends DcTrackerBase { log("trySetupData: call setupData, waitingApns : " + apnListToString(apnContext.getWaitingApns())); } boolean retValue = setupData(apnContext, radioTech); retValue = setupData(apnContext, radioTech); notifyOffApnsOfAvailability(apnContext.getReason()); if (DBG) log("trySetupData: X retValue=" + retValue); Loading Loading @@ -1185,9 +1188,30 @@ public class DcTracker extends DcTrackerBase { int profileId = getApnProfileID(apnContext.getDataProfileType()); apnSetting = apnContext.getNextWaitingApn(); if (apnSetting == null) { if(PhoneConstants.PHONE_TYPE_CDMA==mPhone.getPhoneType()) { String[] mDunApnTypes = { PhoneConstants.APN_TYPE_DUN }; final int mDefaultApnId = DctConstants.APN_DEFAULT_ID; final String[] mDefaultApnTypes = { PhoneConstants.APN_TYPE_DEFAULT, PhoneConstants.APN_TYPE_MMS, PhoneConstants.APN_TYPE_HIPRI }; String[] types; int apnId; if (mRequestedApnType.equals(PhoneConstants.APN_TYPE_DUN)) { types = mDunApnTypes; apnId = DctConstants.APN_DUN_ID; } else { types = mDefaultApnTypes; apnId = mDefaultApnId; } apnSetting = new ApnSetting(apnId, "", "", "", "", "", "", "", "", "", "", 0, types, "IP", "IP", true, 0); if (DBG) log("setupData: CDMA detected and apnSetting == null, use stubbed CDMA APN setting= " + apnSetting); } else { if (DBG) log("setupData: return for no apn found!"); return false; } } dcac = checkForCompatibleConnectedApnContext(apnContext); if (dcac != null) { Loading