summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/TetherSettings.java
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2011-10-06 11:45:45 -0700
committerIrfan Sheriff <isheriff@google.com>2011-10-06 11:45:45 -0700
commitaa3d2c406ed0af9bf6890e9984e6b2c1be8cbd99 (patch)
tree4da7c60d919abe09ac0c6e2e18cf2a2733f5be24 /src/com/android/settings/TetherSettings.java
parent3f28ff1a065d713480cc5422a702373c2ffb280a (diff)
downloadpackages_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.java44
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 =