summaryrefslogtreecommitdiffstats
path: root/service
diff options
context:
space:
mode:
authorRandy Pan <zpan@google.com>2016-10-27 09:38:21 -0700
committerRandy Pan <zpan@google.com>2016-10-27 11:34:01 -0700
commita8a5644b48660a166adfad9fdc274cbdb44cdf4b (patch)
treed1e3e4975659af64c694b5ebcd3d30c58ae6c4b8 /service
parentb454ccdec67d69566666104ade0ee7671d6dc9d7 (diff)
downloadandroid_frameworks_opt_net_wifi-a8a5644b48660a166adfad9fdc274cbdb44cdf4b.tar.gz
android_frameworks_opt_net_wifi-a8a5644b48660a166adfad9fdc274cbdb44cdf4b.tar.bz2
android_frameworks_opt_net_wifi-a8a5644b48660a166adfad9fdc274cbdb44cdf4b.zip
DO NOT MERGE: Check on whether an ephemeral network is deleted
Add quotes to ScanResult.SSID before passing it to WifiConfigManager#waswasEphemeralNetworkDeleted. While there, improved the java doc of WifiConfigManager#waswasEphemeralNetworkDeleted to make it clear that SSID surrounded by quotes is expected. Bug: 32205260 Test: Ephemeral network added by WiFi Assistant can be forgotten Change-Id: I45afd45fd7257a31ec16aca5b6ae765d417ecead
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiConfigManager.java3
-rw-r--r--service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java4
-rw-r--r--service/java/com/android/server/wifi/util/ScanDetailUtil.java8
3 files changed, 13 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index 4a27fef97..3c717c0ed 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -3240,7 +3240,8 @@ public class WifiConfigManager {
/**
* Check if the provided ephemeral network was deleted by the user or not.
- * @param ssid ssid of the network
+ * @param ssid caller must ensure that the SSID passed thru this API match
+ * the WifiConfiguration.SSID rules, and thus be surrounded by quotes.
* @return true if network was deleted, false otherwise.
*/
public boolean wasEphemeralNetworkDeleted(String ssid) {
diff --git a/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java b/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java
index dd8bdae50..e916c8c4a 100644
--- a/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java
+++ b/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java
@@ -32,6 +32,7 @@ import android.util.Pair;
import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.wifi.util.ScanDetailUtil;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -728,7 +729,8 @@ public class WifiQualifiedNetworkSelector {
if (isUntrustedConnectionsAllowed) {
Integer netScore = getNetworkScore(scanResult, false);
if (netScore != null
- && !mWifiConfigManager.wasEphemeralNetworkDeleted(scanResult.SSID)) {
+ && !mWifiConfigManager.wasEphemeralNetworkDeleted(
+ ScanDetailUtil.createQuotedSSID(scanResult.SSID))) {
externalScoreEvaluator.evalUntrustedCandidate(netScore, scanResult);
// scanDetail is for available ephemeral network
filteredScanDetails.add(Pair.create(scanDetail,
diff --git a/service/java/com/android/server/wifi/util/ScanDetailUtil.java b/service/java/com/android/server/wifi/util/ScanDetailUtil.java
index a83900e0a..c5ec92af9 100644
--- a/service/java/com/android/server/wifi/util/ScanDetailUtil.java
+++ b/service/java/com/android/server/wifi/util/ScanDetailUtil.java
@@ -37,4 +37,12 @@ public class ScanDetailUtil {
scanResult.informationElements, scanResult.anqpLines, scanResult.frequency);
return new ScanDetail(scanResult, networkDetail, null);
}
+
+ /**
+ * Helper method to quote the SSID in Scan result to use for comparing/filling SSID stored in
+ * WifiConfiguration object.
+ */
+ public static String createQuotedSSID(String ssid) {
+ return "\"" + ssid + "\"";
+ }
}