OSDN Git Service

DO NOT MERGE Disable WiMAX when "Data Enabled" is off
authorTK MUN <tk.mun@samsung.com>
Wed, 30 Mar 2011 00:27:07 +0000 (09:27 +0900)
committerSimon Wilson <simonwilson@google.com>
Wed, 30 Mar 2011 20:18:23 +0000 (13:18 -0700)
When user uncheck "Data Enabled" check box, WiMAX goes
into "disconnected" state.

Change-Id: I3b9bdbc16cc4ddbf7a1aac0c984cad8994c4e9f2
Signed-off-by: TK MUN <tk.mun@samsung.com>
services/java/com/android/server/ConnectivityService.java

index 8f0816d..8c4bf18 100644 (file)
@@ -391,6 +391,10 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                     nst.startMonitoring();
                 }
                 mNetTrackers[netType] = nst;
+                if (noMobileData) {
+                    if (DBG) Slog.d(TAG, "tearing down WiMAX networks due to setting");
+                    mNetTrackers[netType].teardown();
+                }
                 break;
             default:
                 Slog.e(TAG, "Trying to create a DataStateTracker for an unknown radio type " +
@@ -987,6 +991,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                 }
                 mNetTrackers[ConnectivityManager.TYPE_MOBILE].reconnect();
             }
+            if (mNetTrackers[ConnectivityManager.TYPE_WIMAX] != null) {
+                if (DBG) {
+                    Slog.d(TAG, "starting up " + mNetTrackers[ConnectivityManager.TYPE_WIMAX]);
+                }
+                mNetTrackers[ConnectivityManager.TYPE_WIMAX].reconnect();
+            }
         } else {
             for (NetworkStateTracker nt : mNetTrackers) {
                 if (nt == null) continue;
@@ -996,6 +1006,9 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                     nt.teardown();
                 }
             }
+            if (mNetTrackers[ConnectivityManager.TYPE_WIMAX] != null) {
+                mNetTrackers[ConnectivityManager.TYPE_WIMAX].teardown();
+            }
         }
     }
 
@@ -1124,6 +1137,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                             " because Mobile Data Disabled");
                     continue;
                 }
+                if (mNetAttributes[checkType].mRadio == ConnectivityManager.TYPE_WIMAX &&
+                        noMobileData) {
+                    Slog.e(TAG, "not failing over to mobile type " + checkType +
+                            " because Mobile Data Disabled");
+                    continue;
+                }
                 NetworkStateTracker checkTracker = mNetTrackers[checkType];
                 NetworkInfo checkInfo = checkTracker.getNetworkInfo();
                 if (!checkInfo.isConnectedOrConnecting() || checkTracker.isTeardownRequested()) {