Loading src/com/android/settings/TetherSettings.java +38 −6 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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"; Loading @@ -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; Loading @@ -89,7 +92,6 @@ public class TetherSettings extends SettingsPreferenceFragment private String[] mSecurityType; private Preference mCreateNetwork; private CheckBoxPreference mEnableWifiAp; private WifiApDialog mDialog; private WifiManager mWifiManager; Loading @@ -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); Loading @@ -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); } Loading @@ -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( Loading Loading @@ -315,6 +316,7 @@ public class TetherSettings extends SettingsPreferenceFragment if (intent != null) mTetherChangeReceiver.onReceive(activity, intent); if (mWifiApEnabler != null) { mEnableWifiAp.setOnPreferenceChangeListener(this); mWifiApEnabler.resume(); } Loading @@ -327,6 +329,7 @@ public class TetherSettings extends SettingsPreferenceFragment getActivity().unregisterReceiver(mTetherChangeReceiver); mTetherChangeReceiver = null; if (mWifiApEnabler != null) { mEnableWifiAp.setOnPreferenceChangeListener(null); mWifiApEnabler.pause(); } } Loading Loading @@ -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 = Loading src/com/android/settings/wifi/WifiApEnabler.java +2 −10 Original line number Diff line number Diff line Loading @@ -33,14 +33,13 @@ import android.net.wifi.SupplicantState; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.preference.Preference; import android.preference.CheckBoxPreference; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.widget.Toast; public class WifiApEnabler implements Preference.OnPreferenceChangeListener { public class WifiApEnabler { private final Context mContext; private final CheckBoxPreference mCheckBox; private final CharSequence mOriginalSummary; Loading Loading @@ -92,12 +91,10 @@ public class WifiApEnabler implements Preference.OnPreferenceChangeListener { public void resume() { mContext.registerReceiver(mReceiver, mIntentFilter); enableWifiCheckBox(); mCheckBox.setOnPreferenceChangeListener(this); } public void pause() { mContext.unregisterReceiver(mReceiver); mCheckBox.setOnPreferenceChangeListener(null); } private void enableWifiCheckBox() { Loading @@ -111,11 +108,8 @@ public class WifiApEnabler implements Preference.OnPreferenceChangeListener { } } public boolean onPreferenceChange(Preference preference, Object value) { public void setSoftapEnabled(boolean enable) { final ContentResolver cr = mContext.getContentResolver(); boolean enable = (Boolean)value; /** * Disable Wifi if enabling tethering */ Loading Loading @@ -148,8 +142,6 @@ public class WifiApEnabler implements Preference.OnPreferenceChangeListener { Settings.Secure.putInt(cr, Settings.Secure.WIFI_SAVED_STATE, 0); } } return false; } public void updateConfigSummary(WifiConfiguration wifiConfig) { Loading Loading
src/com/android/settings/TetherSettings.java +38 −6 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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"; Loading @@ -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; Loading @@ -89,7 +92,6 @@ public class TetherSettings extends SettingsPreferenceFragment private String[] mSecurityType; private Preference mCreateNetwork; private CheckBoxPreference mEnableWifiAp; private WifiApDialog mDialog; private WifiManager mWifiManager; Loading @@ -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); Loading @@ -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); } Loading @@ -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( Loading Loading @@ -315,6 +316,7 @@ public class TetherSettings extends SettingsPreferenceFragment if (intent != null) mTetherChangeReceiver.onReceive(activity, intent); if (mWifiApEnabler != null) { mEnableWifiAp.setOnPreferenceChangeListener(this); mWifiApEnabler.resume(); } Loading @@ -327,6 +329,7 @@ public class TetherSettings extends SettingsPreferenceFragment getActivity().unregisterReceiver(mTetherChangeReceiver); mTetherChangeReceiver = null; if (mWifiApEnabler != null) { mEnableWifiAp.setOnPreferenceChangeListener(null); mWifiApEnabler.pause(); } } Loading Loading @@ -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 = Loading
src/com/android/settings/wifi/WifiApEnabler.java +2 −10 Original line number Diff line number Diff line Loading @@ -33,14 +33,13 @@ import android.net.wifi.SupplicantState; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.preference.Preference; import android.preference.CheckBoxPreference; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.widget.Toast; public class WifiApEnabler implements Preference.OnPreferenceChangeListener { public class WifiApEnabler { private final Context mContext; private final CheckBoxPreference mCheckBox; private final CharSequence mOriginalSummary; Loading Loading @@ -92,12 +91,10 @@ public class WifiApEnabler implements Preference.OnPreferenceChangeListener { public void resume() { mContext.registerReceiver(mReceiver, mIntentFilter); enableWifiCheckBox(); mCheckBox.setOnPreferenceChangeListener(this); } public void pause() { mContext.unregisterReceiver(mReceiver); mCheckBox.setOnPreferenceChangeListener(null); } private void enableWifiCheckBox() { Loading @@ -111,11 +108,8 @@ public class WifiApEnabler implements Preference.OnPreferenceChangeListener { } } public boolean onPreferenceChange(Preference preference, Object value) { public void setSoftapEnabled(boolean enable) { final ContentResolver cr = mContext.getContentResolver(); boolean enable = (Boolean)value; /** * Disable Wifi if enabling tethering */ Loading Loading @@ -148,8 +142,6 @@ public class WifiApEnabler implements Preference.OnPreferenceChangeListener { Settings.Secure.putInt(cr, Settings.Secure.WIFI_SAVED_STATE, 0); } } return false; } public void updateConfigSummary(WifiConfiguration wifiConfig) { Loading