diff --git a/libs/WifiTrackerLib/res/values-am/strings.xml b/libs/WifiTrackerLib/res/values-am/strings.xml
index 532b2f7..bb89a4c 100644
--- a/libs/WifiTrackerLib/res/values-am/strings.xml
+++ b/libs/WifiTrackerLib/res/values-am/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"የግል ዲኤንኤስ አገልጋይ ሊደረስበት አይችልም"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"ከመሣሪያው ጋር ተገናኝቷል። በይነመረብ ማቅረብ አልተቻለም።"</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"አነስተኛ ጥራት"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"በእርስዎ ድርጅት አልተፈቀደም"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"በድርጅትዎ አይፈቀድም"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-b+sr+Latn/strings.xml b/libs/WifiTrackerLib/res/values-b+sr+Latn/strings.xml
index 17cbd71..fd37241 100644
--- a/libs/WifiTrackerLib/res/values-b+sr+Latn/strings.xml
+++ b/libs/WifiTrackerLib/res/values-b+sr+Latn/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Pristup privatnom DNS serveru nije uspeo"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Uređaj je povezan. Pružanje interneta nije uspelo."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Loš kvalitet"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Ne dozvoljava vaša organizacija"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Ne dozvoljava organizacija"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-bs/strings.xml b/libs/WifiTrackerLib/res/values-bs/strings.xml
index 71eaa8c..239e70f 100644
--- a/libs/WifiTrackerLib/res/values-bs/strings.xml
+++ b/libs/WifiTrackerLib/res/values-bs/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Nije moguće pristupiti privatnom DNS serveru"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Povezano s uređajem. Nije moguće pružiti internetsku vezu."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Nizak kvalitet"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Ne dozvoljava vaša organizacija"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Organizacija ne dozvoljava"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-ca/strings.xml b/libs/WifiTrackerLib/res/values-ca/strings.xml
index c2bfc30..331f56f 100644
--- a/libs/WifiTrackerLib/res/values-ca/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ca/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"No es pot accedir al servidor DNS privat"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Connectat al dispositiu. Sense accés a Internet."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Qualitat baixa"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"No permesa per la teva organització"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"La teva organització no l\'admet"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-en-rCA/strings.xml b/libs/WifiTrackerLib/res/values-en-rCA/strings.xml
index 9db00ef..77f2233 100644
--- a/libs/WifiTrackerLib/res/values-en-rCA/strings.xml
+++ b/libs/WifiTrackerLib/res/values-en-rCA/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Private DNS server cannot be accessed"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Connected to device. Can\'t provide Internet."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Low quality"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Not allowed by your organization"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Not allowed by your organisation"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-es/strings.xml b/libs/WifiTrackerLib/res/values-es/strings.xml
index cce6c64..ee34793 100644
--- a/libs/WifiTrackerLib/res/values-es/strings.xml
+++ b/libs/WifiTrackerLib/res/values-es/strings.xml
@@ -32,7 +32,7 @@
     <string name="wifitrackerlib_wifi_mbo_assoc_disallowed_cannot_connect" msgid="2692286425448897083">"No se ha podido conectar. Inténtalo de nuevo más tarde."</string>
     <string name="wifitrackerlib_wifi_network_not_found" msgid="1308764769892463388">"No se ha podido conectar. Inténtalo de nuevo en otro momento."</string>
     <string name="wifitrackerlib_wifi_disconnected" msgid="3320414360982942679">"Desconectado"</string>
-    <string name="wifitrackerlib_wifi_remembered" msgid="2406091442008343041">"Guardado"</string>
+    <string name="wifitrackerlib_wifi_remembered" msgid="2406091442008343041">"Red guardada"</string>
     <string name="wifitrackerlib_wifi_metered_label" msgid="8818508951778620385">"De uso medido"</string>
     <string name="wifitrackerlib_wifi_unmetered_label" msgid="1902150402929678469">"No medida"</string>
     <string name="wifitrackerlib_connected_via_app" msgid="7823921840931347560">"Conectado mediante <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"No se ha podido acceder al servidor DNS privado"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Conectado al dispositivo. Sin acceso a Internet."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Calidad baja"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"No permitido por tu organización"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"No permitidas por tu organización"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-fr-rCA/strings.xml b/libs/WifiTrackerLib/res/values-fr-rCA/strings.xml
index b77fd28..9f1d211 100644
--- a/libs/WifiTrackerLib/res/values-fr-rCA/strings.xml
+++ b/libs/WifiTrackerLib/res/values-fr-rCA/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Impossible d\'accéder au serveur DNS privé"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Connecté à l\'appareil. Aucune connexion Internet."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Faible qualité"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Non autorisé par votre organisation"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Non autorisés par votre organisation"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-PAE"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-PAE"</string>
diff --git a/libs/WifiTrackerLib/res/values-gl/strings.xml b/libs/WifiTrackerLib/res/values-gl/strings.xml
index 874abe7..8c2c683 100644
--- a/libs/WifiTrackerLib/res/values-gl/strings.xml
+++ b/libs/WifiTrackerLib/res/values-gl/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Non se puido acceder ao servidor DNS privado"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Estableceuse conexión co dispositivo. Internet non está dispoñible."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Pouca calidade"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Non permitida pola túa organización"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Non permitidas pola túa organización"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-hr/strings.xml b/libs/WifiTrackerLib/res/values-hr/strings.xml
index 92541b1..4f5aabd 100644
--- a/libs/WifiTrackerLib/res/values-hr/strings.xml
+++ b/libs/WifiTrackerLib/res/values-hr/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Nije moguće pristupiti privatnom DNS poslužitelju"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Uspostavljena je veza s uređajem. Povezivanje s internetom nije moguće."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Niska kvaliteta"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Vaša organizacija ne dopušta upotrebu"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Nije dopušteno u vašoj organizaciji"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-hy/strings.xml b/libs/WifiTrackerLib/res/values-hy/strings.xml
index fed6afb..412f0b9 100644
--- a/libs/WifiTrackerLib/res/values-hy/strings.xml
+++ b/libs/WifiTrackerLib/res/values-hy/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Մասնավոր DNS սերվերն անհասանելի է"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Միացված է սարքին։ Հնարավոր չէ տրամադրել ինտերնետ կապ։"</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Ցածր որակ"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Թույլատրված չէ ձեր կազմակերպության կողմից"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Արգելված է ձեր կազմակերպությունում"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-kk/strings.xml b/libs/WifiTrackerLib/res/values-kk/strings.xml
index bea0d37..5bc3c58 100644
--- a/libs/WifiTrackerLib/res/values-kk/strings.xml
+++ b/libs/WifiTrackerLib/res/values-kk/strings.xml
@@ -71,11 +71,18 @@
     <string name="wifitrackerlib_osu_sign_up_complete" msgid="3279606633343124580">"Тіркелу аяқталды. Байланыс орнатылуда…"</string>
     <string name="wifitrackerlib_imsi_protection_warning" msgid="7202210931586169466">"Бұл желіге SIM идентификаторы беріледі, оның көмегімен құрылғының орналасқан жері қадағаланады. "<annotation id="url">"Толығырақ"</annotation></string>
     <string name="wifitrackerlib_wifi_wont_autoconnect_for_now" msgid="4923161724964349851">"Қазір Wi-Fi автоматты түрде қосылмайды."</string>
