diff options
author | Quang Luong <qal@google.com> | 2022-03-24 16:14:32 -0700 |
---|---|---|
committer | Quang Luong <qal@google.com> | 2022-03-31 10:39:43 -0700 |
commit | 372dc6bd1df6bc82c903fb12891f02deedf071e9 (patch) | |
tree | 2b2fa6290198585c1fa2d17a4bbaae6b725c1399 | |
parent | c476311b49f837f5633bcedad72860cb27f6e371 (diff) | |
download | wifi-372dc6bd1df6bc82c903fb12891f02deedf071e9.tar.gz |
Add MLO info to Wifi picker verbose summary
Add the wifi standard, MLD MAC, MLO link id, and MLO affiliated links to
the verbose summary of networks in the Wifi picker.
Bug: 222337006
Test: manual build and visual verification of Wifi picker
Change-Id: I6cfa8876234e21058b6b5e804a0c5c0fef6f7ea6
5 files changed, 81 insertions, 1 deletions
diff --git a/libs/WifiTrackerLib/res/values/strings.xml b/libs/WifiTrackerLib/res/values/strings.xml index ead431aaf..1d16e9833 100644 --- a/libs/WifiTrackerLib/res/values/strings.xml +++ b/libs/WifiTrackerLib/res/values/strings.xml @@ -204,4 +204,19 @@ <!-- [DO NOT TRANSLATE] Comma-separated list of packages whose saved networks should show no attribution annotation. --> <string name="wifitrackerlib_no_attribution_annotation_packages">com.google.android.setupwizard,com.google.android.gms</string> + + <!-- Summary for the Wi-Fi standard WIFI_STANDARD_UNKNOWN [CHAR LIMIT=50]--> + <string name="wifitrackerlib_wifi_standard_unknown">Unknown</string> + <!-- Summary for the Wi-Fi standard WIFI_STANDARD_LEGACY [CHAR LIMIT=50]--> + <string name="wifitrackerlib_wifi_standard_legacy">Legacy</string> + <!-- Summary for the Wi-Fi standard WIFI_STANDARD_11N [CHAR LIMIT=50]--> + <string name="wifitrackerlib_wifi_standard_11n">Wi\u2011Fi 4</string> + <!-- Summary for the Wi-Fi standard WIFI_STANDARD_11AC [CHAR LIMIT=50]--> + <string name="wifitrackerlib_wifi_standard_11ac">Wi\u2011Fi 5</string> + <!-- Summary for the Wi-Fi standard WIFI_STANDARD_11AX [CHAR LIMIT=50]--> + <string name="wifitrackerlib_wifi_standard_11ax">Wi\u2011Fi 6</string> + <!-- Summary for the Wi-Fi standard WIFI_STANDARD_11AD [CHAR LIMIT=50]--> + <string name="wifitrackerlib_wifi_standard_11ad">WiGig</string> + <!-- Summary for the Wi-Fi standard WIFI_STANDARD_11BE [CHAR LIMIT=50]--> + <string name="wifitrackerlib_wifi_standard_11be">Wi\u2011Fi 7</string> </resources> diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java index 49ddb399c..1125bd303 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java @@ -458,6 +458,22 @@ public class PasspointWifiEntry extends WifiEntry implements WifiEntry.WifiEntry } @Override + public synchronized String getStandardString() { + if (mWifiInfo != null) { + return Utils.getStandardString(mContext, mWifiInfo.getWifiStandard()); + } + if (!mCurrentHomeScanResults.isEmpty()) { + return Utils.getStandardString( + mContext, mCurrentHomeScanResults.get(0).getWifiStandard()); + } + if (!mCurrentRoamingScanResults.isEmpty()) { + return Utils.getStandardString( + mContext, mCurrentRoamingScanResults.get(0).getWifiStandard()); + } + return ""; + } + + @Override public synchronized boolean isExpired() { if (mSubscriptionExpirationTimeInMillis <= 0) { // Expiration time not specified. diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java index 2928967d0..4c86668a2 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java @@ -668,6 +668,17 @@ public class StandardWifiEntry extends WifiEntry { } @Override + public synchronized String getStandardString() { + if (mWifiInfo != null) { + return Utils.getStandardString(mContext, mWifiInfo.getWifiStandard()); + } + if (!mTargetScanResults.isEmpty()) { + return Utils.getStandardString(mContext, mTargetScanResults.get(0).getWifiStandard()); + } + return ""; + } + + @Override public synchronized boolean shouldEditBeforeConnect() { WifiConfiguration wifiConfig = getWifiConfiguration(); if (wifiConfig == null) { @@ -936,6 +947,8 @@ public class StandardWifiEntry extends WifiEntry { return description.toString(); } + // TODO(b/227622961): Remove the suppression once the linter recognizes BuildCompat.isAtLeastT() + @SuppressLint("NewApi") private synchronized String getScanResultDescription(ScanResult scanResult, long nowMs) { final StringBuilder description = new StringBuilder(); description.append(" \n{"); @@ -945,6 +958,13 @@ public class StandardWifiEntry extends WifiEntry { } description.append("=").append(scanResult.frequency); description.append(",").append(scanResult.level); + int wifiStandard = scanResult.getWifiStandard(); + description.append(",").append(Utils.getStandardString(mContext, wifiStandard)); + if (BuildCompat.isAtLeastT() && wifiStandard == ScanResult.WIFI_STANDARD_11BE) { + description.append(",mldMac=").append(scanResult.getApMldMacAddress()); + description.append(",linkId=").append(scanResult.getApMloLinkId()); + description.append(",affLinks=").append(scanResult.getAffiliatedMloLinks()); + } final int ageSeconds = (int) (nowMs - scanResult.timestamp / 1000) / 1000; description.append(",").append(ageSeconds).append("s"); description.append("}"); @@ -956,6 +976,7 @@ public class StandardWifiEntry extends WifiEntry { return Utils.getNetworkSelectionDescription(getWifiConfiguration()); } + // TODO(b/227622961): Remove the suppression once the linter recognizes BuildCompat.isAtLeastT() @SuppressLint("NewApi") private void updateAdminRestrictions() { if (mUserManager != null) { diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java index 1877139dc..f46229f8e 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java @@ -1005,4 +1005,27 @@ public class Utils { return DPM_SECURITY_TYPE_UNKNOWN; } } + + /** + * Converts a ScanResult.WIFI_STANDARD_ value to a display string if available, or an + * empty string if there is no corresponding display string. + */ + public static String getStandardString(@NonNull Context context, int standard) { + switch (standard) { + case ScanResult.WIFI_STANDARD_LEGACY: + return context.getString(R.string.wifitrackerlib_wifi_standard_legacy); + case ScanResult.WIFI_STANDARD_11N: + return context.getString(R.string.wifitrackerlib_wifi_standard_11n); + case ScanResult.WIFI_STANDARD_11AC: + return context.getString(R.string.wifitrackerlib_wifi_standard_11ac); + case ScanResult.WIFI_STANDARD_11AX: + return context.getString(R.string.wifitrackerlib_wifi_standard_11ax); + case ScanResult.WIFI_STANDARD_11AD: + return context.getString(R.string.wifitrackerlib_wifi_standard_11ad); + case ScanResult.WIFI_STANDARD_11BE: + return context.getString(R.string.wifitrackerlib_wifi_standard_11be); + default: + return context.getString(R.string.wifitrackerlib_wifi_standard_unknown); + } + } } diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java index 103de030e..f346c6179 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java @@ -602,6 +602,11 @@ public class WifiEntry { return ""; } + /** Returns the string displayed for the Wi-Fi standard */ + public String getStandardString() { + return ""; + } + /** Returns whether subscription of the entry is expired */ public boolean isExpired() { return false; @@ -957,7 +962,7 @@ public class WifiEntry { if (bssid != null) { sj.add(bssid); } - sj.add("standard = " + mWifiInfo.getWifiStandard()); + sj.add("standard = " + getStandardString()); sj.add("rssi = " + mWifiInfo.getRssi()); sj.add("score = " + mWifiInfo.getScore()); sj.add(String.format(" tx=%.1f,", mWifiInfo.getSuccessfulTxPacketsPerSecond())); |