diff options
author | Robert Greenwalt <robdroid@android.com> | 2009-08-20 15:25:14 -0700 |
---|---|---|
committer | Robert Greenwalt <robdroid@android.com> | 2009-08-24 16:19:42 -0700 |
commit | ec9fe4672a46eb928ab710d8e3caf2ce046100d4 (patch) | |
tree | 377b56f8959c8842a6cca77e3a0182c9a0e15978 | |
parent | 2e951b5511750ebfbba28263ee5384bfa7f45128 (diff) | |
download | frameworks_base-ec9fe4672a46eb928ab710d8e3caf2ce046100d4.zip frameworks_base-ec9fe4672a46eb928ab710d8e3caf2ce046100d4.tar.gz frameworks_base-ec9fe4672a46eb928ab710d8e3caf2ce046100d4.tar.bz2 |
Fix a race condition for data change notification
We could sometimes not be told about network state changes breaking subsequent mms access.
Turning on more logging too.
bug: 2069106
-rw-r--r-- | core/java/android/net/MobileDataStateTracker.java | 1 | ||||
-rw-r--r-- | core/java/android/net/NetworkStateTracker.java | 2 | ||||
-rw-r--r-- | services/java/com/android/server/ConnectivityService.java | 9 |
3 files changed, 11 insertions, 1 deletions
diff --git a/core/java/android/net/MobileDataStateTracker.java b/core/java/android/net/MobileDataStateTracker.java index 3e4bbd5..b1421d1 100644 --- a/core/java/android/net/MobileDataStateTracker.java +++ b/core/java/android/net/MobileDataStateTracker.java @@ -320,6 +320,7 @@ public class MobileDataStateTracker extends NetworkStateTracker { mEnabled = true; // need to set self to CONNECTING so the below message is handled. mMobileDataState = Phone.DataState.CONNECTING; + setDetailedState(DetailedState.CONNECTING, Phone.REASON_APN_CHANGED, null); //send out a connected message Intent intent = new Intent(TelephonyIntents. ACTION_ANY_DATA_CONNECTION_STATE_CHANGED); diff --git a/core/java/android/net/NetworkStateTracker.java b/core/java/android/net/NetworkStateTracker.java index 418f511..54529ae 100644 --- a/core/java/android/net/NetworkStateTracker.java +++ b/core/java/android/net/NetworkStateTracker.java @@ -48,7 +48,7 @@ public abstract class NetworkStateTracker extends Handler { private boolean mDefaultRouteSet; private boolean mTeardownRequested; - private static boolean DBG = Config.LOGV; + private static boolean DBG = true; private static final String TAG = "NetworkStateTracker"; public static final int EVENT_STATE_CHANGED = 1; diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index df37d35..4e24a4b 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -357,6 +357,11 @@ public class ConnectivityService extends IConnectivityManager.Stub { for (int t=0; t <= ConnectivityManager.MAX_RADIO_TYPE; t++) { if (t != mNetworkPreference && mNetTrackers[t].getNetworkInfo().isConnected()) { + if (DBG) { + Log.d(TAG, "tearing down " + + mNetTrackers[t].getNetworkInfo() + + " in enforcePreference"); + } teardown(mNetTrackers[t]); } } @@ -1232,6 +1237,10 @@ public class ConnectivityService extends IConnectivityManager.Stub { NetworkInfo i = net.getNetworkInfo(); if (i.isConnected() && !mNetAttributes[i.getType()].isDefault()) { + if (DBG) { + Log.d(TAG, "tearing down " + i + + " to restore the default network"); + } teardown(net); } } |