-    <string name="wifitrackerlib_wifi_standard_unknown" msgid="8339211498889012019">"Белгісіз"</string>
-    <string name="wifitrackerlib_wifi_standard_legacy" msgid="7760511318791054384">"Бұрынғы"</string>
-    <string name="wifitrackerlib_wifi_standard_11n" msgid="2642177213395884818">"Wi‑Fi 4"</string>
-    <string name="wifitrackerlib_wifi_standard_11ac" msgid="4347870672254411383">"Wi‑Fi 5"</string>
-    <string name="wifitrackerlib_wifi_standard_11ax" msgid="4071875115186480116">"Wi‑Fi 6"</string>
-    <string name="wifitrackerlib_wifi_standard_11ad" msgid="4955749187120493383">"WiGig"</string>
-    <string name="wifitrackerlib_wifi_standard_11be" msgid="1886834788680487835">"Wi‑Fi 7"</string>
+    <!-- no translation found for wifitrackerlib_wifi_standard_unknown (8339211498889012019) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_legacy (7760511318791054384) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_11n (2642177213395884818) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_11ac (4347870672254411383) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_11ax (4071875115186480116) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_11ad (4955749187120493383) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_11be (1886834788680487835) -->
+    <skip />
 </resources>
diff --git a/libs/WifiTrackerLib/res/values-mk/strings.xml b/libs/WifiTrackerLib/res/values-mk/strings.xml
index e9419e7..10a501c 100644
--- a/libs/WifiTrackerLib/res/values-mk/strings.xml
+++ b/libs/WifiTrackerLib/res/values-mk/strings.xml
@@ -32,7 +32,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>
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Не може да се пристапи до приватниот DNS-сервер"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Поврзано со уредот. Не може да се обезбеди интернет."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Лош квалитет"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Не е дозволено од вашата организација"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Не се дозволени од вашата организација"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-nb/strings.xml b/libs/WifiTrackerLib/res/values-nb/strings.xml
index 46f8445..583e958 100644
--- a/libs/WifiTrackerLib/res/values-nb/strings.xml
+++ b/libs/WifiTrackerLib/res/values-nb/strings.xml
@@ -28,9 +28,9 @@
     <string name="wifitrackerlib_wifi_ap_unable_to_handle_new_sta" msgid="931922372010639716">"Tilgangspunktet er midlertidig fullt"</string>
     <string name="wifitrackerlib_wifi_poor_channel_conditions" msgid="26484680900376236">"Dårlige nettverksforhold midlertidig"</string>
     <string name="wifitrackerlib_wifi_mbo_oce_assoc_disallowed_insufficient_rssi" msgid="5078611817423181773">"Svakt signal. Prøv å flytte deg nærmere ruteren."</string>
-    <string name="wifitrackerlib_wifi_mbo_assoc_disallowed_max_num_sta_associated" msgid="4418848919914618807">"Nettverket er over kapasitet. Prøv på nytt senere."</string>
-    <string name="wifitrackerlib_wifi_mbo_assoc_disallowed_cannot_connect" msgid="2692286425448897083">"Kan ikke koble til. Prøv på nytt senere."</string>
-    <string name="wifitrackerlib_wifi_network_not_found" msgid="1308764769892463388">"Kan ikke koble til. Prøv på nytt senere."</string>
+    <string name="wifitrackerlib_wifi_mbo_assoc_disallowed_max_num_sta_associated" msgid="4418848919914618807">"Nettverket er over kapasitet. Prøv igjen senere."</string>
+    <string name="wifitrackerlib_wifi_mbo_assoc_disallowed_cannot_connect" msgid="2692286425448897083">"Kan ikke koble til. Prøv igjen senere."</string>
+    <string name="wifitrackerlib_wifi_network_not_found" msgid="1308764769892463388">"Kan ikke koble til. Prøv igjen senere."</string>
     <string name="wifitrackerlib_wifi_disconnected" msgid="3320414360982942679">"Frakoblet"</string>
     <string name="wifitrackerlib_wifi_remembered" msgid="2406091442008343041">"Lagret"</string>
     <string name="wifitrackerlib_wifi_metered_label" msgid="8818508951778620385">"Med datamåling"</string>
@@ -75,7 +75,7 @@
     <string name="wifitrackerlib_wifi_standard_legacy" msgid="7760511318791054384">"En eldre versjon"</string>
     <string name="wifitrackerlib_wifi_standard_11n" msgid="2642177213395884818">"Wi-Fi 4"</string>
     <string name="wifitrackerlib_wifi_standard_11ac" msgid="4347870672254411383">"Wi-Fi 5"</string>
-    <string name="wifitrackerlib_wifi_standard_11ax" msgid="4071875115186480116">"Wifi 6"</string>
+    <string name="wifitrackerlib_wifi_standard_11ax" msgid="4071875115186480116">"Wi-Fi 6"</string>
     <string name="wifitrackerlib_wifi_standard_11ad" msgid="4955749187120493383">"WiGig"</string>
     <string name="wifitrackerlib_wifi_standard_11be" msgid="1886834788680487835">"Wi-Fi 7"</string>
 </resources>
