summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:25:55 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:25:55 +0000
commitd611359dbeb189c9cc436c5b5c5572d3f718a3da (patch)
tree707ae35946cdb7ee11a6b9c9f474762a55a397c8
parentcae41d831be4ff8cc4e0725d28b0d3aa8e11727a (diff)
parentc7f82c1561900d245e2800f5e3beb76be5752ef4 (diff)
downloadwifi-d611359dbeb189c9cc436c5b5c5572d3f718a3da.tar.gz
Snap for 10453563 from c7f82c1561900d245e2800f5e3beb76be5752ef4 to mainline-tzdata5-release
Change-Id: Ib9f5df134c87b60ee4037f647c6d1fac554c7685
-rw-r--r--libs/WifiTrackerLib/res/values-ar/strings.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-ca/arrays.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-ca/strings.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-cs/strings.xml4
-rw-r--r--libs/WifiTrackerLib/res/values-fr-rCA/strings.xml4
-rw-r--r--libs/WifiTrackerLib/res/values-hy/strings.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-iw/strings.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-kn/strings.xml4
-rw-r--r--libs/WifiTrackerLib/res/values-or/arrays.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-or/strings.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-pa/strings.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-pt-rPT/arrays.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-pt-rPT/strings.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-ru/strings.xml4
-rw-r--r--libs/WifiTrackerLib/res/values-sk/strings.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-zh-rCN/strings.xml2
-rw-r--r--libs/WifiTrackerLib/sdk_src/src/com/android/wifitrackerlib/NonSdkApiWrapper.java14
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java159
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java11
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java2
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java22
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java1
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/PasspointWifiEntryTest.java27
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java25
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java58
25 files changed, 222 insertions, 137 deletions
diff --git a/libs/WifiTrackerLib/res/values-ar/strings.xml b/libs/WifiTrackerLib/res/values-ar/strings.xml
index 2b4a3fd03..298ecfe2a 100644
--- a/libs/WifiTrackerLib/res/values-ar/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ar/strings.xml
@@ -19,7 +19,7 @@
<string name="wifitrackerlib_summary_separator" msgid="6613897475167609815">" / "</string>
<string name="wifitrackerlib_checking_for_internet_access" msgid="4787495471423429472">"جارٍ التأكّد من الاتصال بالإنترنت..."</string>
<string name="wifitrackerlib_auto_connect_disable" msgid="4714835547164460651">"الاتصال التلقائي غير مُفعَّل."</string>
- <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"تم الحفظ من قِبل <xliff:g id="NAME">%1$s</xliff:g>."</string>
+ <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"تم الحفظ من قِبل <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"لن يتم الاتصال بالإنترنت تلقائيًا."</string>
<string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"لا يتوفّر اتصال بالإنترنت"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"حدثت مشكلة في المصادقة."</string>
diff --git a/libs/WifiTrackerLib/res/values-ca/arrays.xml b/libs/WifiTrackerLib/res/values-ca/arrays.xml
index 8c28cf048..3d226f588 100644
--- a/libs/WifiTrackerLib/res/values-ca/arrays.xml
+++ b/libs/WifiTrackerLib/res/values-ca/arrays.xml
@@ -26,7 +26,7 @@
<item msgid="9055468790485684083">"S\'està connectant…"</item>
<item msgid="6099499723199990208">"S\'està autenticant…"</item>
<item msgid="6794055951297347103">"S\'està obtenint l\'adreça IP…"</item>
- <item msgid="5450920562291300229">"Connectat"</item>
+ <item msgid="5450920562291300229">"Connectada"</item>
<item msgid="6332116533879646145">"Suspesa"</item>
<item msgid="294459081501073818">"S\'està desconnectant…"</item>
<item msgid="1577368920272598676">"Desconnectada"</item>
diff --git a/libs/WifiTrackerLib/res/values-ca/strings.xml b/libs/WifiTrackerLib/res/values-ca/strings.xml
index fc28a37a1..5d1002fd3 100644
--- a/libs/WifiTrackerLib/res/values-ca/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ca/strings.xml
@@ -21,7 +21,7 @@
<string name="wifitrackerlib_auto_connect_disable" msgid="4714835547164460651">"Connexió automàtica desactivada"</string>
<string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"Desada per <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"No es connectarà automàticament"</string>
- <string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"No hi ha accés a Internet"</string>
+ <string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"Sense accés a Internet"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"Problema d\'autenticació"</string>
<string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"Comprova la contrasenya i torna-ho a provar"</string>
<string name="wifitrackerlib_wifi_disabled_network_failure" msgid="3046956554224277166">"Error de configuració d\'IP"</string>
diff --git a/libs/WifiTrackerLib/res/values-cs/strings.xml b/libs/WifiTrackerLib/res/values-cs/strings.xml
index 0472dc5f7..ed574bb8a 100644
--- a/libs/WifiTrackerLib/res/values-cs/strings.xml
+++ b/libs/WifiTrackerLib/res/values-cs/strings.xml
@@ -19,9 +19,9 @@
<string name="wifitrackerlib_summary_separator" msgid="6613897475167609815">" / "</string>
<string name="wifitrackerlib_checking_for_internet_access" msgid="4787495471423429472">"Kontrola přístupu k internetu…"</string>
<string name="wifitrackerlib_auto_connect_disable" msgid="4714835547164460651">"Automatické připojení je vypnuté"</string>
- <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"Uloženo uživatelem <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"Uložil(a): <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"Nelze se automaticky připojit"</string>
- <string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"Nejste připojeni k internetu"</string>
+ <string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"Není připojení k internetu"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"Problém s ověřením"</string>
<string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"Zkontrolujte heslo a zkuste to znovu"</string>
<string name="wifitrackerlib_wifi_disabled_network_failure" msgid="3046956554224277166">"Selhání konfigurace protokolu IP"</string>
diff --git a/libs/WifiTrackerLib/res/values-fr-rCA/strings.xml b/libs/WifiTrackerLib/res/values-fr-rCA/strings.xml
index 9248e42fe..968ceaccf 100644
--- a/libs/WifiTrackerLib/res/values-fr-rCA/strings.xml
+++ b/libs/WifiTrackerLib/res/values-fr-rCA/strings.xml
@@ -19,7 +19,7 @@
<string name="wifitrackerlib_summary_separator" msgid="6613897475167609815">" / "</string>
<string name="wifitrackerlib_checking_for_internet_access" msgid="4787495471423429472">"Recherche d\'un accès Internet…"</string>
<string name="wifitrackerlib_auto_connect_disable" msgid="4714835547164460651">"La connexion automatique est désactivée"</string>
- <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"Enregistrés par <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"Enregistré par <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"Reconnexion automatique impossible"</string>
<string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"Aucun accès à Internet"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"Problème d\'authentification"</string>
@@ -57,7 +57,7 @@
<string name="wifitrackerlib_wifi_security_short_eap_suiteb" msgid="6335062557041604336">"Suite-B-192"</string>
<string name="wifitrackerlib_wifi_security_eap_suiteb" msgid="4715703239786225763">"WPA3-Enterprise 192 bits"</string>
<string name="wifitrackerlib_wifi_security_short_wpa_wpa2" msgid="6770438383385707243">"WPA/WPA2"</string>
- <string name="wifitrackerlib_wifi_security_wpa_wpa2" msgid="5767878305316110228">"WPA/WPA2-Personal"</string>
+ <string name="wifitrackerlib_wifi_security_wpa_wpa2" msgid="5767878305316110228">"WPA/WPA2-Personnel"</string>
<string name="wifitrackerlib_wifi_security_short_wpa_wpa2_wpa3" msgid="4489424775550194618">"WPA/WPA2/WPA3"</string>
<string name="wifitrackerlib_wifi_security_wpa_wpa2_wpa3" msgid="4154428413248489642">"WPA/WPA2/WPA3-Personal"</string>
<string name="wifitrackerlib_wifi_security_wep" msgid="7714779033848180369">"WEP"</string>
diff --git a/libs/WifiTrackerLib/res/values-hy/strings.xml b/libs/WifiTrackerLib/res/values-hy/strings.xml
index 1a881b219..f1749bb5b 100644
--- a/libs/WifiTrackerLib/res/values-hy/strings.xml
+++ b/libs/WifiTrackerLib/res/values-hy/strings.xml
@@ -19,7 +19,7 @@
<string name="wifitrackerlib_summary_separator" msgid="6613897475167609815">" / "</string>
<string name="wifitrackerlib_checking_for_internet_access" msgid="4787495471423429472">"Ինտերնետի հասանելիության ստուգում…"</string>
<string name="wifitrackerlib_auto_connect_disable" msgid="4714835547164460651">"Ավտոմատ միացումն անջատված է"</string>
- <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"Ով է պահել՝ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"Պահված է՝ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"Չի միանա ավտոմատ"</string>
<string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"Ինտերնետ կապ չկա"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"Նույնականացման խնդիր"</string>
diff --git a/libs/WifiTrackerLib/res/values-iw/strings.xml b/libs/WifiTrackerLib/res/values-iw/strings.xml
index c2366b405..500806c8a 100644
--- a/libs/WifiTrackerLib/res/values-iw/strings.xml
+++ b/libs/WifiTrackerLib/res/values-iw/strings.xml
@@ -19,7 +19,7 @@
<string name="wifitrackerlib_summary_separator" msgid="6613897475167609815">" / "</string>
<string name="wifitrackerlib_checking_for_internet_access" msgid="4787495471423429472">"מתבצעת בדיקה לצורך גישה לאינטרנט..."</string>
<string name="wifitrackerlib_auto_connect_disable" msgid="4714835547164460651">"החיבור האוטומטי כבוי"</string>
- <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"נשמרה על-ידי <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"נשמרה על-ידי: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"לא יתבצע חיבור באופן אוטומטי"</string>
<string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"אין גישה לאינטרנט"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"בעיית אימות"</string>
diff --git a/libs/WifiTrackerLib/res/values-kn/strings.xml b/libs/WifiTrackerLib/res/values-kn/strings.xml
index 019f7d624..e47928534 100644
--- a/libs/WifiTrackerLib/res/values-kn/strings.xml
+++ b/libs/WifiTrackerLib/res/values-kn/strings.xml
@@ -23,7 +23,7 @@
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕನೆಕ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
<string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"ಯಾವುದೇ ಇಂಟರ್ನೆಟ್ ಪ್ರವೇಶವಿಲ್ಲ"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"ದೃಢೀಕರಣದ ಸಮಸ್ಯೆ"</string>
- <string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"ಪಾಸ್‌ವರ್ಡ್ ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ"</string>
+ <string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"ಪಾಸ್‌ವರ್ಡ್ ಪರಿಶೀಲಿಸಿ, ಪುನಃ ಪ್ರಯತ್ನಿಸಿ"</string>
<string name="wifitrackerlib_wifi_disabled_network_failure" msgid="3046956554224277166">"IP ಕಾನ್ಫಿಗರೇಶನ್ ವೈಫಲ್ಯ"</string>
<string name="wifitrackerlib_wifi_disabled_transition_disable_indication" msgid="6416221593061166867">"ಪ್ರಸ್ತುತ ಭದ್ರತಾ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಜೊತೆ ಲಭ್ಯವಿಲ್ಲ"</string>
<string name="wifitrackerlib_wifi_disabled_generic" msgid="4278806060337007814">"ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
@@ -34,7 +34,7 @@
<string name="wifitrackerlib_wifi_mbo_assoc_disallowed_cannot_connect" msgid="2692286425448897083">"ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string>
<string name="wifitrackerlib_wifi_network_not_found" msgid="1308764769892463388">"ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string>
<string name="wifitrackerlib_wifi_disconnected" msgid="3320414360982942679">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ"</string>
- <string name="wifitrackerlib_wifi_remembered" msgid="2406091442008343041">"ಉಳಿಸಲಾಗಿದೆ"</string>
+ <string name="wifitrackerlib_wifi_remembered" msgid="2406091442008343041">"ಸೇವ್‌ ಮಾಡಲಾಗಿದೆ"</string>
<string name="wifitrackerlib_wifi_metered_label" msgid="8818508951778620385">"ಮೀಟರ್ ಮಾಡಲಾಗಿದೆ"</string>
<string name="wifitrackerlib_wifi_unmetered_label" msgid="1902150402929678469">"ಮೀಟರ್ ಮಾಡಲಾಗಿಲ್ಲ"</string>
<string name="wifitrackerlib_connected_via_app" msgid="7823921840931347560">"<xliff:g id="NAME">%1$s</xliff:g> ಆ್ಯಪ್ ಮೂಲಕ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
diff --git a/libs/WifiTrackerLib/res/values-or/arrays.xml b/libs/WifiTrackerLib/res/values-or/arrays.xml
index 607552e7b..838ab874c 100644
--- a/libs/WifiTrackerLib/res/values-or/arrays.xml
+++ b/libs/WifiTrackerLib/res/values-or/arrays.xml
@@ -26,7 +26,7 @@
<item msgid="9055468790485684083">"ସଂଯୋଗ ହେଉଛି…"</item>
<item msgid="6099499723199990208">"ପ୍ରାମାଣିକରଣ କରାଯାଉଛି…"</item>
<item msgid="6794055951297347103">"IP ଠିକଣା ପ୍ରାପ୍ତ କରୁଛି…"</item>
- <item msgid="5450920562291300229">"ସଂଯୋଗ ହୋଇଛି"</item>
+ <item msgid="5450920562291300229">"କନେକ୍ଟ କରାଯାଇଛି"</item>
<item msgid="6332116533879646145">"ସାମୟିକ ଭାବରେ ବନ୍ଦ କରାଯାଇଛି"</item>
<item msgid="294459081501073818">"ବିଚ୍ଛିନ୍ନ କରାଯାଉଛି…"</item>
<item msgid="1577368920272598676">"ବିଚ୍ଛିନ୍ନ କରାଯାଇଛି"</item>
diff --git a/libs/WifiTrackerLib/res/values-or/strings.xml b/libs/WifiTrackerLib/res/values-or/strings.xml
index 2cfe11bbe..9e992f962 100644
--- a/libs/WifiTrackerLib/res/values-or/strings.xml
+++ b/libs/WifiTrackerLib/res/values-or/strings.xml
@@ -34,7 +34,7 @@
<string name="wifitrackerlib_wifi_mbo_assoc_disallowed_cannot_connect" msgid="2692286425448897083">"ସଂଯୋଗ କରାଯାଇପାରିବ ନାହିଁ। ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
<string name="wifitrackerlib_wifi_network_not_found" msgid="1308764769892463388">"ସଂଯୋଗ କରାଯାଇପାରିବ ନାହିଁ। ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
<string name="wifitrackerlib_wifi_disconnected" msgid="3320414360982942679">"ବିଚ୍ଛିନ୍ନ କରାଯାଇଛି"</string>
- <string name="wifitrackerlib_wifi_remembered" msgid="2406091442008343041">"ସେଭ୍ କରାଯାଇଛି"</string>
+ <string name="wifitrackerlib_wifi_remembered" msgid="2406091442008343041">"ସେଭ କରାଯାଇଛି"</string>
<string name="wifitrackerlib_wifi_metered_label" msgid="8818508951778620385">"ମିଟର ହୋଇଥିବା"</string>
<string name="wifitrackerlib_wifi_unmetered_label" msgid="1902150402929678469">"ମିଟର ହୋଇନଥିବା"</string>
<string name="wifitrackerlib_connected_via_app" msgid="7823921840931347560">"<xliff:g id="NAME">%1$s</xliff:g> ମାଧ୍ୟମରେ ସଂଯୋଗ କରାଯାଇଛି"</string>
diff --git a/libs/WifiTrackerLib/res/values-pa/strings.xml b/libs/WifiTrackerLib/res/values-pa/strings.xml
index ba9beec75..322e547c7 100644
--- a/libs/WifiTrackerLib/res/values-pa/strings.xml
+++ b/libs/WifiTrackerLib/res/values-pa/strings.xml
@@ -23,7 +23,7 @@
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ"</string>
<string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"ਕੋਈ ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ ਨਹੀਂ"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"ਪ੍ਰਮਾਣੀਕਰਨ ਸਮੱਸਿਆ"</string>
- <string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"ਪਾਸਵਰਡ ਦੀ ਜਾਂਚ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
+ <string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"ਪਾਸਵਰਡ ਦੀ ਜਾਂਚ ਕਰ ਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
<string name="wifitrackerlib_wifi_disabled_network_failure" msgid="3046956554224277166">"IP ਸੰਰੂਪਣ ਅਸਫਲਤਾ"</string>
<string name="wifitrackerlib_wifi_disabled_transition_disable_indication" msgid="6416221593061166867">"ਮੌਜੂਦਾ ਸੁਰੱਖਿਆ ਸੈਟਿੰਗਾਂ ਨਾਲ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
<string name="wifitrackerlib_wifi_disabled_generic" msgid="4278806060337007814">"ਬੰਦ ਕੀਤਾ ਗਿਆ"</string>
diff --git a/libs/WifiTrackerLib/res/values-pt-rPT/arrays.xml b/libs/WifiTrackerLib/res/values-pt-rPT/arrays.xml
index 822b09180..351582278 100644
--- a/libs/WifiTrackerLib/res/values-pt-rPT/arrays.xml
+++ b/libs/WifiTrackerLib/res/values-pt-rPT/arrays.xml
@@ -26,7 +26,7 @@
<item msgid="9055468790485684083">"A ligar…"</item>
<item msgid="6099499723199990208">"A autenticar…"</item>
<item msgid="6794055951297347103">"A obter endereço IP…"</item>
- <item msgid="5450920562291300229">"Ligado"</item>
+ <item msgid="5450920562291300229">"Ligada"</item>
<item msgid="6332116533879646145">"Suspenso"</item>
<item msgid="294459081501073818">"A desligar…"</item>
<item msgid="1577368920272598676">"Desligado"</item>
diff --git a/libs/WifiTrackerLib/res/values-pt-rPT/strings.xml b/libs/WifiTrackerLib/res/values-pt-rPT/strings.xml
index 179435b6f..0ba5796f0 100644
--- a/libs/WifiTrackerLib/res/values-pt-rPT/strings.xml
+++ b/libs/WifiTrackerLib/res/values-pt-rPT/strings.xml
@@ -23,7 +23,7 @@
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"Não é efetuada uma ligação automaticamente."</string>
<string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"Sem acesso à Internet."</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"Problema de autenticação"</string>
- <string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"Verifique a palavra-passe e tente novamente."</string>
+ <string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"Verifique palavra-passe e tente de novo"</string>
<string name="wifitrackerlib_wifi_disabled_network_failure" msgid="3046956554224277166">"Falha de configuração de IP"</string>
<string name="wifitrackerlib_wifi_disabled_transition_disable_indication" msgid="6416221593061166867">"Indisponível com as definições de segurança atuais"</string>
<string name="wifitrackerlib_wifi_disabled_generic" msgid="4278806060337007814">"Desativada"</string>
diff --git a/libs/WifiTrackerLib/res/values-ru/strings.xml b/libs/WifiTrackerLib/res/values-ru/strings.xml
index befda266b..b25060f77 100644
--- a/libs/WifiTrackerLib/res/values-ru/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ru/strings.xml
@@ -21,9 +21,9 @@
<string name="wifitrackerlib_auto_connect_disable" msgid="4714835547164460651">"Автоподключение отключено"</string>
<string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"Сохранено: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"Подключение не будет выполняться автоматически"</string>
- <string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"Без доступа к Интернету"</string>
+ <string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"Без доступа к интернету"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"Ошибка аутентификации"</string>
- <string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"Похоже, вы указали неверный пароль. Повторите попытку."</string>
+ <string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"Неверный пароль. Повторите попытку."</string>
<string name="wifitrackerlib_wifi_disabled_network_failure" msgid="3046956554224277166">"Ошибка конфигурации IP"</string>
<string name="wifitrackerlib_wifi_disabled_transition_disable_indication" msgid="6416221593061166867">"Доступ закрыт согласно настройкам безопасности"</string>
<string name="wifitrackerlib_wifi_disabled_generic" msgid="4278806060337007814">"Отключено"</string>
diff --git a/libs/WifiTrackerLib/res/values-sk/strings.xml b/libs/WifiTrackerLib/res/values-sk/strings.xml
index e3e495511..c757dc71c 100644
--- a/libs/WifiTrackerLib/res/values-sk/strings.xml
+++ b/libs/WifiTrackerLib/res/values-sk/strings.xml
@@ -19,7 +19,7 @@
<string name="wifitrackerlib_summary_separator" msgid="6613897475167609815">" / "</string>
<string name="wifitrackerlib_checking_for_internet_access" msgid="4787495471423429472">"Kontroluje sa dostupnosť internetového pripojenia..."</string>
<string name="wifitrackerlib_auto_connect_disable" msgid="4714835547164460651">"Automatické pripojenie je vypnuté"</string>
- <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"Uložil používateľ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"Uložila aplikácia <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"Nedôjde k automatickému pripojeniu"</string>
<string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"Bez prístupu k internetu"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"Problém s overením"</string>
diff --git a/libs/WifiTrackerLib/res/values-zh-rCN/strings.xml b/libs/WifiTrackerLib/res/values-zh-rCN/strings.xml
index cbf3a82b8..5be532e2e 100644
--- a/libs/WifiTrackerLib/res/values-zh-rCN/strings.xml
+++ b/libs/WifiTrackerLib/res/values-zh-rCN/strings.xml
@@ -19,7 +19,7 @@
<string name="wifitrackerlib_summary_separator" msgid="6613897475167609815">" / "</string>
<string name="wifitrackerlib_checking_for_internet_access" msgid="4787495471423429472">"正在检查互联网访问权限…"</string>
<string name="wifitrackerlib_auto_connect_disable" msgid="4714835547164460651">"自动连接已关闭"</string>
- <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"已由<xliff:g id="NAME">%1$s</xliff:g>保存"</string>
+ <string name="wifitrackerlib_saved_network" msgid="5353460010746484376">"由<xliff:g id="NAME">%1$s</xliff:g>保存"</string>
<string name="wifitrackerlib_wifi_no_internet_no_reconnect" msgid="6618216332537706908">"无法自动连接"</string>
<string name="wifitrackerlib_wifi_no_internet" msgid="4998563744669636949">"无法访问互联网"</string>
<string name="wifitrackerlib_wifi_disabled_password_failure" msgid="2850244218754633550">"身份验证出现问题"</string>
diff --git a/libs/WifiTrackerLib/sdk_src/src/com/android/wifitrackerlib/NonSdkApiWrapper.java b/libs/WifiTrackerLib/sdk_src/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
index f0a7c7c87..52c51557b 100644
--- a/libs/WifiTrackerLib/sdk_src/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
+++ b/libs/WifiTrackerLib/sdk_src/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
@@ -23,7 +23,6 @@ import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.wifi.WifiInfo;
-import android.os.Handler;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -75,19 +74,6 @@ class NonSdkApiWrapper {
}
/**
- * Registers the system default network callback.
- */
- static void registerSystemDefaultNetworkCallback(
- @NonNull ConnectivityManager connectivityManager,
- @NonNull ConnectivityManager.NetworkCallback callback,
- @NonNull Handler handler) {
- // registerSystemDefaultNetworkCallback does not have visibility to non-updatable modules,
- // so we have to use the regular registerDefaultNetworkCallback here.
- // TODO(b/230643853): See if we can add registerSystemDefaultNetworkCallback to the SDK.
- connectivityManager.registerDefaultNetworkCallback(callback, handler);
- }
-
- /**
* Returns true if the WifiInfo is for the primary network, false otherwise.
*/
static boolean isPrimary(@NonNull WifiInfo wifiInfo) {
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
index a430a44f4..5f1abd9a5 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
@@ -21,6 +21,7 @@ import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
import static android.os.Build.VERSION_CODES;
import android.annotation.TargetApi;
+import android.app.ActivityManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -101,7 +102,6 @@ public class BaseWifiTracker {
private int mWifiState = WifiManager.WIFI_STATE_DISABLED;
private boolean mIsInitialized = false;
- private boolean mIsStopped = true;
// Registered on the worker thread
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@@ -117,11 +117,7 @@ public class BaseWifiTracker {
if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) {
mWifiState = intent.getIntExtra(
WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_DISABLED);
- if (mWifiState == WifiManager.WIFI_STATE_ENABLED) {
- mScanner.start();
- } else {
- mScanner.stop();
- }
+ mScanner.onWifiStateChanged(mWifiState == WifiManager.WIFI_STATE_ENABLED);
notifyOnWifiStateChanged();
handleWifiStateChangedAction();
} else if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) {
@@ -141,6 +137,7 @@ public class BaseWifiTracker {
protected final WifiTrackerInjector mInjector;
protected final Context mContext;
+ protected final @NonNull ActivityManager mActivityManager;
protected final WifiManager mWifiManager;
protected final ConnectivityManager mConnectivityManager;
protected final ConnectivityDiagnosticsManager mConnectivityDiagnosticsManager;
@@ -306,6 +303,7 @@ public class BaseWifiTracker {
BaseWifiTrackerCallback listener,
String tag) {
mInjector = injector;
+ mActivityManager = context.getSystemService(ActivityManager.class);
lifecycle.addObserver(new LifecycleObserver() {
@OnLifecycleEvent(Lifecycle.Event.ON_START)
@MainThread
@@ -352,18 +350,24 @@ public class BaseWifiTracker {
*/
@MainThread
public void onStart() {
+ if (isVerboseLoggingEnabled()) {
+ Log.v(mTag, "onStart");
+ }
+ mScanner.onStart();
mWorkerHandler.post(() -> {
- mIsStopped = false;
IntentFilter filter = new IntentFilter();
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
filter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
filter.addAction(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION);
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
filter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
+ filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
mContext.registerReceiver(mBroadcastReceiver, filter,
/* broadcastPermission */ null, mWorkerHandler);
mConnectivityManager.registerNetworkCallback(mNetworkRequest, mNetworkCallback,
mWorkerHandler);
+ mConnectivityManager.registerDefaultNetworkCallback(mDefaultNetworkCallback,
+ mWorkerHandler);
mConnectivityDiagnosticsManager.registerConnectivityDiagnosticsCallback(mNetworkRequest,
mConnectivityDiagnosticsExecutor, mConnectivityDiagnosticsCallback);
if (mSharedConnectivityManager != null && mSharedConnectivityCallback != null
@@ -371,8 +375,6 @@ public class BaseWifiTracker {
mSharedConnectivityManager.registerCallback(mSharedConnectivityExecutor,
mSharedConnectivityCallback);
}
- NonSdkApiWrapper.registerSystemDefaultNetworkCallback(
- mConnectivityManager, mDefaultNetworkCallback, mWorkerHandler);
handleOnStart();
mIsInitialized = true;
});
@@ -383,9 +385,11 @@ public class BaseWifiTracker {
*/
@MainThread
public void onStop() {
+ if (isVerboseLoggingEnabled()) {
+ Log.v(mTag, "onStop");
+ }
+ mScanner.onStop();
mWorkerHandler.post(() -> {
- mIsStopped = true;
- mScanner.stop();
try {
mContext.unregisterReceiver(mBroadcastReceiver);
mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
@@ -633,27 +637,28 @@ public class BaseWifiTracker {
}
/**
- * Scanner to handle starting scans every SCAN_INTERVAL_MILLIS
+ * Helper class to handle starting scans every SCAN_INTERVAL_MILLIS.
+ *
+ * Scanning is only done when the activity is in the Started state and Wi-Fi is enabled.
*/
- @WorkerThread
private class Scanner extends Handler {
- private static final int SCAN_RETRY_TIMES = 3;
-
- private int mRetry = 0;
- private boolean mIsActive;
+ private boolean mIsStartedState = false;
+ private boolean mIsWifiEnabled = false;
private final WifiScanner.ScanListener mFirstScanListener = new WifiScanner.ScanListener() {
@Override
+ @MainThread
public void onPeriodChanged(int periodInMs) {
// No-op.
}
@Override
+ @MainThread
public void onResults(WifiScanner.ScanData[] results) {
mWorkerHandler.post(() -> {
- if (!mIsActive || mIsStopped) {
+ if (!shouldScan()) {
return;
}
- if (sVerboseLogging) {
+ if (isVerboseLoggingEnabled()) {
Log.v(mTag, "Received scan results from first scan request.");
}
List<ScanResult> scanResults = new ArrayList<>();
@@ -669,29 +674,32 @@ public class BaseWifiTracker {
new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)
.putExtra(WifiManager.EXTRA_RESULTS_UPDATED, true));
// Now start scanning via WifiManager.startScan().
- postScan();
+ scanLoop();
});
}
@Override
+ @MainThread
public void onFullResult(ScanResult fullScanResult) {
// No-op.
}
@Override
+ @MainThread
public void onSuccess() {
// No-op.
}
@Override
+ @MainThread
public void onFailure(int reason, String description) {
mWorkerHandler.post(() -> {
- if (!mIsActive || mIsStopped) {
+ if (!mIsWifiEnabled) {
return;
}
Log.e(mTag, "Failed to scan! Reason: " + reason + ", ");
// First scan failed, start scanning normally anyway.
- postScan();
+ scanLoop();
});
}
};
@@ -700,14 +708,58 @@ public class BaseWifiTracker {
super(looper);
}
- private void start() {
- if (mIsActive || mIsStopped) {
- return;
+ /**
+ * Called when the activity enters the Started state.
+ * When this happens, evaluate if we need to start scanning.
+ */
+ @MainThread
+ private void onStart() {
+ mIsStartedState = true;
+ mWorkerHandler.post(this::possiblyStartScanning);
+ }
+
+ /**
+ * Called when the activity exits the Started state.
+ * When this happens, stop scanning.
+ */
+ @MainThread
+ private void onStop() {
+ mIsStartedState = false;
+ mWorkerHandler.post(this::stopScanning);
+ }
+
+ /**
+ * Called whenever the Wi-Fi state changes. If the new state differs from the old state,
+ * then re-evaluate whether we need to start or stop scanning.
+ * @param enabled Whether Wi-Fi is enabled or not.
+ */
+ @WorkerThread
+ private void onWifiStateChanged(boolean enabled) {
+ boolean oldEnabled = mIsWifiEnabled;
+ mIsWifiEnabled = enabled;
+ if (mIsWifiEnabled != oldEnabled) {
+ if (mIsWifiEnabled) {
+ possiblyStartScanning();
+ } else {
+ stopScanning();
+ }
}
- mIsActive = true;
- if (isVerboseLoggingEnabled()) {
- Log.v(mTag, "Scanner start");
+ }
+
+ /**
+ * Returns true if we should be scanning and false if not.
+ * Scanning should only happen when Wi-Fi is enabled and the activity is started.
+ */
+ private boolean shouldScan() {
+ return mIsWifiEnabled && mIsStartedState;
+ }
+
+ @WorkerThread
+ private void possiblyStartScanning() {
+ if (!shouldScan()) {
+ return;
}
+ Log.i(mTag, "Scanning started");
if (BuildCompat.isAtLeastU()) {
// Start off with a fast scan of 2.4GHz, 5GHz, and 6GHz RNR using WifiScanner.
// After this is done, fall back to WifiManager.startScan() to get the rest of
@@ -719,43 +771,56 @@ public class BaseWifiTracker {
scanSettings.setRnrSetting(WifiScanner.WIFI_RNR_ENABLED);
WifiScanner wifiScanner = mContext.getSystemService(WifiScanner.class);
if (wifiScanner != null) {
+ wifiScanner.stopScan(mFirstScanListener);
+ if (isVerboseLoggingEnabled()) {
+ Log.v(mTag, "Issuing scan request from WifiScanner");
+ }
wifiScanner.startScan(scanSettings, mFirstScanListener);
return;
} else {
Log.e(mTag, "Failed to retrieve WifiScanner!");
}
}
- postScan();
+ scanLoop();
}
- private void stop() {
- mIsActive = false;
- if (isVerboseLoggingEnabled()) {
- Log.v(mTag, "Scanner stop");
- }
- mRetry = 0;
+ @WorkerThread
+ private void stopScanning() {
+ Log.i(mTag, "Scanning stopped");
removeCallbacksAndMessages(null);
}
- private void postScan() {
- if (!mIsActive || mIsStopped) {
- Log.wtf(mTag, "Tried to run scan loop when we've already stopped!");
+ @WorkerThread
+ private void scanLoop() {
+ if (!shouldScan()) {
+ Log.wtf(mTag, "Scan loop called even though we shouldn't be scanning!"
+ + " mIsWifiEnabled=" + mIsWifiEnabled
+ + " mIsStartedState=" + mIsStartedState);
return;
}
- if (mWifiManager.startScan()) {
- mRetry = 0;
- } else if (++mRetry >= SCAN_RETRY_TIMES) {
- // TODO(b/70983952): See if toast is needed here
- if (isVerboseLoggingEnabled()) {
- Log.v(mTag, "Scanner failed to start scan " + mRetry + " times!");
- }
- mRetry = 0;
+ if (!isAppVisible()) {
+ Log.wtf(mTag, "Scan loop called even though app isn't visible anymore!"
+ + " mIsWifiEnabled=" + mIsWifiEnabled
+ + " mIsStartedState=" + mIsStartedState);
return;
}
- postDelayed(this::postScan, mScanIntervalMillis);
+ if (isVerboseLoggingEnabled()) {
+ Log.v(mTag, "Issuing scan request from WifiManager");
+ }
+ // Remove any pending scanLoops in case possiblyStartScanning was called more than once.
+ removeCallbacksAndMessages(null);
+ mWifiManager.startScan();
+ postDelayed(this::scanLoop, mScanIntervalMillis);
}
}
+ private boolean isAppVisible() {
+ ActivityManager.RunningAppProcessInfo processInfo =
+ new ActivityManager.RunningAppProcessInfo();
+ ActivityManager.getMyMemoryState(processInfo);
+ return processInfo.importance <= ActivityManager.RunningAppProcessInfo.IMPORTANCE_VISIBLE;
+ }
+
/**
* Posts onWifiStateChanged callback on the main thread.
*/
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
index 3bd206f5f..0a71bcbe8 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
@@ -25,7 +25,6 @@ import android.net.NetworkCapabilities;
import android.net.TransportInfo;
import android.net.vcn.VcnTransportInfo;
import android.net.wifi.WifiInfo;
-import android.os.Handler;
import android.os.UserManager;
import android.text.Annotation;
import android.text.SpannableString;
@@ -111,16 +110,6 @@ class NonSdkApiWrapper {
}
/**
- * Registers the default network callback.
- */
- static void registerSystemDefaultNetworkCallback(
- @NonNull ConnectivityManager connectivityManager,
- @NonNull ConnectivityManager.NetworkCallback callback,
- @NonNull Handler handler) {
- connectivityManager.registerSystemDefaultNetworkCallback(callback, handler);
- }
-
- /**
* Returns true if the WifiInfo is for the primary network, false otherwise.
*/
static boolean isPrimary(@NonNull WifiInfo wifiInfo) {
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
index e97a3f6f5..95ab2599c 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
@@ -962,7 +962,7 @@ public class StandardWifiEntry extends WifiEntry {
}
// TODO(b/227622961): Remove the suppression once the linter recognizes BuildCompat.isAtLeastT()
- @SuppressLint("NewApi")
+ @SuppressLint({"NewApi", "SwitchIntDef"})
private synchronized String getScanResultDescription(ScanResult scanResult, long nowMs) {
final StringBuilder description = new StringBuilder();
description.append(" \n{");
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
index c2bc0ad7a..0c575f73b 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
@@ -238,6 +238,7 @@ public class WifiEntry {
protected NetworkInfo mNetworkInfo;
protected Network mNetwork;
protected NetworkCapabilities mNetworkCapabilities;
+ protected NetworkCapabilities mDefaultNetworkCapabilities;
protected ConnectivityDiagnosticsManager.ConnectivityReport mConnectivityReport;
protected ConnectedInfo mConnectedInfo;
@@ -249,7 +250,6 @@ public class WifiEntry {
protected boolean mCalledDisconnect = false;
protected boolean mIsDefaultNetwork;
- protected boolean mIsCellDefaultNetwork;
private Optional<ManageSubscriptionAction> mManageSubscriptionAction = Optional.empty();
@@ -334,11 +334,12 @@ public class WifiEntry {
/**
* Returns whether the level icon for this network should show an X or not.
+ * By default, this means any connected network that has no/low-quality internet access.
*/
public boolean shouldShowXLevelIcon() {
return getConnectedState() != CONNECTED_STATE_DISCONNECTED
&& mConnectivityReport != null
- && (!hasInternetAccess() || !mIsDefaultNetwork)
+ && (!hasInternetAccess() || isLowQuality())
&& !canSignIn()
&& isPrimaryNetwork();
}
@@ -364,10 +365,12 @@ public class WifiEntry {
* Returns whether this network is the primary Wi-Fi network or not.
*/
public boolean isPrimaryNetwork() {
- if (mWifiInfo == null) {
+ if (getConnectedState() == CONNECTED_STATE_DISCONNECTED) {
+ // In case we have mNetworkInfo but the state is disconnected.
return false;
}
- return NonSdkApiWrapper.isPrimary(mWifiInfo);
+ return mNetworkInfo != null
+ || (mWifiInfo != null && NonSdkApiWrapper.isPrimary(mWifiInfo));
}
/**
@@ -380,8 +383,12 @@ public class WifiEntry {
if (mNetworkCapabilities == null) {
return false;
}
+ if (mDefaultNetworkCapabilities == null) {
+ return false;
+ }
return mNetworkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
- && mIsCellDefaultNetwork;
+ && mDefaultNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)
+ && !mDefaultNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN);
}
/**
@@ -976,8 +983,7 @@ public class WifiEntry {
@NonNull Network network,
@NonNull NetworkCapabilities capabilities) {
onNetworkCapabilitiesChanged(network, capabilities);
- mIsCellDefaultNetwork = Utils.getWifiInfo(capabilities) == null
- && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR);
+ mDefaultNetworkCapabilities = capabilities;
mIsDefaultNetwork = network.equals(mNetwork);
notifyOnUpdated();
}
@@ -986,7 +992,7 @@ public class WifiEntry {
* Notifies this WifiEntry that the default network was lost.
*/
synchronized void onDefaultNetworkLost() {
- mIsCellDefaultNetwork = false;
+ mDefaultNetworkCapabilities = null;
mIsDefaultNetwork = false;
notifyOnUpdated();
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
index 81a458def..dc2a7b4dc 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
@@ -386,6 +386,7 @@ public class WifiPickerTracker extends BaseWifiTracker {
for (WifiEntry entry : getAllWifiEntries()) {
entry.onPrimaryWifiInfoChanged(primaryWifiInfo, networkInfo);
}
+ updateWifiEntries();
}
@WorkerThread
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/PasspointWifiEntryTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/PasspointWifiEntryTest.java
index fcd939e00..ebd86cb02 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/PasspointWifiEntryTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/PasspointWifiEntryTest.java
@@ -45,6 +45,7 @@ import android.os.test.TestLooper;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoSession;
@@ -222,7 +223,7 @@ public class PasspointWifiEntryTest {
}
@Test
- public void testShouldShowXLevelIcon_unvalidatedOrNotDefault_returnsTrue() {
+ public void testShouldShowXLevelIcon_unvalidatedOrLowQuality_returnsTrue() {
when(mMockWifiInfo.isPasspointAp()).thenReturn(true);
when(mMockWifiInfo.getPasspointFqdn()).thenReturn(FQDN);
@@ -233,37 +234,27 @@ public class PasspointWifiEntryTest {
// Disconnected should return false;
assertThat(entry.shouldShowXLevelIcon()).isEqualTo(false);
- // Not validated, Not Default
+ // Connected but validation attempt not complete, should not show X level icon yet.
entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
-
- // Validation attempt not complete, should not show X level icon yet.
assertThat(entry.shouldShowXLevelIcon()).isEqualTo(false);
- // Validation attempt complete, should show X level icon now.
+ // Validation attempt complete, should show X level icon.
ConnectivityDiagnosticsManager.ConnectivityReport connectivityReport = mock(
ConnectivityDiagnosticsManager.ConnectivityReport.class);
when(connectivityReport.getNetwork()).thenReturn(mMockNetwork);
entry.updateConnectivityReport(connectivityReport);
-
- assertThat(entry.shouldShowXLevelIcon()).isEqualTo(true);
-
- // Not Validated, Default
- entry.onDefaultNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
-
assertThat(entry.shouldShowXLevelIcon()).isEqualTo(true);
- // Validated, Default
+ // Internet validated, should not show X level icon.
when(mMockNetworkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED))
.thenReturn(true);
entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
-
assertThat(entry.shouldShowXLevelIcon()).isEqualTo(false);
- // Validated, Not Default
- Network otherNetwork = mock(Network.class);
- when(otherNetwork.getNetId()).thenReturn(2);
- entry.onDefaultNetworkCapabilitiesChanged(otherNetwork, new NetworkCapabilities());
-
+ // Cell becomes default (i.e. low quality wifi), show X level icon.
+ entry.onDefaultNetworkCapabilitiesChanged(Mockito.mock(Network.class),
+ new NetworkCapabilities.Builder()
+ .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR).build());
assertThat(entry.shouldShowXLevelIcon()).isEqualTo(true);
}
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
index bd954a632..609b00c31 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
@@ -84,6 +84,7 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoSession;
@@ -826,39 +827,29 @@ public class StandardWifiEntryTest {
// Disconnected should return false;
assertThat(entry.shouldShowXLevelIcon()).isEqualTo(false);
- // Not validated, Not Default
+ // Connected but validation attempt not complete, should not show X level icon yet.
when(mMockWifiInfo.getNetworkId()).thenReturn(networkId);
when(mMockWifiInfo.getRssi()).thenReturn(TestUtils.GOOD_RSSI);
-
entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
-
- // Validation attempt not complete, should not show X level icon yet.
assertThat(entry.shouldShowXLevelIcon()).isEqualTo(false);
- // Validation attempt complete, should show X level icon now.
+ // Validation attempt complete, should show X level icon.
ConnectivityDiagnosticsManager.ConnectivityReport connectivityReport = mock(
ConnectivityDiagnosticsManager.ConnectivityReport.class);
when(connectivityReport.getNetwork()).thenReturn(mMockNetwork);
entry.updateConnectivityReport(connectivityReport);
assertThat(entry.shouldShowXLevelIcon()).isEqualTo(true);
- // Not Validated, Default
- entry.onDefaultNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
-
- assertThat(entry.shouldShowXLevelIcon()).isEqualTo(true);
-
- // Validated, Default
+ // Internet validated, should not show X level icon.
when(mMockNetworkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED))
.thenReturn(true);
entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
-
assertThat(entry.shouldShowXLevelIcon()).isEqualTo(false);
- // Validated, Not Default
- Network otherNetwork = mock(Network.class);
- when(otherNetwork.getNetId()).thenReturn(2);
- entry.onDefaultNetworkCapabilitiesChanged(otherNetwork, new NetworkCapabilities());
-
+ // Cell becomes default (i.e. low quality wifi), show X level icon.
+ entry.onDefaultNetworkCapabilitiesChanged(Mockito.mock(Network.class),
+ new NetworkCapabilities.Builder()
+ .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR).build());
assertThat(entry.shouldShowXLevelIcon()).isEqualTo(true);
}
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
index 78675a742..96b3e5459 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
@@ -52,6 +52,7 @@ import android.net.ConnectivityManager;
import android.net.LinkProperties;
import android.net.Network;
import android.net.NetworkCapabilities;
+import android.net.NetworkInfo;
import android.net.TransportInfo;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
@@ -213,6 +214,10 @@ public class WifiPickerTrackerTest {
when(mMockContext.getSystemService(SharedConnectivityManager.class))
.thenReturn(mMockSharedConnectivityManager);
when(mMockContext.getString(anyInt())).thenReturn("");
+ when(mMockResources.getStringArray(R.array.wifitrackerlib_wifi_status)).thenReturn(
+ new String[]{"", "Scanning", "Connecting", "Authenticating", "Obtaining IP address",
+ "Connected", "Suspended", "Disconnecting", "Unsuccessful", "Blocked",
+ "Temporarily avoiding poor connection"});
BaseWifiTracker.mEnableSharedConnectivityFeature = true;
}
@@ -580,6 +585,45 @@ public class WifiPickerTrackerTest {
}
/**
+ * Tests that an L2 connected network (i.e. from NETWORK_STATE_CHANGED) will correctly be
+ * returned in getConnectedEntry() as the primary network.
+ */
+ @Test
+ public void testGetConnectedEntry_networkL2Connected_returnsConnectedEntry() {
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+ final WifiConfiguration config = new WifiConfiguration();
+ config.SSID = "\"ssid\"";
+ config.networkId = 1;
+ when(mMockWifiManager.getPrivilegedConfiguredNetworks())
+ .thenReturn(Collections.singletonList(config));
+ when(mMockWifiManager.getScanResults()).thenReturn(Arrays.asList(
+ buildScanResult("ssid", "bssid", START_MILLIS)));
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockContext).registerReceiver(
+ mBroadcastReceiverCaptor.capture(), any(), any(), any());
+ verify(mMockConnectivityManager).registerNetworkCallback(
+ any(), mNetworkCallbackCaptor.capture(), any());
+ final WifiEntry entry = wifiPickerTracker.getWifiEntries().get(0);
+
+ // Simulate an L2 connected network that's still authenticating.
+ when(mMockWifiInfo.getNetworkId()).thenReturn(1);
+ when(mMockWifiInfo.getRssi()).thenReturn(-50);
+ NetworkInfo mockNetworkInfo = mock(NetworkInfo.class);
+ when(mockNetworkInfo.getDetailedState())
+ .thenReturn(NetworkInfo.DetailedState.AUTHENTICATING);
+ Intent networkStateChanged = new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION);
+ networkStateChanged.putExtra(WifiManager.EXTRA_NETWORK_INFO, mockNetworkInfo);
+ mBroadcastReceiverCaptor.getValue().onReceive(mMockContext, networkStateChanged);
+
+ // Network should be returned in getConnectedWifiEntry() even though it's not L3 connected.
+ verify(mMockCallback, atLeastOnce()).onWifiEntriesChanged();
+// assertThat(wifiPickerTracker.getWifiEntries()).isEmpty();
+ assertThat(wifiPickerTracker.getConnectedWifiEntry()).isEqualTo(entry);
+ assertThat(entry.isPrimaryNetwork()).isTrue();
+ }
+
+ /**
* Tests that connecting to a network will update getConnectedEntry() to return the connected
* WifiEntry if the framework times out and gives us an empty list of configs.
*/
@@ -788,7 +832,19 @@ public class WifiPickerTrackerTest {
// Cell default + primary network validation should trigger low quality
assertThat(wifiPickerTracker.getConnectedWifiEntry().getSummary()).isEqualTo(lowQuality);
- // Lose the default network. Low quality should disappear, since cell isn't default anymore
+ // Cell + VPN is default should not trigger low quality, since the VPN underlying network is
+ // determined by the VPN app and not whether Wi-Fi is low quality or not.
+ mDefaultNetworkCallbackCaptor.getValue().onCapabilitiesChanged(Mockito.mock(Network.class),
+ new NetworkCapabilities.Builder()
+ .addTransportType(NetworkCapabilities.TRANSPORT_VPN)
+ .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR).build());
+ assertThat(wifiPickerTracker.getConnectedWifiEntry().getSummary()).isNotEqualTo(lowQuality);
+
+ // Set Cell to the default but then lose the default network. Low quality should disappear
+ // since cell default was lost.
+ mDefaultNetworkCallbackCaptor.getValue().onCapabilitiesChanged(Mockito.mock(Network.class),
+ new NetworkCapabilities.Builder()
+ .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR).build());
mDefaultNetworkCallbackCaptor.getValue().onLost(mock(Network.class));
assertThat(wifiPickerTracker.getConnectedWifiEntry().isDefaultNetwork()).isFalse();
}