Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +16 −12 Original line number Diff line number Diff line Loading @@ -1546,7 +1546,7 @@ public class DcTracker extends Handler { * were already all disconnected. */ private boolean cleanUpAllConnectionsInternal(boolean detach, String reason) { if (DBG) log("cleanUpAllConnections: detach=" + detach + " reason=" + reason); if (DBG) log("cleanUpAllConnectionsInternal: detach=" + detach + " reason=" + reason); boolean didDisconnect = false; boolean disableMeteredOnly = false; Loading @@ -1554,8 +1554,7 @@ public class DcTracker extends Handler { if (!TextUtils.isEmpty(reason)) { disableMeteredOnly = reason.equals(Phone.REASON_DATA_SPECIFIC_DISABLED) || reason.equals(Phone.REASON_ROAMING_ON) || reason.equals(Phone.REASON_CARRIER_ACTION_DISABLE_METERED_APN) || reason.equals(Phone.REASON_PDP_RESET); reason.equals(Phone.REASON_CARRIER_ACTION_DISABLE_METERED_APN); } for (ApnContext apnContext : mApnContexts.values()) { Loading @@ -1570,6 +1569,9 @@ public class DcTracker extends Handler { if (apnContext.isDisconnected() == false) didDisconnect = true; apnContext.setReason(reason); cleanUpConnectionInternal(detach, RELEASE_TYPE_DETACH, apnContext); } else if (DBG) { log("cleanUpAllConnectionsInternal: APN type " + apnContext.getApnType() + " shouldn't be cleaned up."); } } Loading @@ -1579,7 +1581,8 @@ public class DcTracker extends Handler { // TODO: Do we need mRequestedApnType? mRequestedApnType = ApnSetting.TYPE_DEFAULT; log("cleanUpConnectionInternal: mDisconnectPendingCount = " + mDisconnectPendingCount); log("cleanUpAllConnectionsInternal: mDisconnectPendingCount = " + mDisconnectPendingCount); if (detach && mDisconnectPendingCount == 0) { notifyAllDataDisconnected(); } Loading @@ -1597,13 +1600,13 @@ public class DcTracker extends Handler { ApnSetting apnSetting = apnContext.getApnSetting(); if (apnSetting == null || !ApnSettingUtils.isMetered(apnSetting, mPhone)) return false; // Depending on it's roaming or not, return whether data is enabled or roaming data // is enabled. if (mPhone.getServiceState().getDataRoaming()) { return !getDataRoamingEnabled(); } else { return mDataEnabledSettings.isDataEnabled(apnSetting.getApnTypeBitmask()); } boolean isRoaming = mPhone.getServiceState().getDataRoaming(); boolean isDataRoamingDisabled = !getDataRoamingEnabled(); boolean isDataDisabled = !mDataEnabledSettings.isDataEnabled( apnSetting.getApnTypeBitmask()); // Should clean up if its data is disabled, or data roaming is disabled while roaming. return isDataDisabled || (isRoaming && isDataRoamingDisabled); } /** Loading Loading @@ -4514,7 +4517,8 @@ public class DcTracker extends Handler { EventLog.writeEvent(EventLogTags.DATA_STALL_RECOVERY_CLEANUP, mSentSinceLastRecv); if (DBG) log("doRecovery() cleanup all connections"); cleanUpAllConnections(Phone.REASON_PDP_RESET); cleanUpConnection(mApnContexts.get(ApnSetting.getApnTypeString( ApnSetting.TYPE_DEFAULT))); putRecoveryAction(RECOVERY_ACTION_REREGISTER); break; case RECOVERY_ACTION_REREGISTER: Loading Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +16 −12 Original line number Diff line number Diff line Loading @@ -1546,7 +1546,7 @@ public class DcTracker extends Handler { * were already all disconnected. */ private boolean cleanUpAllConnectionsInternal(boolean detach, String reason) { if (DBG) log("cleanUpAllConnections: detach=" + detach + " reason=" + reason); if (DBG) log("cleanUpAllConnectionsInternal: detach=" + detach + " reason=" + reason); boolean didDisconnect = false; boolean disableMeteredOnly = false; Loading @@ -1554,8 +1554,7 @@ public class DcTracker extends Handler { if (!TextUtils.isEmpty(reason)) { disableMeteredOnly = reason.equals(Phone.REASON_DATA_SPECIFIC_DISABLED) || reason.equals(Phone.REASON_ROAMING_ON) || reason.equals(Phone.REASON_CARRIER_ACTION_DISABLE_METERED_APN) || reason.equals(Phone.REASON_PDP_RESET); reason.equals(Phone.REASON_CARRIER_ACTION_DISABLE_METERED_APN); } for (ApnContext apnContext : mApnContexts.values()) { Loading @@ -1570,6 +1569,9 @@ public class DcTracker extends Handler { if (apnContext.isDisconnected() == false) didDisconnect = true; apnContext.setReason(reason); cleanUpConnectionInternal(detach, RELEASE_TYPE_DETACH, apnContext); } else if (DBG) { log("cleanUpAllConnectionsInternal: APN type " + apnContext.getApnType() + " shouldn't be cleaned up."); } } Loading @@ -1579,7 +1581,8 @@ public class DcTracker extends Handler { // TODO: Do we need mRequestedApnType? mRequestedApnType = ApnSetting.TYPE_DEFAULT; log("cleanUpConnectionInternal: mDisconnectPendingCount = " + mDisconnectPendingCount); log("cleanUpAllConnectionsInternal: mDisconnectPendingCount = " + mDisconnectPendingCount); if (detach && mDisconnectPendingCount == 0) { notifyAllDataDisconnected(); } Loading @@ -1597,13 +1600,13 @@ public class DcTracker extends Handler { ApnSetting apnSetting = apnContext.getApnSetting(); if (apnSetting == null || !ApnSettingUtils.isMetered(apnSetting, mPhone)) return false; // Depending on it's roaming or not, return whether data is enabled or roaming data // is enabled. if (mPhone.getServiceState().getDataRoaming()) { return !getDataRoamingEnabled(); } else { return mDataEnabledSettings.isDataEnabled(apnSetting.getApnTypeBitmask()); } boolean isRoaming = mPhone.getServiceState().getDataRoaming(); boolean isDataRoamingDisabled = !getDataRoamingEnabled(); boolean isDataDisabled = !mDataEnabledSettings.isDataEnabled( apnSetting.getApnTypeBitmask()); // Should clean up if its data is disabled, or data roaming is disabled while roaming. return isDataDisabled || (isRoaming && isDataRoamingDisabled); } /** Loading Loading @@ -4514,7 +4517,8 @@ public class DcTracker extends Handler { EventLog.writeEvent(EventLogTags.DATA_STALL_RECOVERY_CLEANUP, mSentSinceLastRecv); if (DBG) log("doRecovery() cleanup all connections"); cleanUpAllConnections(Phone.REASON_PDP_RESET); cleanUpConnection(mApnContexts.get(ApnSetting.getApnTypeString( ApnSetting.TYPE_DEFAULT))); putRecoveryAction(RECOVERY_ACTION_REREGISTER); break; case RECOVERY_ACTION_REREGISTER: Loading