diff --git a/libs/WifiTrackerLib/res/values-pa/strings.xml b/libs/WifiTrackerLib/res/values-pa/strings.xml
index e674734..2be58e1 100644
--- a/libs/WifiTrackerLib/res/values-pa/strings.xml
+++ b/libs/WifiTrackerLib/res/values-pa/strings.xml
@@ -63,7 +63,7 @@
     <string name="wifitrackerlib_wifi_security_passpoint" msgid="3980446437188585906">"Passpoint"</string>
     <string name="wifitrackerlib_wifi_passpoint_expired" msgid="7974960573887452566">"ਮਿਆਦ ਮੁੱਕ ਗਈ"</string>
     <string name="wifitrackerlib_tap_to_sign_up" msgid="3897017015910817402">"ਸਾਈਨ-ਅੱਪ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
-    <string name="wifitrackerlib_tap_to_renew_subscription_and_connect" msgid="6048420776676138069">"ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਦੇ ਨਵੀਨੀਕਰਨ ਅਤੇ ਕਨੈਕਟ ਹੋਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
+    <string name="wifitrackerlib_tap_to_renew_subscription_and_connect" msgid="6048420776676138069">"ਗਾਹਕੀ ਦੇ ਨਵੀਨੀਕਰਨ ਅਤੇ ਕਨੈਕਟ ਹੋਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
     <string name="wifitrackerlib_osu_opening_provider" msgid="7128677439450712558">"<xliff:g id="PASSPOINTPROVIDER">%1$s</xliff:g> ਖੋਲ੍ਹਿਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
     <string name="wifitrackerlib_osu_connect_failed" msgid="3872233609000700930">"ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
     <string name="wifitrackerlib_osu_completing_sign_up" msgid="4359503050543182480">"ਸਾਈਨ-ਅੱਪ ਮੁਕੰਮਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
diff --git a/libs/WifiTrackerLib/res/values-pt-rBR/strings.xml b/libs/WifiTrackerLib/res/values-pt-rBR/strings.xml
index bba616b..7f2b9fb 100644
--- a/libs/WifiTrackerLib/res/values-pt-rBR/strings.xml
+++ b/libs/WifiTrackerLib/res/values-pt-rBR/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Não é possível acessar o servidor DNS particular"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Conectada ao dispositivo. Sem acesso à Internet."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Conexão lenta"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Não permitido por sua organização"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Não permitido pela sua organização"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-pt/strings.xml b/libs/WifiTrackerLib/res/values-pt/strings.xml
index bba616b..7f2b9fb 100644
--- a/libs/WifiTrackerLib/res/values-pt/strings.xml
+++ b/libs/WifiTrackerLib/res/values-pt/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Não é possível acessar o servidor DNS particular"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Conectada ao dispositivo. Sem acesso à Internet."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Conexão lenta"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Não permitido por sua organização"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Não permitido pela sua organização"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-ro/strings.xml b/libs/WifiTrackerLib/res/values-ro/strings.xml
index acda2a5..e3caa47 100644
--- a/libs/WifiTrackerLib/res/values-ro/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ro/strings.xml
@@ -28,9 +28,9 @@
     <string name="wifitrackerlib_wifi_ap_unable_to_handle_new_sta" msgid="931922372010639716">"Punctul de acces este temporar plin"</string>
     <string name="wifitrackerlib_wifi_poor_channel_conditions" msgid="26484680900376236">"Momentan, conexiunea la rețea este slabă"</string>
     <string name="wifitrackerlib_wifi_mbo_oce_assoc_disallowed_insufficient_rssi" msgid="5078611817423181773">"Semnal slab. Apropiați-vă de router."</string>
-    <string name="wifitrackerlib_wifi_mbo_assoc_disallowed_max_num_sta_associated" msgid="4418848919914618807">"Capacitatea rețelei a fost depășită. Încearcă din nou mai târziu."</string>
-    <string name="wifitrackerlib_wifi_mbo_assoc_disallowed_cannot_connect" msgid="2692286425448897083">"Nu se poate conecta. Încearcă din nou mai târziu."</string>
-    <string name="wifitrackerlib_wifi_network_not_found" msgid="1308764769892463388">"Nu se poate conecta. Reîncearcă mai târziu."</string>
+    <string name="wifitrackerlib_wifi_mbo_assoc_disallowed_max_num_sta_associated" msgid="4418848919914618807">"Capacitatea rețelei a fost depășită. Încercați din nou mai târziu."</string>
+    <string name="wifitrackerlib_wifi_mbo_assoc_disallowed_cannot_connect" msgid="2692286425448897083">"Nu se poate conecta. Încercați din nou mai târziu."</string>
+    <string name="wifitrackerlib_wifi_network_not_found" msgid="1308764769892463388">"Nu se poate conecta. Reîncercați mai târziu."</string>
     <string name="wifitrackerlib_wifi_disconnected" msgid="3320414360982942679">"Deconectată"</string>
     <string name="wifitrackerlib_wifi_remembered" msgid="2406091442008343041">"Salvată"</string>
     <string name="wifitrackerlib_wifi_metered_label" msgid="8818508951778620385">"Contorizată"</string>
@@ -67,9 +67,9 @@
     <string name="wifitrackerlib_osu_opening_provider" msgid="7128677439450712558">"Se deschide <xliff:g id="PASSPOINTPROVIDER">%1$s</xliff:g>"</string>
     <string name="wifitrackerlib_osu_connect_failed" msgid="3872233609000700930">"Nu s-a putut conecta"</string>
     <string name="wifitrackerlib_osu_completing_sign_up" msgid="4359503050543182480">"Se finalizează înscrierea…"</string>
-    <string name="wifitrackerlib_osu_sign_up_failed" msgid="3964140125523395898">"Nu s-a putut finaliza înscrierea. Atinge pentru a încerca din nou."</string>
+    <string name="wifitrackerlib_osu_sign_up_failed" msgid="3964140125523395898">"Nu s-a putut finaliza înscrierea. Atingeți pentru a încerca din nou."</string>
     <string name="wifitrackerlib_osu_sign_up_complete" msgid="3279606633343124580">"Înscrierea a fost finalizată. Se conectează…"</string>
