public void updateWifiConfigWithScanResults(List<ScanResult> scanResults) { List<String> scanResultsStrings = new ArrayList<String>(); synchronized (wifiNetworkStatusLock) { // clear all the savedConfigurations AP status if (!getWifiNetworkStatus().isEmpty()) { App.getTraceUtils().startTrace(TAG, "Clear scan status from AP configs", Log.DEBUG); for (WiFiApConfig conf : getWifiNetworkStatus().values()) { conf.clearScanStatus(); } App.getTraceUtils().stopTrace(TAG, "Clear scan status from AP configs", Log.DEBUG); } if (scanResults != null) { for (ScanResult res : scanResults) { scanResultsStrings.add(res.SSID + " level: " + res.level); String currSSID = ProxyUtils.cleanUpSSID(res.SSID); SecurityType security = ProxyUtils.getSecurity(res); APLNetworkId aplNetworkId = new APLNetworkId(currSSID, security); if (getWifiNetworkStatus().containsKey(aplNetworkId)) { WiFiApConfig conf = getWifiNetworkStatus().get(aplNetworkId); if (conf != null) { conf.updateScanResults(res); } } else { if (getWifiNetworkStatus().getNotConfiguredWifi().containsKey(aplNetworkId)) { getWifiNetworkStatus().getNotConfiguredWifi().remove(aplNetworkId); } getWifiNetworkStatus().getNotConfiguredWifi().put(aplNetworkId, res); } } } else { Timber.w("No ScanResults available for updateWifiConfigWithScanResults"); } } Timber.d("Updating from scanresult: " + TextUtils.join(", ", scanResultsStrings.toArray())); }