<!-- WPS is a new standard that allowes secure connection establishment to a home wireless network using a simplified process. WPS push button based configuration involves pushing a button on the router and the device [CHAR LIMIT=25]-->
<item>WPS push button</item>
<!-- WPS pin method based configuration. This requires entering a pin obtained from the access point [CHAR LIMIT=25] -->
- <item>WPS pin method</item>
+ <item>WPS pin from access point</item>
+ <!-- WPS pin method based configuration. This requires generating a pin from this device [CHAR LIMIT=25] -->
+ <item>WPS pin from this device</item>
</string-array>
<!-- Wi-Fi IP settings. -->
<string name="wifi_network_setup">Network Setup</string>
<!-- Label for the text view for WPS pin input [CHAR LIMIT=50] -->
<string name="wifi_wps_pin">Enter pin from access point</string>
+ <!-- Title for the WPS pin display dialog [CHAR LIMIT=50] -->
+ <string name="wifi_wps_pin_method_configuration">WPS pin method configuration</string>
+ <!-- Text displayed in the WPS pin display dialog [CHAR LIMIT=50] -->
+ <string name="wifi_wps_pin_output">Enter the pin <xliff:g id="wps_pin">%1$s</xliff:g> on the access point</string>
<!-- Label for the SSID of the network -->
<string name="wifi_ssid">Network SSID</string>
<!-- Label for the security of the connection -->
<string name="wifi_disabled">Disabled</string>
<!-- Summary for the remembered network but currently not in range. -->
<string name="wifi_not_in_range">Not in range</string>
+ <!-- Summary for an open network with WPS being available [CHAR LIMIT=50]-->
+ <string name="wifi_open_with_wps">WPS available</string>
<!-- Summary for the secured network. -->
<string name="wifi_secured">Secured with <xliff:g id="wifi_security">%1$s</xliff:g></string>
<!-- Summary for the secured network with WPS being available [CHAR LIMIT=50]-->
ssid = result.SSID;
bssid = result.BSSID;
security = getSecurity(result);
- wpsAvailable = security != SECURITY_NONE && security != SECURITY_EAP &&
+ wpsAvailable = security != SECURITY_EAP &&
result.capabilities.contains("WPS");
networkId = -1;
mRssi = result.level;
}
if (security == SECURITY_NONE) {
- setSummary(status);
+ if (wpsAvailable && mConfig == null) {
+ setSummary(context.getString(R.string.wifi_open_with_wps));
+ } else {
+ setSummary(status);
+ }
} else {
String format;
if (wpsAvailable && mConfig == null) {
/* These values come from "wifi_network_setup" resource array */
public static final int MANUAL = 0;
public static final int WPS_PBC = 1;
- public static final int WPS_PIN = 2;
+ public static final int WPS_PIN_FROM_ACCESS_POINT = 2;
+ public static final int WPS_PIN_FROM_DEVICE = 3;
/* These values come from "wifi_proxy_settings" resource array */
public static final int PROXY_NONE = 0;
int pos = mNetworkSetupSpinner.getSelectedItemPosition();
/* Show pin text input if needed */
- if (pos == WPS_PIN) {
+ if (pos == WPS_PIN_FROM_ACCESS_POINT) {
mView.findViewById(R.id.wps_fields).setVisibility(View.VISIBLE);
} else {
mView.findViewById(R.id.wps_fields).setVisibility(View.GONE);
}
/* show/hide manual security fields appropriately */
- if ((pos == WPS_PIN) || (pos == WPS_PBC)) {
+ if ((pos == WPS_PIN_FROM_ACCESS_POINT) || (pos == WPS_PIN_FROM_DEVICE)
+ || (pos == WPS_PBC)) {
mView.findViewById(R.id.security_fields).setVisibility(View.GONE);
} else {
mView.findViewById(R.id.security_fields).setVisibility(View.VISIBLE);
import com.android.settings.SettingsPreferenceFragment;
import android.app.Activity;
+import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
case WifiConfigController.WPS_PBC:
mWifiManager.startWpsPbc(mSelectedAccessPoint.bssid);
break;
- case WifiConfigController.WPS_PIN:
+ case WifiConfigController.WPS_PIN_FROM_ACCESS_POINT:
int apPin = configController.getWpsPin();
- mWifiManager.startWpsPin(mSelectedAccessPoint.bssid, apPin);
+ mWifiManager.startWpsWithPinFromAccessPoint(mSelectedAccessPoint.bssid, apPin);
+ break;
+ case WifiConfigController.WPS_PIN_FROM_DEVICE:
+ int pin = mWifiManager.startWpsWithPinFromDevice(mSelectedAccessPoint.bssid);
+ new AlertDialog.Builder(getActivity())
+ .setTitle(R.string.wifi_wps_pin_method_configuration)
+ .setMessage(getResources().getString(R.string.wifi_wps_pin_output, pin))
+ .setPositiveButton(android.R.string.ok, null)
+ .show();
break;
case WifiConfigController.MANUAL:
final WifiConfiguration config = configController.getConfig();