-    <string name="wifitrackerlib_imsi_protection_warning" msgid="7202210931586169466">"Această rețea primește un cod SIM care se poate folosi pentru a urmări locația dispozitivului. "<annotation id="url">"Află mai multe"</annotation></string>
+    <string name="wifitrackerlib_imsi_protection_warning" msgid="7202210931586169466">"Această rețea primește un cod SIM care se poate folosi pentru a urmări locația dispozitivului. "<annotation id="url">"Aflați mai multe"</annotation></string>
     <string name="wifitrackerlib_wifi_wont_autoconnect_for_now" msgid="4923161724964349851">"Deocamdată, Wi-Fi nu se poate conecta automat"</string>
     <string name="wifitrackerlib_wifi_standard_unknown" msgid="8339211498889012019">"Necunoscut"</string>
     <string name="wifitrackerlib_wifi_standard_legacy" msgid="7760511318791054384">"Vechi"</string>
diff --git a/libs/WifiTrackerLib/res/values-sk/strings.xml b/libs/WifiTrackerLib/res/values-sk/strings.xml
index e2282a3..a54af48 100644
--- a/libs/WifiTrackerLib/res/values-sk/strings.xml
+++ b/libs/WifiTrackerLib/res/values-sk/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"K súkromnému serveru DNS sa nepodarilo získať prístup"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Pripojené k zariadeniu. Internet nie je možné poskytnúť."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Nízka kvalita"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Nie je povolené vašou organizáciou"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Nepovolené vašou organizáciou"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2‑EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2‑Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3‑EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-sq/strings.xml b/libs/WifiTrackerLib/res/values-sq/strings.xml
index d8f32a4..2c282a7 100644
--- a/libs/WifiTrackerLib/res/values-sq/strings.xml
+++ b/libs/WifiTrackerLib/res/values-sq/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Nuk mund të qasesh në serverin privat DNS"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"U lidh me pajisjen. Interneti nuk mund të ofrohet."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Cilësi e ulët"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Nuk lejohet nga organizata jote"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Nuk lejohen nga organizata jote"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-sr/strings.xml b/libs/WifiTrackerLib/res/values-sr/strings.xml
index e6b8b66..2c729b9 100644
--- a/libs/WifiTrackerLib/res/values-sr/strings.xml
+++ b/libs/WifiTrackerLib/res/values-sr/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"Приступ приватном DNS серверу није успео"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Уређај је повезан. Пружање интернета није успело."</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Лош квалитет"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Не дозвољава ваша организација"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Не дозвољава организација"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-te/strings.xml b/libs/WifiTrackerLib/res/values-te/strings.xml
index 71df755..f349b36 100644
--- a/libs/WifiTrackerLib/res/values-te/strings.xml
+++ b/libs/WifiTrackerLib/res/values-te/strings.xml
@@ -22,7 +22,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_generic" msgid="4278806060337007814">"డిజేబుల్ చేయబడింది"</string>
     <string name="wifitrackerlib_wifi_ap_unable_to_handle_new_sta" msgid="931922372010639716">"యాక్సెస్ పాయింట్ తాత్కాలికంగా నిండి ఉంది"</string>
diff --git a/libs/WifiTrackerLib/res/values-uk/strings.xml b/libs/WifiTrackerLib/res/values-uk/strings.xml
index 0ded5f8..905b1c9 100644
--- a/libs/WifiTrackerLib/res/values-uk/strings.xml
+++ b/libs/WifiTrackerLib/res/values-uk/strings.xml
@@ -71,11 +71,18 @@
     <string name="wifitrackerlib_osu_sign_up_complete" msgid="3279606633343124580">"Реєстрацію завершено. Підключення…"</string>
     <string name="wifitrackerlib_imsi_protection_warning" msgid="7202210931586169466">"Ця мережа отримує ідентифікатор SIM-карти, за допомогою якого можна відстежити місцезнаходження пристрою. "<annotation id="url">"Докладніше"</annotation></string>
     <string name="wifitrackerlib_wifi_wont_autoconnect_for_now" msgid="4923161724964349851">"Пристрій не підключатиметься до Wi-Fi автоматично"</string>
-    <string name="wifitrackerlib_wifi_standard_unknown" msgid="8339211498889012019">"Невідомий"</string>
-    <string name="wifitrackerlib_wifi_standard_legacy" msgid="7760511318791054384">"Застарілий"</string>
-    <string name="wifitrackerlib_wifi_standard_11n" msgid="2642177213395884818">"Wi-Fi 4"</string>
-    <string name="wifitrackerlib_wifi_standard_11ac" msgid="4347870672254411383">"Wi-Fi 5"</string>
-    <string name="wifitrackerlib_wifi_standard_11ax" msgid="4071875115186480116">"Wi-Fi 6"</string>
-    <string name="wifitrackerlib_wifi_standard_11ad" msgid="4955749187120493383">"WiGig"</string>
-    <string name="wifitrackerlib_wifi_standard_11be" msgid="1886834788680487835">"Wi‑Fi 7"</string>
+    <!-- no translation found for wifitrackerlib_wifi_standard_unknown (8339211498889012019) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_legacy (7760511318791054384) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_11n (2642177213395884818) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_11ac (4347870672254411383) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_11ax (4071875115186480116) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_11ad (4955749187120493383) -->
+    <skip />
+    <!-- no translation found for wifitrackerlib_wifi_standard_11be (1886834788680487835) -->
+    <skip />
 </resources>
