summaryrefslogtreecommitdiffstats
path: root/wifi
diff options
context:
space:
mode:
authorPrimiano Tucci <primiano@google.com>2014-10-08 12:22:29 +0100
committerPrimiano Tucci <primiano@google.com>2014-10-08 12:22:29 +0100
commit0f422c6d8024fb682d2e30a77ae7cf9c9c456cff (patch)
treec35e5e911dce41d3de697fb12c6c2ccccb16146a /wifi
parent73a648990f0e126af49af5be1049255019d33e12 (diff)
parent28495b02f21d208360acae09c57fbd146a53407b (diff)
downloadframeworks_base-0f422c6d8024fb682d2e30a77ae7cf9c9c456cff.zip
frameworks_base-0f422c6d8024fb682d2e30a77ae7cf9c9c456cff.tar.gz
frameworks_base-0f422c6d8024fb682d2e30a77ae7cf9c9c456cff.tar.bz2
resolved conflicts for merge of 28495b02 into master
Conflicts: wifi/java/android/net/wifi/ScanResult.java Change-Id: I86a4537d603cbf325e5e0bff715a442d9dc6b6db
Diffstat (limited to 'wifi')
-rw-r--r--wifi/java/android/net/wifi/ScanResult.java9
-rw-r--r--wifi/java/android/net/wifi/WifiConfiguration.java82
-rw-r--r--wifi/java/android/net/wifi/WifiInfo.java1
3 files changed, 79 insertions, 13 deletions
diff --git a/wifi/java/android/net/wifi/ScanResult.java b/wifi/java/android/net/wifi/ScanResult.java
index 7a95b70..994f180 100644
--- a/wifi/java/android/net/wifi/ScanResult.java
+++ b/wifi/java/android/net/wifi/ScanResult.java
@@ -73,6 +73,12 @@ public class ScanResult implements Parcelable {
public long seen;
/**
+ * If the scan result is a valid autojoin candidate
+ * {@hide}
+ */
+ public int isAutoJoinCandidate;
+
+ /**
* @hide
* Update RSSI of the scan result
* @param previousRSSI
@@ -273,6 +279,7 @@ public class ScanResult implements Parcelable {
numConnection = source.numConnection;
numUsage = source.numUsage;
numIpConfigFailures = source.numIpConfigFailures;
+ isAutoJoinCandidate = source.isAutoJoinCandidate;
}
}
@@ -339,6 +346,7 @@ public class ScanResult implements Parcelable {
dest.writeInt(numConnection);
dest.writeInt(numUsage);
dest.writeInt(numIpConfigFailures);
+ dest.writeInt(isAutoJoinCandidate);
if (passpoint != null) {
dest.writeInt(1);
passpoint.writeToParcel(dest, flags);
@@ -381,6 +389,7 @@ public class ScanResult implements Parcelable {
sr.numConnection = in.readInt();
sr.numUsage = in.readInt();
sr.numIpConfigFailures = in.readInt();
+ sr.isAutoJoinCandidate = in.readInt();
if (in.readInt() == 1) {
sr.passpoint = WifiPasspointInfo.CREATOR.createFromParcel(in);
}
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 7f8397b..6220650 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -30,6 +30,9 @@ import android.annotation.SystemApi;
import java.util.HashMap;
import java.util.BitSet;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
/**
* A class representing a configured Wi-Fi network, including the
@@ -964,13 +967,46 @@ public class WifiConfiguration implements Parcelable {
}
}
+ /* @hide */
+ private ArrayList<ScanResult> sortScanResults() {
+ ArrayList<ScanResult> list = new ArrayList<ScanResult>(this.scanResultCache.values());
+ if (list.size() != 0) {
+ Collections.sort(list, new Comparator() {
+ public int compare(Object o1, Object o2) {
+ ScanResult a = (ScanResult)o1;
+ ScanResult b = (ScanResult)o2;
+ if (a.numIpConfigFailures > b.numIpConfigFailures) {
+ return 1;
+ }
+ if (a.numIpConfigFailures < b.numIpConfigFailures) {
+ return -1;
+ }
+ if (a.seen > b.seen) {
+ return -1;
+ }
+ if (a.seen < b.seen) {
+ return 1;
+ }
+ if (a.level > b.level) {
+ return -1;
+ }
+ if (a.level < b.level) {
+ return 1;
+ }
+ return a.BSSID.compareTo(b.BSSID);
+ }
+ });
+ }
+ return list;
+ }
+
@Override
public String toString() {
StringBuilder sbuf = new StringBuilder();
if (this.status == WifiConfiguration.Status.CURRENT) {
sbuf.append("* ");
} else if (this.status == WifiConfiguration.Status.DISABLED) {
- sbuf.append("- DSBLE");
+ sbuf.append("- DSBLE ");
}
sbuf.append("ID: ").append(this.networkId).append(" SSID: ").append(this.SSID).
append(" BSSID: ").append(this.BSSID).append(" FQDN: ").append(this.FQDN).
@@ -1122,20 +1158,40 @@ public class WifiConfiguration implements Parcelable {
}
}
if (this.scanResultCache != null) {
- sbuf.append("Scan Cache: ");
- for(ScanResult result : this.scanResultCache.values()) {
- sbuf.append("{").append(result.BSSID).append(",").append(result.frequency);
- sbuf.append(",").append(result.level);
- if (result.autoJoinStatus > 0) {
- sbuf.append(",st=").append(result.autoJoinStatus);
+ sbuf.append("Scan Cache: ").append('\n');
+ ArrayList<ScanResult> list = sortScanResults();
+ if (list.size() > 0) {
+ for (ScanResult result : list) {
+ long milli = now_ms - result.seen;
+ long ageSec = 0;
+ long ageMin = 0;
+ long ageHour = 0;
+ long ageMilli = 0;
+ long ageDay = 0;
+ if (now_ms > result.seen && result.seen > 0) {
+ ageMilli = milli % 1000;
+ ageSec = (milli / 1000) % 60;
+ ageMin = (milli / (60*1000)) % 60;
+ ageHour = (milli / (60*60*1000)) % 24;
+ ageDay = (milli / (24*60*60*1000));
+ }
+ sbuf.append("{").append(result.BSSID).append(",").append(result.frequency);
+ sbuf.append(",").append(String.format("%3d", result.level));
+ if (result.autoJoinStatus > 0) {
+ sbuf.append(",st=").append(result.autoJoinStatus);
+ }
+ if (ageSec > 0 || ageMilli > 0) {
+ sbuf.append(String.format(",%4d.%02d.%02d.%02d.%03dms", ageDay,
+ ageHour, ageMin, ageSec, ageMilli));
+ }
+ if (result.numIpConfigFailures > 0) {
+ sbuf.append(",ipfail=");
+ sbuf.append(result.numIpConfigFailures);
+ }
+ sbuf.append("} ");
}
- if (result.numIpConfigFailures > 0) {
- sbuf.append(",ipfail=");
- sbuf.append(result.numIpConfigFailures);
- }
- sbuf.append(",").append(result.autoJoinStatus).append("} ");
+ sbuf.append('\n');
}
- sbuf.append('\n');
}
sbuf.append("triggeredLow: ").append(this.numUserTriggeredWifiDisableLowRSSI);
sbuf.append(" triggeredBad: ").append(this.numUserTriggeredWifiDisableBadRSSI);
diff --git a/wifi/java/android/net/wifi/WifiInfo.java b/wifi/java/android/net/wifi/WifiInfo.java
index 44a7108..5bf3470 100644
--- a/wifi/java/android/net/wifi/WifiInfo.java
+++ b/wifi/java/android/net/wifi/WifiInfo.java
@@ -456,6 +456,7 @@ public class WifiInfo implements Parcelable {
* SSID-specific probe request must be used for scans.
*/
public boolean getHiddenSSID() {
+ if (mWifiSsid == null) return false;
return mWifiSsid.isHidden();
}