diff options
author | Irfan Sheriff <isheriff@google.com> | 2011-10-06 11:45:45 -0700 |
---|---|---|
committer | Irfan Sheriff <isheriff@google.com> | 2011-10-06 11:45:45 -0700 |
commit | aa3d2c406ed0af9bf6890e9984e6b2c1be8cbd99 (patch) | |
tree | 4da7c60d919abe09ac0c6e2e18cf2a2733f5be24 /src/com/android/settings/TetherSettings.java | |
parent | 3f28ff1a065d713480cc5422a702373c2ffb280a (diff) | |
download | packages_apps_Settings-aa3d2c406ed0af9bf6890e9984e6b2c1be8cbd99.zip packages_apps_Settings-aa3d2c406ed0af9bf6890e9984e6b2c1be8cbd99.tar.gz packages_apps_Settings-aa3d2c406ed0af9bf6890e9984e6b2c1be8cbd99.tar.bz2 |
Add mobile hotspot provisioning support
Bug: 5346812
Change-Id: I3e117fb62039c1d8370440ab4109705894011928
Diffstat (limited to 'src/com/android/settings/TetherSettings.java')
-rw-r--r-- | src/com/android/settings/TetherSettings.java | 44 |
1 files changed, 38 insertions, 6 deletions
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java index 3ecde80..107b53a 100644 --- a/src/com/android/settings/TetherSettings.java +++ b/src/com/android/settings/TetherSettings.java @@ -40,6 +40,7 @@ import android.os.Environment; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.PreferenceScreen; +import android.text.TextUtils; import android.view.ViewGroup; import android.view.ViewParent; import android.webkit.WebView; @@ -52,7 +53,7 @@ import java.util.Locale; * Displays preferences for Tethering. */ public class TetherSettings extends SettingsPreferenceFragment - implements DialogInterface.OnClickListener { + implements DialogInterface.OnClickListener, Preference.OnPreferenceChangeListener { private static final String USB_TETHER_SETTINGS = "usb_tether_settings"; private static final String ENABLE_WIFI_AP = "enable_wifi_ap"; @@ -70,6 +71,8 @@ public class TetherSettings extends SettingsPreferenceFragment private CheckBoxPreference mUsbTether; private WifiApEnabler mWifiApEnabler; + private CheckBoxPreference mEnableWifiAp; + private static final int MHS_REQUEST = 0; private CheckBoxPreference mBluetoothTether; @@ -89,7 +92,6 @@ public class TetherSettings extends SettingsPreferenceFragment private String[] mSecurityType; private Preference mCreateNetwork; - private CheckBoxPreference mEnableWifiAp; private WifiApDialog mDialog; private WifiManager mWifiManager; @@ -112,7 +114,7 @@ public class TetherSettings extends SettingsPreferenceFragment BluetoothProfile.PAN); } - CheckBoxPreference enableWifiAp = + mEnableWifiAp = (CheckBoxPreference) findPreference(ENABLE_WIFI_AP); Preference wifiApSettings = findPreference(WIFI_AP_SSID_AND_SECURITY); mUsbTether = (CheckBoxPreference) findPreference(USB_TETHER_SETTINGS); @@ -135,10 +137,10 @@ public class TetherSettings extends SettingsPreferenceFragment } if (wifiAvailable) { - mWifiApEnabler = new WifiApEnabler(activity, enableWifiAp); + mWifiApEnabler = new WifiApEnabler(activity, mEnableWifiAp); initWifiTethering(); } else { - getPreferenceScreen().removePreference(enableWifiAp); + getPreferenceScreen().removePreference(mEnableWifiAp); getPreferenceScreen().removePreference(wifiApSettings); } @@ -162,7 +164,6 @@ public class TetherSettings extends SettingsPreferenceFragment mSecurityType = getResources().getStringArray(R.array.wifi_ap_security); mCreateNetwork = findPreference(WIFI_AP_SSID_AND_SECURITY); - mEnableWifiAp = (CheckBoxPreference) findPreference(ENABLE_WIFI_AP); if (mWifiConfig == null) { final String s = activity.getString( @@ -315,6 +316,7 @@ public class TetherSettings extends SettingsPreferenceFragment if (intent != null) mTetherChangeReceiver.onReceive(activity, intent); if (mWifiApEnabler != null) { + mEnableWifiAp.setOnPreferenceChangeListener(this); mWifiApEnabler.resume(); } @@ -327,6 +329,7 @@ public class TetherSettings extends SettingsPreferenceFragment getActivity().unregisterReceiver(mTetherChangeReceiver); mTetherChangeReceiver = null; if (mWifiApEnabler != null) { + mEnableWifiAp.setOnPreferenceChangeListener(null); mWifiApEnabler.pause(); } } @@ -447,6 +450,35 @@ public class TetherSettings extends SettingsPreferenceFragment } } + public boolean onPreferenceChange(Preference preference, Object value) { + boolean enable = (Boolean) value; + + if (enable) { + //Check if provisioning is needed + String intentStr = getActivity().getString( + com.android.internal.R.string.config_mobile_hotspot_provision_intent); + + if (TextUtils.isEmpty(intentStr)) { + mWifiApEnabler.setSoftapEnabled(true); + } else { + Intent intent = new Intent(intentStr); + startActivityForResult(intent, MHS_REQUEST); + } + } else { + mWifiApEnabler.setSoftapEnabled(false); + } + return false; + } + + public void onActivityResult(int requestCode, int resultCode, Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + if (requestCode == MHS_REQUEST) { + if (resultCode == Activity.RESULT_OK) { + mWifiApEnabler.setSoftapEnabled(true); + } + } + } + @Override public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) { ConnectivityManager cm = |