diff --git a/libs/WifiTrackerLib/res/values-zh-rCN/strings.xml b/libs/WifiTrackerLib/res/values-zh-rCN/strings.xml
index bc2fef8..b6d7937 100644
--- a/libs/WifiTrackerLib/res/values-zh-rCN/strings.xml
+++ b/libs/WifiTrackerLib/res/values-zh-rCN/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"无法访问专用 DNS 服务器"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"已连接到设备，但无法提供互联网连接。"</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"质量不佳"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"您的组织不允许使用"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"贵单位不允许使用"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values-zh-rHK/strings.xml b/libs/WifiTrackerLib/res/values-zh-rHK/strings.xml
index 1aad56c..b1c4c6e 100644
--- a/libs/WifiTrackerLib/res/values-zh-rHK/strings.xml
+++ b/libs/WifiTrackerLib/res/values-zh-rHK/strings.xml
@@ -41,7 +41,7 @@
     <string name="wifitrackerlib_private_dns_broken" msgid="6049401148262718707">"無法存取私人 DNS 伺服器"</string>
     <string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"已連接裝置，但無法提供互聯網連線。"</string>
     <string name="wifi_connected_low_quality" msgid="4478331645458058445">"品質欠佳"</string>
-    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"您的機構禁止使用"</string>
+    <string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"貴機構禁止使用"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
     <string name="wifitrackerlib_wifi_security_eap_wpa_wpa2" msgid="6425661975745405271">"WPA/WPA2-Enterprise"</string>
     <string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
diff --git a/libs/WifiTrackerLib/res/values/strings.xml b/libs/WifiTrackerLib/res/values/strings.xml
index 1d16e98..44fce05 100644
--- a/libs/WifiTrackerLib/res/values/strings.xml
+++ b/libs/WifiTrackerLib/res/values/strings.xml
@@ -46,6 +46,9 @@
     <!-- Status for networked disabled from a DNS or DHCP failure [CHAR LIMIT=NONE] -->
     <string name="wifitrackerlib_wifi_disabled_network_failure">IP configuration failure</string>
 
+    <!-- Status for networks disabled due to transition disable indication [CHAR LIMIT=NONE] -->
+    <string name="wifitrackerlib_wifi_disabled_transition_disable_indication">Unavailable with current security settings</string>
+
     <!-- Status for networks disabled for unknown reason [CHAR LIMIT=NONE] -->
     <string name="wifitrackerlib_wifi_disabled_generic">Disabled</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 708d337..8233fb0 100644
--- a/libs/WifiTrackerLib/sdk_src/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
+++ b/libs/WifiTrackerLib/sdk_src/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
@@ -16,6 +16,8 @@
 
 package com.android.wifitrackerlib;
 
+import android.app.admin.DevicePolicyManager;
+import android.app.admin.WifiSsidPolicy;
 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.Network;
@@ -24,6 +26,7 @@
 import android.os.Handler;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 /**
  * Wrapper class to decouple WifiTrackerLibDefaults from non-SDK API usage at build time, for use
@@ -89,4 +92,13 @@
         //                    behavior) until SUW can access this field.
         return true;
     }
+
+    /**
+     * Returns the {@link WifiSsidPolicy} of the device.
+     */
+    @Nullable
+    static WifiSsidPolicy getWifiSsidPolicy(@NonNull DevicePolicyManager devicePolicyManager) {
+        // Return null since SUW does not have QUERY_ADMIN_POLICY permission.
+        return null;
+    }
 }
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
index 64d1c5a..bcff728 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
@@ -325,10 +325,30 @@
     public void onStop() {
         mWorkerHandler.post(() -> {
             mScanner.stop();
+            try {
+                mContext.unregisterReceiver(mBroadcastReceiver);
+                mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
+                mConnectivityManager.unregisterNetworkCallback(mDefaultNetworkCallback);
+            } catch (IllegalArgumentException e) {
+                // Already unregistered in onDestroyed().
+            }
+        });
+    }
+
+    /**
+     * Unregisters the broadcast receiver network callbacks in case the Activity is destroyed before
+     * the worker thread runnable posted in onStop() runs.
+     */
+    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
+    @MainThread
+    public void onDestroyed() {
+        try {
             mContext.unregisterReceiver(mBroadcastReceiver);
             mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
             mConnectivityManager.unregisterNetworkCallback(mDefaultNetworkCallback);
-        });
+        } catch (IllegalArgumentException e) {
+            // Already unregistered in onStop() worker thread runnable.
+        }
     }
 
     /**
@@ -439,7 +459,6 @@
     /**
      * Scanner to handle starting scans every SCAN_INTERVAL_MILLIS
      */
-    @WorkerThread
     private class Scanner extends Handler {
         private static final int SCAN_RETRY_TIMES = 3;
 
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
index ac94b15..0d9cb43 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
@@ -16,6 +16,8 @@
 
 package com.android.wifitrackerlib;
 
+import android.app.admin.DevicePolicyManager;
+import android.app.admin.WifiSsidPolicy;
 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.Network;
@@ -33,6 +35,8 @@
 import android.view.View;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.os.BuildCompat;
 
 import com.android.settingslib.HelpUtils;
 
@@ -117,4 +121,15 @@
     static boolean isPrimary(@NonNull WifiInfo wifiInfo) {
         return wifiInfo.isPrimary();
     }
+
+    /**
+     * Returns the {@link WifiSsidPolicy} of the device.
+     */
+    @Nullable
+    static WifiSsidPolicy getWifiSsidPolicy(@NonNull DevicePolicyManager devicePolicyManager) {
+        if (BuildCompat.isAtLeastT()) {
+            return devicePolicyManager.getWifiSsidPolicy();
+        }
+        return null;
+    }
 }
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
index 249544b..bdb0510 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
@@ -259,6 +259,7 @@
     }
 
     @Override
