diff options
| author | Irfan Sheriff <isheriff@google.com> | 2010-03-24 12:14:28 -0700 |
|---|---|---|
| committer | Irfan Sheriff <isheriff@google.com> | 2010-03-25 11:39:11 -0700 |
| commit | a6a74e222a994e29a1daa7178943a1fc9dd06c47 (patch) | |
| tree | 7ff67bf75e4294a32c017bd541a14f7ad98773d3 /src | |
| parent | 305b0fb47c16f5ded987a9fcd7a9aa22fc70c2eb (diff) | |
| download | packages_apps_Settings-a6a74e222a994e29a1daa7178943a1fc9dd06c47.zip packages_apps_Settings-a6a74e222a994e29a1daa7178943a1fc9dd06c47.tar.gz packages_apps_Settings-a6a74e222a994e29a1daa7178943a1fc9dd06c47.tar.bz2 | |
Disable tethering to enable Wifi
We need to explicitly disable wifi while enabling
tethering and disable tethering while enabling wifi
Bug: 2539071
Change-Id: I7fda6e4d9d1bb804e81561d52b5f3a982a674b0e
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/settings/widget/SettingsAppWidgetProvider.java | 9 | ||||
| -rw-r--r-- | src/com/android/settings/wifi/WifiApEnabler.java | 9 | ||||
| -rw-r--r-- | src/com/android/settings/wifi/WifiEnabler.java | 8 |
3 files changed, 26 insertions, 0 deletions
diff --git a/src/com/android/settings/widget/SettingsAppWidgetProvider.java b/src/com/android/settings/widget/SettingsAppWidgetProvider.java index 2fd618c..872d303 100644 --- a/src/com/android/settings/widget/SettingsAppWidgetProvider.java +++ b/src/com/android/settings/widget/SettingsAppWidgetProvider.java @@ -248,6 +248,15 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { if (withToast) { Toast.makeText(context, R.string.gadget_toggle_wifi, Toast.LENGTH_SHORT).show(); } + /** + * Disable tethering if enabling Wifi + */ + int wifiApState = wifiManager.getWifiApState(); + if (desiredState && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) || + (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED))) { + wifiManager.setWifiApEnabled(null, false); + } + wifiManager.setWifiEnabled(desiredState); } diff --git a/src/com/android/settings/wifi/WifiApEnabler.java b/src/com/android/settings/wifi/WifiApEnabler.java index 3d8d282..c2f8395 100644 --- a/src/com/android/settings/wifi/WifiApEnabler.java +++ b/src/com/android/settings/wifi/WifiApEnabler.java @@ -97,6 +97,15 @@ public class WifiApEnabler implements Preference.OnPreferenceChangeListener { public boolean onPreferenceChange(Preference preference, Object enable) { + /** + * Disable Wifi if enabling tethering + */ + int wifiState = mWifiManager.getWifiState(); + if ((Boolean)enable && ((wifiState == WifiManager.WIFI_STATE_ENABLING) || + (wifiState == WifiManager.WIFI_STATE_ENABLED))) { + mWifiManager.setWifiEnabled(false); + } + if (mWifiManager.setWifiApEnabled(null, (Boolean)enable)) { /* Disable here, enabled on receiving success broadcast */ mCheckBox.setEnabled(false); diff --git a/src/com/android/settings/wifi/WifiEnabler.java b/src/com/android/settings/wifi/WifiEnabler.java index 6c55136..ef9f346 100644 --- a/src/com/android/settings/wifi/WifiEnabler.java +++ b/src/com/android/settings/wifi/WifiEnabler.java @@ -92,6 +92,14 @@ public class WifiEnabler implements Preference.OnPreferenceChangeListener { return false; } + /** + * Disable tethering if enabling Wifi + */ + int wifiApState = mWifiManager.getWifiApState(); + if (enable && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) || + (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED))) { + mWifiManager.setWifiApEnabled(null, false); + } if (mWifiManager.setWifiEnabled(enable)) { mCheckBox.setEnabled(false); } else { |
