Remove code for old wifi tether feature
Change-Id: If92798ddf075801e66cd97ecacff2f8df1e41985 Fix: 64032458 Test: rerun robotests
This commit is contained in:
@@ -1,263 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.wifi;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiConfiguration.AuthAlgorithm;
|
||||
import android.net.wifi.WifiConfiguration.KeyMgmt;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.InputType;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
|
||||
/**
|
||||
* Dialog to configure the SSID and security settings
|
||||
* for Access Point operation
|
||||
*/
|
||||
public class WifiApDialog extends AlertDialog implements View.OnClickListener,
|
||||
TextWatcher, AdapterView.OnItemSelectedListener {
|
||||
|
||||
static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE;
|
||||
|
||||
private final DialogInterface.OnClickListener mListener;
|
||||
|
||||
public static final int OPEN_INDEX = 0;
|
||||
public static final int WPA2_INDEX = 1;
|
||||
|
||||
private View mView;
|
||||
private TextView mSsid;
|
||||
private int mSecurityTypeIndex = OPEN_INDEX;
|
||||
private EditText mPassword;
|
||||
private int mBandIndex = OPEN_INDEX;
|
||||
|
||||
WifiConfiguration mWifiConfig;
|
||||
WifiManager mWifiManager;
|
||||
private Context mContext;
|
||||
|
||||
private static final String TAG = "WifiApDialog";
|
||||
|
||||
public WifiApDialog(Context context, DialogInterface.OnClickListener listener,
|
||||
WifiConfiguration wifiConfig) {
|
||||
super(context);
|
||||
mListener = listener;
|
||||
mWifiConfig = wifiConfig;
|
||||
if (wifiConfig != null) {
|
||||
mSecurityTypeIndex = getSecurityTypeIndex(wifiConfig);
|
||||
}
|
||||
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public static int getSecurityTypeIndex(WifiConfiguration wifiConfig) {
|
||||
if (wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA2_PSK)) {
|
||||
return WPA2_INDEX;
|
||||
}
|
||||
return OPEN_INDEX;
|
||||
}
|
||||
|
||||
public WifiConfiguration getConfig() {
|
||||
|
||||
WifiConfiguration config = new WifiConfiguration();
|
||||
|
||||
/**
|
||||
* TODO: SSID in WifiConfiguration for soft ap
|
||||
* is being stored as a raw string without quotes.
|
||||
* This is not the case on the client side. We need to
|
||||
* make things consistent and clean it up
|
||||
*/
|
||||
config.SSID = mSsid.getText().toString();
|
||||
|
||||
config.apBand = mBandIndex;
|
||||
|
||||
switch (mSecurityTypeIndex) {
|
||||
case OPEN_INDEX:
|
||||
config.allowedKeyManagement.set(KeyMgmt.NONE);
|
||||
return config;
|
||||
|
||||
case WPA2_INDEX:
|
||||
config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
|
||||
config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
|
||||
if (mPassword.length() != 0) {
|
||||
String password = mPassword.getText().toString();
|
||||
config.preSharedKey = password;
|
||||
}
|
||||
return config;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
boolean mInit = true;
|
||||
mView = getLayoutInflater().inflate(R.layout.wifi_ap_dialog, null);
|
||||
Spinner mSecurity = ((Spinner) mView.findViewById(R.id.security));
|
||||
final Spinner mChannel = (Spinner) mView.findViewById(R.id.choose_channel);
|
||||
|
||||
setView(mView);
|
||||
setInverseBackgroundForced(true);
|
||||
|
||||
Context context = getContext();
|
||||
|
||||
setTitle(R.string.wifi_tether_configure_ap_text);
|
||||
mView.findViewById(R.id.type).setVisibility(View.VISIBLE);
|
||||
mSsid = (TextView) mView.findViewById(R.id.ssid);
|
||||
mPassword = (EditText) mView.findViewById(R.id.password);
|
||||
|
||||
ArrayAdapter <CharSequence> channelAdapter;
|
||||
String countryCode = mWifiManager.getCountryCode();
|
||||
if (!mWifiManager.isDualBandSupported() || countryCode == null) {
|
||||
//If no country code, 5GHz AP is forbidden
|
||||
Log.i(TAG,(!mWifiManager.isDualBandSupported() ? "Device do not support 5GHz " :"")
|
||||
+ (countryCode == null ? " NO country code" :"") + " forbid 5GHz");
|
||||
channelAdapter = ArrayAdapter.createFromResource(mContext,
|
||||
R.array.wifi_ap_band_config_2G_only, android.R.layout.simple_spinner_item);
|
||||
mWifiConfig.apBand = 0;
|
||||
} else {
|
||||
channelAdapter = ArrayAdapter.createFromResource(mContext,
|
||||
R.array.wifi_ap_band_config_full, android.R.layout.simple_spinner_item);
|
||||
}
|
||||
|
||||
channelAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
|
||||
setButton(BUTTON_SUBMIT, context.getString(R.string.wifi_save), mListener);
|
||||
setButton(DialogInterface.BUTTON_NEGATIVE,
|
||||
context.getString(R.string.wifi_cancel), mListener);
|
||||
|
||||
if (mWifiConfig != null) {
|
||||
mSsid.setText(mWifiConfig.SSID);
|
||||
if (mWifiConfig.apBand == 0) {
|
||||
mBandIndex = 0;
|
||||
} else {
|
||||
mBandIndex = 1;
|
||||
}
|
||||
|
||||
mSecurity.setSelection(mSecurityTypeIndex);
|
||||
if (mSecurityTypeIndex == WPA2_INDEX) {
|
||||
mPassword.setText(mWifiConfig.preSharedKey);
|
||||
}
|
||||
}
|
||||
|
||||
mChannel.setAdapter(channelAdapter);
|
||||
mChannel.setOnItemSelectedListener(
|
||||
new AdapterView.OnItemSelectedListener() {
|
||||
boolean mInit = true;
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> adapterView, View view, int position,
|
||||
long id) {
|
||||
if (!mInit) {
|
||||
mBandIndex = position;
|
||||
mWifiConfig.apBand = mBandIndex;
|
||||
Log.i(TAG, "config on channelIndex : " + mBandIndex + " Band: " +
|
||||
mWifiConfig.apBand);
|
||||
} else {
|
||||
mInit = false;
|
||||
mChannel.setSelection(mBandIndex);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> adapterView) {
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
mSsid.addTextChangedListener(this);
|
||||
mPassword.addTextChangedListener(this);
|
||||
((CheckBox) mView.findViewById(R.id.show_password)).setOnClickListener(this);
|
||||
mSecurity.setOnItemSelectedListener(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
showSecurityFields();
|
||||
validate();
|
||||
}
|
||||
|
||||
public void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
mPassword.setInputType(
|
||||
InputType.TYPE_CLASS_TEXT |
|
||||
(((CheckBox) mView.findViewById(R.id.show_password)).isChecked() ?
|
||||
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD :
|
||||
InputType.TYPE_TEXT_VARIATION_PASSWORD));
|
||||
}
|
||||
|
||||
private void validate() {
|
||||
String mSsidString = mSsid.getText().toString();
|
||||
if ((mSsid != null && mSsid.length() == 0)
|
||||
|| ((mSecurityTypeIndex == WPA2_INDEX) && mPassword.length() < 8)
|
||||
|| (mSsid != null &&
|
||||
Charset.forName("UTF-8").encode(mSsidString).limit() > 32)) {
|
||||
getButton(BUTTON_SUBMIT).setEnabled(false);
|
||||
} else {
|
||||
getButton(BUTTON_SUBMIT).setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void onClick(View view) {
|
||||
mPassword.setInputType(
|
||||
InputType.TYPE_CLASS_TEXT | (((CheckBox) view).isChecked() ?
|
||||
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD :
|
||||
InputType.TYPE_TEXT_VARIATION_PASSWORD));
|
||||
}
|
||||
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
}
|
||||
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
public void afterTextChanged(Editable editable) {
|
||||
validate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
mSecurityTypeIndex = position;
|
||||
showSecurityFields();
|
||||
validate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
}
|
||||
|
||||
private void showSecurityFields() {
|
||||
if (mSecurityTypeIndex == OPEN_INDEX) {
|
||||
mView.findViewById(R.id.fields).setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
mView.findViewById(R.id.fields).setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
@@ -1,188 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.wifi;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.provider.Settings;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.text.BidiFormatter;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.datausage.DataSaverBackend;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @deprecated in favor of WifiTetherPreferenceController and WifiTetherSettings
|
||||
*/
|
||||
@Deprecated
|
||||
public class WifiApEnabler {
|
||||
private final Context mContext;
|
||||
private final SwitchPreference mSwitch;
|
||||
private final CharSequence mOriginalSummary;
|
||||
private final DataSaverBackend mDataSaverBackend;
|
||||
|
||||
private WifiManager mWifiManager;
|
||||
private final IntentFilter mIntentFilter;
|
||||
|
||||
ConnectivityManager mCm;
|
||||
private String[] mWifiRegexs;
|
||||
|
||||
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
if (WifiManager.WIFI_AP_STATE_CHANGED_ACTION.equals(action)) {
|
||||
int state = intent.getIntExtra(
|
||||
WifiManager.EXTRA_WIFI_AP_STATE, WifiManager.WIFI_AP_STATE_FAILED);
|
||||
if (state == WifiManager.WIFI_AP_STATE_FAILED) {
|
||||
int reason = intent.getIntExtra(WifiManager.EXTRA_WIFI_AP_FAILURE_REASON,
|
||||
WifiManager.SAP_START_FAILURE_GENERAL);
|
||||
handleWifiApStateChanged(state, reason);
|
||||
} else {
|
||||
handleWifiApStateChanged(state, WifiManager.SAP_START_FAILURE_GENERAL);
|
||||
}
|
||||
} else if (ConnectivityManager.ACTION_TETHER_STATE_CHANGED.equals(action)) {
|
||||
ArrayList<String> available = intent.getStringArrayListExtra(
|
||||
ConnectivityManager.EXTRA_AVAILABLE_TETHER);
|
||||
ArrayList<String> active = intent.getStringArrayListExtra(
|
||||
ConnectivityManager.EXTRA_ACTIVE_TETHER);
|
||||
ArrayList<String> errored = intent.getStringArrayListExtra(
|
||||
ConnectivityManager.EXTRA_ERRORED_TETHER);
|
||||
updateTetherState(available.toArray(), active.toArray(), errored.toArray());
|
||||
} else if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) {
|
||||
enableWifiSwitch();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public WifiApEnabler(Context context, DataSaverBackend dataSaverBackend,
|
||||
SwitchPreference switchPreference) {
|
||||
mContext = context;
|
||||
mDataSaverBackend = dataSaverBackend;
|
||||
mSwitch = switchPreference;
|
||||
mOriginalSummary = switchPreference.getSummary();
|
||||
switchPreference.setPersistent(false);
|
||||
|
||||
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
|
||||
mCm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
|
||||
mWifiRegexs = mCm.getTetherableWifiRegexs();
|
||||
|
||||
mIntentFilter = new IntentFilter(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
|
||||
mIntentFilter.addAction(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
|
||||
mIntentFilter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
|
||||
}
|
||||
|
||||
public void resume() {
|
||||
mContext.registerReceiver(mReceiver, mIntentFilter);
|
||||
enableWifiSwitch();
|
||||
}
|
||||
|
||||
public void pause() {
|
||||
mContext.unregisterReceiver(mReceiver);
|
||||
}
|
||||
|
||||
private void enableWifiSwitch() {
|
||||
boolean isAirplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
|
||||
Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
|
||||
if(!isAirplaneMode) {
|
||||
mSwitch.setEnabled(!mDataSaverBackend.isDataSaverEnabled());
|
||||
} else {
|
||||
mSwitch.setSummary(mOriginalSummary);
|
||||
mSwitch.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateConfigSummary(WifiConfiguration wifiConfig) {
|
||||
String s = mContext.getString(
|
||||
com.android.internal.R.string.wifi_tether_configure_ssid_default);
|
||||
|
||||
mSwitch.setSummary(mContext.getString(R.string.wifi_tether_enabled_subtext,
|
||||
BidiFormatter.getInstance().unicodeWrap(
|
||||
(wifiConfig == null) ? s : wifiConfig.SSID)));
|
||||
}
|
||||
|
||||
private void updateTetherState(Object[] available, Object[] tethered, Object[] errored) {
|
||||
boolean wifiTethered = false;
|
||||
boolean wifiErrored = false;
|
||||
|
||||
for (Object o : tethered) {
|
||||
String s = (String)o;
|
||||
for (String regex : mWifiRegexs) {
|
||||
if (s.matches(regex)) wifiTethered = true;
|
||||
}
|
||||
}
|
||||
for (Object o: errored) {
|
||||
String s = (String)o;
|
||||
for (String regex : mWifiRegexs) {
|
||||
if (s.matches(regex)) wifiErrored = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (wifiTethered) {
|
||||
WifiConfiguration wifiConfig = mWifiManager.getWifiApConfiguration();
|
||||
updateConfigSummary(wifiConfig);
|
||||
} else if (wifiErrored) {
|
||||
mSwitch.setSummary(R.string.wifi_error);
|
||||
} else {
|
||||
mSwitch.setSummary(R.string.wifi_hotspot_off_subtext);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleWifiApStateChanged(int state, int reason) {
|
||||
switch (state) {
|
||||
case WifiManager.WIFI_AP_STATE_ENABLING:
|
||||
mSwitch.setSummary(R.string.wifi_tether_starting);
|
||||
mSwitch.setEnabled(false);
|
||||
break;
|
||||
case WifiManager.WIFI_AP_STATE_ENABLED:
|
||||
/**
|
||||
* Summary on enable is handled by tether
|
||||
* broadcast notice
|
||||
*/
|
||||
mSwitch.setChecked(true);
|
||||
/* Doesnt need the airplane check */
|
||||
mSwitch.setEnabled(!mDataSaverBackend.isDataSaverEnabled());
|
||||
break;
|
||||
case WifiManager.WIFI_AP_STATE_DISABLING:
|
||||
mSwitch.setSummary(R.string.wifi_tether_stopping);
|
||||
mSwitch.setChecked(false);
|
||||
mSwitch.setEnabled(false);
|
||||
break;
|
||||
case WifiManager.WIFI_AP_STATE_DISABLED:
|
||||
mSwitch.setChecked(false);
|
||||
mSwitch.setSummary(mOriginalSummary);
|
||||
enableWifiSwitch();
|
||||
break;
|
||||
default:
|
||||
mSwitch.setChecked(false);
|
||||
if (reason == WifiManager.SAP_START_FAILURE_NO_CHANNEL) {
|
||||
mSwitch.setSummary(R.string.wifi_sap_no_channel_error);
|
||||
} else {
|
||||
mSwitch.setSummary(R.string.wifi_error);
|
||||
}
|
||||
enableWifiSwitch();
|
||||
}
|
||||
}
|
||||
}
|
@@ -73,7 +73,6 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController
|
||||
public boolean isAvailable() {
|
||||
return mWifiRegexs != null
|
||||
&& mWifiRegexs.length != 0
|
||||
&& WifiTetherSettings.isTetherSettingPageEnabled()
|
||||
&& !Utils.isMonkeyRunning();
|
||||
}
|
||||
|
||||
|
@@ -26,7 +26,6 @@ import android.content.IntentFilter;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.SystemProperties;
|
||||
import android.os.UserManager;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.util.Log;
|
||||
@@ -44,10 +43,6 @@ import java.util.List;
|
||||
public class WifiTetherSettings extends RestrictedDashboardFragment
|
||||
implements WifiTetherBasePreferenceController.OnTetherConfigUpdateListener {
|
||||
|
||||
public static boolean isTetherSettingPageEnabled() {
|
||||
return SystemProperties.getBoolean("settings.ui.wifi.tether.enabled", true);
|
||||
}
|
||||
|
||||
private static final IntentFilter TETHER_STATE_CHANGE_FILTER;
|
||||
|
||||
private WifiTetherSwitchBarController mSwitchBarController;
|
||||
|
Reference in New Issue
Block a user