+    @Nullable
     public synchronized String getMacAddress() {
         if (mWifiInfo != null) {
             final String wifiInfoMac = mWifiInfo.getMacAddress();
@@ -295,6 +296,7 @@
     }
 
     @Override
+    @Nullable
     public synchronized WifiConfiguration getWifiConfiguration() {
         if (!isSaved()) {
             return null;
@@ -1009,7 +1011,7 @@
                 }
             }
             //check SSID restriction
-            WifiSsidPolicy policy = mDevicePolicyManager.getWifiSsidPolicy();
+            WifiSsidPolicy policy = NonSdkApiWrapper.getWifiSsidPolicy(mDevicePolicyManager);
             if (policy != null) {
                 int policyType = policy.getPolicyType();
                 Set<WifiSsid> ssids = policy.getSsids();
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
index 7c59e90..f0ca708 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
@@ -60,6 +60,10 @@
  * Utility methods for WifiTrackerLib.
  */
 public class Utils {
+    // TODO(b/242144920): remove this after publishing this reason in U.
+    // This reason is added in U and hidden in T, using a hard-coded value first.
+    public static final int DISABLED_TRANSITION_DISABLE_INDICATION = 13;
+
     // Returns the ScanResult with the best RSSI from a list of ScanResults.
     @Nullable
     public static ScanResult getBestScanResultByLevel(@NonNull List<ScanResult> scanResults) {
@@ -382,6 +386,9 @@
                 case WifiConfiguration.NetworkSelectionStatus.DISABLED_NO_INTERNET_PERMANENT:
                 case WifiConfiguration.NetworkSelectionStatus.DISABLED_NO_INTERNET_TEMPORARY:
                     return context.getString(R.string.wifitrackerlib_wifi_no_internet_no_reconnect);
+                case DISABLED_TRANSITION_DISABLE_INDICATION:
+                    return context.getString(
+                            R.string.wifitrackerlib_wifi_disabled_transition_disable_indication);
                 default:
                     break;
             }
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
index 2d3cf54..5ebd29a 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
@@ -759,6 +759,8 @@
             // Remove if the suggestion does not have a config anymore.
             return !entry.isSuggestion();
         });
+        // Update suggestion scans to make sure we mark which suggestions are user-shareable.
+        updateSuggestedWifiEntryScans(mScanResultUpdater.getScanResults());
 
         if (mNetworkRequestEntry != null) {
             mNetworkRequestEntry.updateConfig(
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
index 1d6e1db..354a4ce 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
@@ -1202,15 +1202,19 @@
                 WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_ALLOWLIST,
                 new ArraySet<>(Arrays.asList(
                         WifiSsid.fromBytes("ssid".getBytes(StandardCharsets.UTF_8)))));
-        when(mDevicePolicyManager.getWifiSsidPolicy()).thenReturn(policy);
-        StandardWifiEntry spyEntry = spy(new StandardWifiEntry(
-                mMockInjector, mMockContext, mTestHandler,
-                ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_PSK),
-                Collections.singletonList(config), Collections.singletonList(scan),
-                mMockWifiManager, false /* forSavedNetworksPage */));
-        when(spyEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);
-
-        assertThat(spyEntry.canConnect()).isEqualTo(true);
+        MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+        try {
+            when(NonSdkApiWrapper.getWifiSsidPolicy(mDevicePolicyManager)).thenReturn(policy);
+            StandardWifiEntry spyEntry = spy(new StandardWifiEntry(
+                    mMockInjector, mMockContext, mTestHandler,
+                    ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_PSK),
+                    Collections.singletonList(config), Collections.singletonList(scan),
+                    mMockWifiManager, false /* forSavedNetworksPage */));
+            when(spyEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);
+            assertThat(spyEntry.canConnect()).isEqualTo(true);
+        } finally {
+            session.finishMocking();
+        }
     }
 
     @Test
@@ -1225,15 +1229,19 @@
                 WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_ALLOWLIST,
                 new ArraySet<>(Arrays.asList(
                         WifiSsid.fromBytes("ssid2".getBytes(StandardCharsets.UTF_8)))));
-        when(mDevicePolicyManager.getWifiSsidPolicy()).thenReturn(policy);
-        StandardWifiEntry spyEntry = spy(new StandardWifiEntry(
-                mMockInjector, mMockContext, mTestHandler,
-                ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_PSK),
-                Collections.singletonList(config), Collections.singletonList(scan),
-                mMockWifiManager, false /* forSavedNetworksPage */));
-        when(spyEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);
-
-        assertThat(spyEntry.canConnect()).isEqualTo(false);
+        MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+        try {
+            when(NonSdkApiWrapper.getWifiSsidPolicy(mDevicePolicyManager)).thenReturn(policy);
+            StandardWifiEntry spyEntry = spy(new StandardWifiEntry(
+                    mMockInjector, mMockContext, mTestHandler,
+                    ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_PSK),
+                    Collections.singletonList(config), Collections.singletonList(scan),
+                    mMockWifiManager, false /* forSavedNetworksPage */));
+            when(spyEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);
+            assertThat(spyEntry.canConnect()).isEqualTo(false);
+        } finally {
+            session.finishMocking();
+        }
     }
 
     @Test
@@ -1248,15 +1256,19 @@
                 WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_DENYLIST,
                 new ArraySet<>(Arrays.asList(
                         WifiSsid.fromBytes("ssid2".getBytes(StandardCharsets.UTF_8)))));
-        when(mDevicePolicyManager.getWifiSsidPolicy()).thenReturn(policy);
-        StandardWifiEntry spyEntry = spy(new StandardWifiEntry(
-                mMockInjector, mMockContext, mTestHandler,
-                ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_PSK),
-                Collections.singletonList(config), Collections.singletonList(scan),
-                mMockWifiManager, false /* forSavedNetworksPage */));
-        when(spyEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);
-
-        assertThat(spyEntry.canConnect()).isEqualTo(true);
+        MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+        try {
+            when(NonSdkApiWrapper.getWifiSsidPolicy(mDevicePolicyManager)).thenReturn(policy);
+            StandardWifiEntry spyEntry = spy(new StandardWifiEntry(
+                    mMockInjector, mMockContext, mTestHandler,
+                    ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_PSK),
+                    Collections.singletonList(config), Collections.singletonList(scan),
+                    mMockWifiManager, false /* forSavedNetworksPage */));
+            when(spyEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);
+            assertThat(spyEntry.canConnect()).isEqualTo(true);
+        } finally {
+            session.finishMocking();
+        }
     }
 
     @Test
@@ -1271,15 +1283,19 @@
                 WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_DENYLIST,
                 new ArraySet<>(Arrays.asList(
                         WifiSsid.fromBytes("ssid".getBytes(StandardCharsets.UTF_8)))));
