From a15be47bd5064038b8e7cd36c9a98354d2d44f1a Mon Sep 17 00:00:00 2001 From: Ryusuke Sawa Date: Fri, 19 Jul 2013 14:32:19 +0900 Subject: [PATCH] Show Error dialog when WPS is interrupted When WPS searching is interruptd by turning Wi-Fi off, Error dialog should be displayed. Bug: 29883134 Test: manual - tap WPS Push Button and turn Airplane mode on Change-Id: Ie6667c6b7d09540af21b015e0d5b991d818d2c77 --- res/values/strings.xml | 2 ++ src/com/android/settings/wifi/WpsDialog.java | 14 +++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index e177112586c..648bd2b3337 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1687,6 +1687,8 @@ Authentication failure. Please try again. Another WPS session was detected. Please try again in a few minutes. + + Wi\u2011Fi disconnected. WPS setup canceled. Network name diff --git a/src/com/android/settings/wifi/WpsDialog.java b/src/com/android/settings/wifi/WpsDialog.java index 3de272968bb..440b72d9e05 100644 --- a/src/com/android/settings/wifi/WpsDialog.java +++ b/src/com/android/settings/wifi/WpsDialog.java @@ -125,6 +125,7 @@ public class WpsDialog extends AlertDialog { mFilter = new IntentFilter(); + mFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); mReceiver = new BroadcastReceiver() { @Override @@ -261,7 +262,18 @@ public class WpsDialog extends AlertDialog { private void handleEvent(Context context, Intent intent) { String action = intent.getAction(); - if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) { + if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) { + final int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, + WifiManager.WIFI_STATE_UNKNOWN); + if (state == WifiManager.WIFI_STATE_DISABLED) { + if (mTimer != null) { + mTimer.cancel(); + mTimer = null; + } + String msg = mContext.getString(R.string.wifi_wps_failed_wifi_disconnected); + updateDialog(DialogState.WPS_FAILED, msg); + } + } else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) { NetworkInfo info = (NetworkInfo) intent.getParcelableExtra( WifiManager.EXTRA_NETWORK_INFO); final NetworkInfo.DetailedState state = info.getDetailedState();