Stop scanning after errors

When scan fails for 3 times, we show a
failure toast and continue to scan.
In one case this caused infinite toasts,
until the user stopped wifi.

Its not clear what can cause this kind of
a state since wifi disable broadcast should
stop the scans. This fix will stop scans
after 3 continuous failures. Any wifi state
change will restart scan.

Bug: 2601937
Change-Id: I68733394cb3c9b76ffb15f7579e7af6c1f54d39c
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 0965854..2eca1d7 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -431,8 +431,10 @@
 
     private void updateConnectionState(DetailedState state) {
         /* sticky broadcasts can call this when wifi is disabled */
-        if (!mWifiManager.isWifiEnabled())
+        if (!mWifiManager.isWifiEnabled()) {
+            mScanner.pause();
             return;
+        }
 
         if (state == DetailedState.OBTAINING_IPADDR) {
             mScanner.pause();
@@ -489,6 +491,7 @@
                 mRetry = 0;
                 Toast.makeText(WifiSettings.this, R.string.wifi_fail_to_scan,
                         Toast.LENGTH_LONG).show();
+                return;
             }
             mAccessPoints.setProgress(mRetry != 0);
             sendEmptyMessageDelayed(0, 6000);