-        when(mDevicePolicyManager.getWifiSsidPolicy()).thenReturn(policy);
-        StandardWifiEntry spyEntry = spy(new StandardWifiEntry(
-                mMockInjector, mMockContext, mTestHandler,
-                ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_PSK),
-                Collections.singletonList(config), Collections.singletonList(scan),
-                mMockWifiManager, false /* forSavedNetworksPage */));
-        when(spyEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);
-
-        assertThat(spyEntry.canConnect()).isEqualTo(false);
+        MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+        try {
+            when(NonSdkApiWrapper.getWifiSsidPolicy(mDevicePolicyManager)).thenReturn(policy);
+            StandardWifiEntry spyEntry = spy(new StandardWifiEntry(
+                    mMockInjector, mMockContext, mTestHandler,
+                    ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_PSK),
+                    Collections.singletonList(config), Collections.singletonList(scan),
+                    mMockWifiManager, false /* forSavedNetworksPage */));
+            when(spyEntry.getConnectedState()).thenReturn(CONNECTED_STATE_DISCONNECTED);
+            assertThat(spyEntry.canConnect()).isEqualTo(false);
+        } finally {
+            session.finishMocking();
+        }
     }
 
     @Test
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java
index 5d4d495..bc99e08 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java
@@ -432,6 +432,36 @@
     }
 
     @Test
+    public void testGetNetworkSelectionDescription_disabledTransitionDisableIndication() {
+        String expected = " (NETWORK_SELECTION_PERMANENTLY_DISABLED 1:02:03) "
+                + "NETWORK_SELECTION_DISABLED_TRANSITION_DISABLE_INDICATION=1";
+        WifiConfiguration wifiConfig = spy(new WifiConfiguration());
+        NetworkSelectionStatus.Builder statusBuilder = new NetworkSelectionStatus.Builder();
+        NetworkSelectionStatus networkSelectionStatus;
+        try {
+            networkSelectionStatus = spy(statusBuilder
+                    .setNetworkSelectionStatus(
+                            NetworkSelectionStatus.NETWORK_SELECTION_PERMANENTLY_DISABLED)
+                    .setNetworkSelectionDisableReason(
+                            Utils.DISABLED_TRANSITION_DISABLE_INDICATION)
+                    .build());
+        } catch (IllegalArgumentException e) {
+            // This reason will be added after T formally,
+            // and only in the latest T mainline module.
+            // This test will fail with older mainline module due to IllegalArgumentException.
+            return;
+        }
+        doReturn(1).when(networkSelectionStatus).getDisableReasonCounter(
+                Utils.DISABLED_TRANSITION_DISABLE_INDICATION);
+        long now = System.currentTimeMillis();
+        // Network selection disable time is 1:02:03 ago.
+        doReturn(now - (60 * 60 + 2 * 60 + 3) * 1000).when(networkSelectionStatus).getDisableTime();
+        when(wifiConfig.getNetworkSelectionStatus()).thenReturn(networkSelectionStatus);
+
+        assertThat(getNetworkSelectionDescription(wifiConfig)).isEqualTo(expected);
+    }
+
+    @Test
     public void testGetSecurityTypeFromWifiConfiguration_returnsCorrectSecurityTypes() {
         for (int securityType = WifiInfo.SECURITY_TYPE_OPEN;
                 securityType <= WifiInfo.SECURITY_TYPE_EAP_WPA3_ENTERPRISE; securityType++) {
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
index 27b27c8..543ee41 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
@@ -945,6 +945,84 @@
     }
 
     /**
+     * Tests that a suggestion entry is returned after a user shared suggestion config is added.
+     */
+    @Test
+    public void testGetWifiEntries_userSharedSuggestionConfigAdded_returnsSuggestion() {
+        // Start out with non-saved network.
+        when(mMockWifiManager.getScanResults()).thenReturn(Collections.singletonList(
+                buildScanResult("ssid", "bssid", START_MILLIS)));
+        final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+        wifiPickerTracker.onStart();
+        mTestLooper.dispatchAll();
+        verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(),
+                any(), any(), any());
+        assertThat(wifiPickerTracker.getWifiEntries().size()).isEqualTo(1);
+        WifiEntry wifiEntry = wifiPickerTracker.getWifiEntries().get(0);
+        assertThat(wifiEntry.getTitle()).isEqualTo("ssid");
+        assertThat(wifiEntry.isSuggestion()).isFalse();
+
+        // Update configs with suggestion config.
+        WifiConfiguration suggestionConfig = new WifiConfiguration();
+        suggestionConfig.SSID = "\"ssid\"";
+        suggestionConfig.networkId = 2;
+        suggestionConfig.creatorName = "creator1";
+        suggestionConfig.carrierId = 1;
+        suggestionConfig.subscriptionId = 1;
+        suggestionConfig.fromWifiNetworkSuggestion = true;
+        when(mMockWifiManager.getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(any()))
+                .thenReturn(Arrays.asList(suggestionConfig));
+        when(mMockWifiManager.getPrivilegedConfiguredNetworks()).thenReturn(
+                Arrays.asList(suggestionConfig));
+        mBroadcastReceiverCaptor.getValue().onReceive(mMockContext,
+                new Intent(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION));
+
+        // Non-saved network should turn into suggestion
+        assertThat(wifiPickerTracker.getWifiEntries().size()).isEqualTo(1);
+        wifiEntry = wifiPickerTracker.getWifiEntries().get(0);
+        assertThat(wifiEntry.getTitle()).isEqualTo("ssid");
+        assertThat(wifiEntry.isSuggestion()).isTrue();
+    }
+
+    /**
+     * Tests that a suggestion entry is not returned after a non-shared suggestion config is added.
+     */
+    @Test
+    public void testGetWifiEntries_nonSharedSuggestionConfigAdded_returnsNotSuggestion() {
+        // Start out with non-saved network.
+        when(mMockWifiManager.getScanResults()).thenReturn(Collections.singletonList(
+                buildScanResult("ssid", "bssid", START_MILLIS)));
+        final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+        wifiPickerTracker.onStart();
+        mTestLooper.dispatchAll();
+        verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(),
+                any(), any(), any());
+        assertThat(wifiPickerTracker.getWifiEntries().size()).isEqualTo(1);
+        WifiEntry wifiEntry = wifiPickerTracker.getWifiEntries().get(0);
+        assertThat(wifiEntry.getTitle()).isEqualTo("ssid");
+        assertThat(wifiEntry.isSuggestion()).isFalse();
+
+        // Update configs with non-shared suggestion config.
+        WifiConfiguration suggestionConfig = new WifiConfiguration();
+        suggestionConfig.SSID = "\"ssid\"";
+        suggestionConfig.networkId = 2;
+        suggestionConfig.creatorName = "creator1";
+        suggestionConfig.carrierId = 1;
+        suggestionConfig.subscriptionId = 1;
+        suggestionConfig.fromWifiNetworkSuggestion = true;
+        when(mMockWifiManager.getPrivilegedConfiguredNetworks()).thenReturn(
+                Arrays.asList(suggestionConfig));
+        mBroadcastReceiverCaptor.getValue().onReceive(mMockContext,
+                new Intent(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION));
+
+        // Non-saved network should not turn into suggestion
+        assertThat(wifiPickerTracker.getWifiEntries().size()).isEqualTo(1);
+        wifiEntry = wifiPickerTracker.getWifiEntries().get(0);
+        assertThat(wifiEntry.getTitle()).isEqualTo("ssid");
+        assertThat(wifiEntry.isSuggestion()).isFalse();
+    }
+
+    /**
      * Tests that a suggestion entry created before scan results are available will be updated to
      * user shareable after scans become available.
      */
