Add UI to report WPS overlap error
Bug: 3354319
Change-Id: I4584bc3a820ace1232026920c4dc29e6b273461c
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b102214..4107951 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1013,6 +1013,10 @@
<!-- Button label to dismiss the dialog -->
<string name="wifi_cancel">Cancel</string>
+ <!-- Errors reported on wifi settings page -->
+ <!-- Toast message indicating WPS overlap detection [CHAR LIMIT=75] -->
+ <string name="wifi_wps_overlap_error">Another WPS session detected, please retry in a few minutes</string>
+
<!-- Wi-Fi Advanced Settings --> <skip />
<!-- Wi-Fi settings screen, advanced, settings section. This is a header shown above advanced wifi settings. -->
<string name="wifi_advanced_titlebar">Advanced</string>
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 4628863..ffe48a9 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -128,11 +128,12 @@
mFilter.addAction(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION);
mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
mFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
+ mFilter.addAction(WifiManager.ERROR_ACTION);
mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- handleEvent(intent);
+ handleEvent(context, intent);
}
};
@@ -430,7 +431,7 @@
return accessPoints;
}
- private void handleEvent(Intent intent) {
+ private void handleEvent(Context context, Intent intent) {
String action = intent.getAction();
if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) {
updateWifiState(intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
@@ -462,6 +463,14 @@
updateConnectionState(info.getDetailedState());
} else if (WifiManager.RSSI_CHANGED_ACTION.equals(action)) {
updateConnectionState(null);
+ } else if (WifiManager.ERROR_ACTION.equals(action)) {
+ int errorCode = intent.getIntExtra(WifiManager.EXTRA_ERROR_CODE, 0);
+ switch (errorCode) {
+ case WifiManager.WPS_OVERLAP_ERROR:
+ Toast.makeText(context, R.string.wifi_wps_overlap_error,
+ Toast.LENGTH_SHORT).show();
+ break;
+ }
}
}