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
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 @@
                 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 @@
     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 @@
         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 @@
                         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);
                         }
                     }