summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
index a6b131a91106..fe57d0dc1595 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
@@ -608,16 +608,18 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
if (dcac.dataConnection != null) {
dcac.dataConnection.resetRetryCount();
}
-
- Collection<ApnContext> apnList = dcac.getApnListSync();
- for (ApnContext apnContext : apnList) {
- apnContext.setState(State.IDLE);
- }
}
}
// Only check for default APN state
for (ApnContext apnContext : mApnContexts.values()) {
+ if (apnContext.getState() == State.FAILED) {
+ // By this time, alarms for all failed Apns
+ // should be stopped if any.
+ // Make sure to set the state back to IDLE
+ // so that setup data can happen.
+ apnContext.setState(State.IDLE);
+ }
if (apnContext.isReady()) {
if (apnContext.getState() == State.IDLE) {
apnContext.setReason(reason);