From 6ce96faa0c8dc74ea6d1391aa54d9c6909810dc1 Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Thu, 27 Aug 2009 17:11:56 -0700 Subject: [PATCH] Don't mark an APN disabled if setup fails We need to leave the phone in a connectable state so that it connects whenever it's able (reception or just timing). If we mark it disabled on failure it wont try again. The retry comes from the phone layer, not from ConnectivityService. Also Fix the Phone layer so it retries even if it disconnected by request (DATA_DISABLED). This was a bug from long ago that didn't become visible until recently with fast wifi and slow mobile teardown. Change-Id: I04bf39fba0cb578c87d5fc6ea5d220820ff9f364 --- .../internal/telephony/DataConnectionTracker.java | 10 +--------- .../telephony/cdma/CdmaDataConnectionTracker.java | 3 +-- .../telephony/gsm/GsmDataConnectionTracker.java | 3 +-- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java index 79c4b419ae699..ece708acf5c5a 100644 --- a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java @@ -280,16 +280,8 @@ public abstract class DataConnectionTracker extends Handler { if (!dataEnabled[apnId]) { dataEnabled[apnId] = true; enabledCount++; - if (enabledCount == 1) { - if (onTrySetupData(null) == false) { - // failed to setup data - note we can't optimize by only adj - // these after a successfull call. dataEnabled must be set - // prior or we think data is not available. - dataEnabled[apnId] = false; - enabledCount--; - } - } } + onTrySetupData(null); } else { // disable if (dataEnabled[apnId]) { diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java index 3cabd2d2d3ced..ffaa1cdc9fa7c 100644 --- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java @@ -568,8 +568,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker { private boolean retryAfterDisconnected(String reason) { boolean retry = true; - if ( Phone.REASON_RADIO_TURNED_OFF.equals(reason) || - Phone.REASON_DATA_DISABLED.equals(reason) ) { + if ( Phone.REASON_RADIO_TURNED_OFF.equals(reason) ) { retry = false; } return retry; diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java index d057dfeffdf2e..0215ab233c7b8 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java @@ -1010,8 +1010,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { private boolean retryAfterDisconnected(String reason) { boolean retry = true; - if ( Phone.REASON_RADIO_TURNED_OFF.equals(reason) || - Phone.REASON_DATA_DISABLED.equals(reason) ) { + if ( Phone.REASON_RADIO_TURNED_OFF.equals(reason) ) { retry = false; } return retry;