From cf7c2374a91621d01310341f2a2bab2c9c316c7e Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Tue, 21 Jun 2016 14:04:39 -0400 Subject: [PATCH] Fix tethering re-enable after edit. 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 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java index 86fb1d397aa..3f9129355e0 100644 --- a/src/com/android/settings/TetherSettings.java +++ b/src/com/android/settings/TetherSettings.java @@ -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();