From e45e13f47ad5e09aa8291d81a03a136618b383c0 Mon Sep 17 00:00:00 2001 From: Irfan Sheriff Date: Thu, 21 Oct 2010 16:45:15 -0700 Subject: [PATCH] UI for wps pin from device Bug: 3119043 Bug: 3112178 Change-Id: I573146ed0c834cb88d5f42c25fe0be3ed501a321 --- res/values/arrays.xml | 4 +++- res/values/strings.xml | 6 ++++++ src/com/android/settings/wifi/AccessPoint.java | 8 ++++++-- .../android/settings/wifi/WifiConfigController.java | 8 +++++--- src/com/android/settings/wifi/WifiSettings.java | 13 +++++++++++-- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index ee44401bd0e..8967ff24ddd 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -349,7 +349,9 @@ WPS push button - WPS pin method + WPS pin from access point + + WPS pin from this device diff --git a/res/values/strings.xml b/res/values/strings.xml index 839d13c0d4c..5e46158c3c0 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -916,6 +916,10 @@ Network Setup Enter pin from access point + + WPS pin method configuration + + Enter the pin %1$s on the access point Network SSID @@ -956,6 +960,8 @@ Disabled Not in range + + WPS available Secured with %1$s diff --git a/src/com/android/settings/wifi/AccessPoint.java b/src/com/android/settings/wifi/AccessPoint.java index 054c6ff93ac..c932978abf7 100644 --- a/src/com/android/settings/wifi/AccessPoint.java +++ b/src/com/android/settings/wifi/AccessPoint.java @@ -119,7 +119,7 @@ class AccessPoint extends Preference { 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; @@ -222,7 +222,11 @@ class AccessPoint extends Preference { } 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) { diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index 597c5a3a6dd..d1700a69a34 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -92,7 +92,8 @@ public class WifiConfigController implements TextWatcher, /* 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; @@ -491,14 +492,15 @@ public class WifiConfigController implements TextWatcher, 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); diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 30c2a3d6431..d8d0a60a278 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -23,6 +23,7 @@ import com.android.settings.R; 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; @@ -642,9 +643,17 @@ public class WifiSettings extends SettingsPreferenceFragment 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();