OSDN Git Service

Fix tethering re-enable after edit.
authorJason Monk <jmonk@google.com>
Tue, 21 Jun 2016 18:04:39 +0000 (14:04 -0400)
committerJason Monk <jmonk@google.com>
Tue, 21 Jun 2016 18:06:48 +0000 (14:06 -0400)
Sometimes the tether state change comes in late (or seemingly not
at all).  Also listen for wifi ap state changes as a fallback for
this case.

Change-Id: I6677c4277453be881967a3cf2234de11cd0237b8
Fixes: 28851179

src/com/android/settings/TetherSettings.java

index 86fb1d3..3f91293 100644 (file)
@@ -273,6 +273,14 @@ public class TetherSettings extends RestrictedSettingsFragment
                     Log.d(TAG, "Restarting WifiAp due to prior config change.");
                     startTethering(TETHERING_WIFI);
                 }
+            } else if (action.equals(WifiManager.WIFI_AP_STATE_CHANGED_ACTION)) {
+                int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_AP_STATE, 0);
+                if (state == WifiManager.WIFI_AP_STATE_DISABLED
+                        && mRestartWifiApAfterConfigChange) {
+                    mRestartWifiApAfterConfigChange = false;
+                    Log.d(TAG, "Restarting WifiAp due to prior config change.");
+                    startTethering(TETHERING_WIFI);
+                }
             } else if (action.equals(Intent.ACTION_MEDIA_SHARED)) {
                 mMassStorageActive = true;
                 updateState();
@@ -324,6 +332,7 @@ public class TetherSettings extends RestrictedSettingsFragment
         mMassStorageActive = Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
         mTetherChangeReceiver = new TetherChangeReceiver();
         IntentFilter filter = new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
+        filter.addAction(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
         Intent intent = activity.registerReceiver(mTetherChangeReceiver, filter);
 
         filter = new IntentFilter();