diff --git a/core/java/android/net/MobileDataStateTracker.java b/core/java/android/net/MobileDataStateTracker.java index b1421d12657cc..f88fcdcd9c602 100644 --- a/core/java/android/net/MobileDataStateTracker.java +++ b/core/java/android/net/MobileDataStateTracker.java @@ -147,7 +147,10 @@ public class MobileDataStateTracker extends NetworkStateTracker { ", unavailable = " + unavailable + ", reason = " + (reason == null ? "(unspecified)" : reason)); + if (isApnTypeIncluded(apnTypeList)) { + // set this even if the apn isn't Enabled + mNetworkInfo.setIsAvailable(!unavailable); if (mEnabled == false) { // if we're not enabled but the APN Type is supported by this connection // we should record the interface name if one's provided. If the user @@ -168,7 +171,6 @@ public class MobileDataStateTracker extends NetworkStateTracker { return; } - mNetworkInfo.setIsAvailable(!unavailable); if (mMobileDataState != state) { mMobileDataState = state; switch (state) { diff --git a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java index e187c37f4e376..cfb465efeca63 100644 --- a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java @@ -453,7 +453,8 @@ public abstract class DataConnectionTracker extends Handler { } protected synchronized void setEnabled(int id, boolean enable) { - if (DBG) Log.d(LOG_TAG, "setEnabled(" + id + ", " + enable + ')'); + if (DBG) Log.d(LOG_TAG, "setEnabled(" + id + ", " + enable + ") with old state = " + + dataEnabled[id] + " and enabledCount = " + enabledCount); if (dataEnabled[id] != enable) { dataEnabled[id] = enable;