@@ -1492,4 +1570,53 @@
         assertThat(connectedEntry.getWifiConfiguration()).isEqualTo(config2);
         assertThat(wifiPickerTracker.getConnectedWifiEntry().isDefaultNetwork()).isTrue();
     }
+
+    /**
+     * Verifies that the BroadcastReceiver and network callbacks are unregistered by the onStop()
+     * worker thread runnable.
+     */
+    @Test
+    public void testBroadcastReceiverAndNetworkCallbacks_onStopRunnable_unregistersCallbacks() {
+        final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+        wifiPickerTracker.onStart();
+        mTestLooper.dispatchAll();
+        verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(),
+                any(), any(), any());
+        verify(mMockConnectivityManager, atLeast(0)).registerSystemDefaultNetworkCallback(
+                mDefaultNetworkCallbackCaptor.capture(), any());
+        verify(mMockConnectivityManager, atLeast(0)).registerDefaultNetworkCallback(
+                mDefaultNetworkCallbackCaptor.capture(), any());
+
+        wifiPickerTracker.onStop();
+        mTestLooper.dispatchAll();
+        verify(mMockContext).unregisterReceiver(mBroadcastReceiverCaptor.getValue());
+        verify(mMockConnectivityManager).unregisterNetworkCallback(
+                mDefaultNetworkCallbackCaptor.getValue());
+        verify(mMockConnectivityManager).unregisterNetworkCallback(
+                mDefaultNetworkCallbackCaptor.getValue());
+    }
+
+    /**
+     * Verifies that the BroadcastReceiver and network callbacks are unregistered by onDestroyed().
+     */
+    @Test
+    public void testBroadcastReceiverAndNetworkCallbacks_onDestroyed_unregistersCallbacks() {
+        final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+        wifiPickerTracker.onStart();
+        mTestLooper.dispatchAll();
+        verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(),
+                any(), any(), any());
+        verify(mMockConnectivityManager, atLeast(0)).registerSystemDefaultNetworkCallback(
+                mDefaultNetworkCallbackCaptor.capture(), any());
+        verify(mMockConnectivityManager, atLeast(0)).registerDefaultNetworkCallback(
+                mDefaultNetworkCallbackCaptor.capture(), any());
+
+        wifiPickerTracker.onStop();
+        wifiPickerTracker.onDestroyed();
+        verify(mMockContext).unregisterReceiver(mBroadcastReceiverCaptor.getValue());
+        verify(mMockConnectivityManager).unregisterNetworkCallback(
+                mDefaultNetworkCallbackCaptor.getValue());
+        verify(mMockConnectivityManager).unregisterNetworkCallback(
+                mDefaultNetworkCallbackCaptor.getValue());
+    }
 }
diff --git a/libwifi_hal/Android.bp b/libwifi_hal/Android.bp
index fc02982..59efe4a 100644
--- a/libwifi_hal/Android.bp
+++ b/libwifi_hal/Android.bp
@@ -143,6 +143,9 @@
             bcmdhd: {
                 whole_static_libs: ["libwifi-hal-bcm"],
             },
+            synadhd: {
+                whole_static_libs: ["libwifi-hal-syna"],
+            },
             qcwcn: {
                 whole_static_libs: ["libwifi-hal-qcom"],
             },
@@ -178,6 +181,10 @@
                 shared_libs: ["libcrypto"],
                 defaults: ["google_wifi_config_lib_defaults"],
             },
+            synadhd: {
+                shared_libs: ["libcrypto"],
+                defaults: ["google_wifi_config_lib_defaults"],
+            },
             qcwcn: {
                 shared_libs: ["libcld80211", "libcrypto"],
             },
@@ -276,6 +283,38 @@
     ],
 }
 
+// libwifi-hal-syna
+
+wifi_cc_prebuilt_library_static {
+    name: "libwifi-hal-syna",
+    proprietary: true,
+    srcs: [":make-libwifi-hal-syna"],
+    compile_multilib: "first",
+    installable: false,
+    licenses: ["libwifi_hal_apache20_license"],
+    enabled: false,
+    soong_config_variables: {
+        board_wlan_device: {
+            synadhd: {
+                enabled: true,
+            },
+        },
+    },
+}
+
+wifi_makefile_goal {
+    name: "make-libwifi-hal-syna",
+    product_out_path: "obj/STATIC_LIBRARIES/libwifi-hal-syna_intermediates/libwifi-hal-syna.a",
+    enabled: false,
+    soong_config_variables: {
+        board_wlan_device: {
+            synadhd: {
+                enabled: true,
+            },
+        },
+    },
+}
+
 // libwifi-hal-qcom
 
 wifi_cc_prebuilt_library_static {
