diff options
| -rw-r--r-- | telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java index 6ab217bc2b2b..1ac012f042db 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java @@ -846,9 +846,16 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { return result; } + private boolean dataConnectionNotInUse(DataConnectionAc dcac) { + for (ApnContext apnContext : mApnContexts.values()) { + if (apnContext.getDataConnectionAc() == dcac) return false; + } + return true; + } + private GsmDataConnection findFreeDataConnection() { for (DataConnectionAc dcac : mDataConnectionAsyncChannels.values()) { - if (dcac.isInactiveSync()) { + if (dcac.isInactiveSync() && dataConnectionNotInUse(dcac)) { log("findFreeDataConnection: found free GsmDataConnection"); return (GsmDataConnection) dcac.dataConnection; } |