summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2024-03-06 09:29:59 -0800
committerXin Li <delphij@google.com>2024-03-06 09:29:59 -0800
commit754449d455732e34498bfd095675ccc464b54aaa (patch)
tree6939062b3349fdc4741ab5e6f809b4bad4ce4408
parent2f5d40b1318f1758ad1397fdaf4bd65a54e60ff6 (diff)
parent3a54a395bc6bd1fddd8baa800ccfeeaabf2f17f6 (diff)
downloadwifi-754449d455732e34498bfd095675ccc464b54aaa.tar.gz
Merge Android 14 QPR2 to AOSP main
Bug: 319669529 Merged-In: Ia2735c48615484a0dccdc6a83d0948c6d975bf23 Change-Id: I9bd1651e25027fc4fcbae3c739bc16ec357a86f4
-rw-r--r--OWNERS1
-rw-r--r--libs/WifiTrackerLib/Android.bp3
-rw-r--r--libs/WifiTrackerLib/res/values-af/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-am/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-ar/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-as/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-az/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-b+sr+Latn/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-be/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-bg/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-bn/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-bs/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-ca/arrays.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-ca/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-cs/strings.xml17
-rw-r--r--libs/WifiTrackerLib/res/values-da/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-de/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-el/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-en-rAU/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-en-rCA/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-en-rGB/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-en-rIN/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-en-rXC/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-es-rUS/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-es/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-et/strings.xml17
-rw-r--r--libs/WifiTrackerLib/res/values-eu/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-fa/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-fi/strings.xml17
-rw-r--r--libs/WifiTrackerLib/res/values-fr-rCA/strings.xml17
-rw-r--r--libs/WifiTrackerLib/res/values-fr/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-gl/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-gu/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-hi/arrays.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-hi/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-hr/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-hu/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-hy/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-in/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-is/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-it/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-iw/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-ja/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-ka/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-kk/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-km/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-kn/strings.xml19
-rw-r--r--libs/WifiTrackerLib/res/values-ko/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-ky/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-lo/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-lt/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-lv/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-mk/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-ml/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-mn/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-mr/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-ms/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-my/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-nb/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-ne/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-nl/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-or/arrays.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-or/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-pa/strings.xml17
-rw-r--r--libs/WifiTrackerLib/res/values-pl/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-pt-rBR/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-pt-rPT/arrays.xml2
-rw-r--r--libs/WifiTrackerLib/res/values-pt-rPT/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-pt/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-ro/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-ru/strings.xml17
-rw-r--r--libs/WifiTrackerLib/res/values-si/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-sk/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-sl/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-sq/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-sr/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-sv/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-sw/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-ta/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-te/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-th/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-tl/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-tr/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-uk/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-ur/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-uz/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-vi/strings.xml15
-rw-r--r--libs/WifiTrackerLib/res/values-zh-rCN/strings.xml17
-rw-r--r--libs/WifiTrackerLib/res/values-zh-rHK/strings.xml17
-rw-r--r--libs/WifiTrackerLib/res/values-zh-rTW/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values-zu/strings.xml13
-rw-r--r--libs/WifiTrackerLib/res/values/config.xml2
-rw-r--r--libs/WifiTrackerLib/res/values/strings.xml29
-rw-r--r--libs/WifiTrackerLib/sdk_src/src/com/android/wifitrackerlib/NonSdkApiWrapper.java8
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java62
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkDetailsTracker.java10
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java108
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java12
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java9
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointNetworkDetailsTracker.java4
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java25
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java12
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardNetworkDetailsTracker.java4
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java27
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java130
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java69
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java122
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiTrackerInjector.java31
-rw-r--r--libs/WifiTrackerLib/tests/Android.bp1
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java640
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/SavedNetworkTrackerTest.java34
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java8
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java74
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java208
-rw-r--r--libwifi_hal/Android.bp4
115 files changed, 2472 insertions, 348 deletions
diff --git a/OWNERS b/OWNERS
index 583ac1f39..a0ab9e63e 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1 +1,2 @@
+# Bug component: 33618
include platform/packages/modules/Wifi:/WIFI_OWNERS
diff --git a/libs/WifiTrackerLib/Android.bp b/libs/WifiTrackerLib/Android.bp
index baf355e9b..03d86e075 100644
--- a/libs/WifiTrackerLib/Android.bp
+++ b/libs/WifiTrackerLib/Android.bp
@@ -21,6 +21,9 @@ java_defaults {
android_library {
name: "WifiTrackerLib",
defaults: ["WifiTrackerLibDefaults"],
+ static_libs: [
+ "wifi_aconfig_flags_lib",
+ ],
srcs: ["src/**/*.java"],
}
diff --git a/libs/WifiTrackerLib/res/values-af/strings.xml b/libs/WifiTrackerLib/res/values-af/strings.xml
index 2d42d17da..d5e1c94d4 100644
--- a/libs/WifiTrackerLib/res/values-af/strings.xml
+++ b/libs/WifiTrackerLib/res/values-af/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Lae gehalte"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Word nie deur jou organisasie toegelaat nie"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> van <xliff:g id="MODEL_NAME">%2$s</xliff:g> af"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} van jou foon af}TABLET{{NETWORK_NAME} van jou tablet af}COMPUTER{{NETWORK_NAME} van jou rekenaar af}WATCH{{NETWORK_NAME} van jou horlosie af}VEHICLE{{NETWORK_NAME} van jou voertuig af}other{{NETWORK_NAME} van jou toestel af}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> van <xliff:g id="DEVICE_NAME">%2$s</xliff:g> af"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Koppel tans …"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Beskikbaar vanaf <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> op <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-am/strings.xml b/libs/WifiTrackerLib/res/values-am/strings.xml
index 62b685778..16fdea96f 100644
--- a/libs/WifiTrackerLib/res/values-am/strings.xml
+++ b/libs/WifiTrackerLib/res/values-am/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"አነስተኛ ጥራት"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"በእርስዎ ድርጅት አልተፈቀደም"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ከ<xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} ከስልክዎ}TABLET{{NETWORK_NAME} ከጡባዊዎ}COMPUTER{{NETWORK_NAME} ከኮምፒውተርዎ}WATCH{{NETWORK_NAME}ከሰዓትዎ}VEHICLE{{NETWORK_NAME} ከተሽከርካሪዎ}other{{NETWORK_NAME} ከመሣሪያዎ}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ከ<xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"በማገናኘት ላይ…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"ከ<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ጀምሮ የሚገኝ"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 ጊኸ"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 ጊኸ"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 ጊኸ"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">"፣"</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">"፣ "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> ሜቢ/ሴ"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> በ<xliff:g id="BAND">%2$s</xliff:g> ላይ"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ar/strings.xml b/libs/WifiTrackerLib/res/values-ar/strings.xml
index 2b4a3fd03..fcca6133b 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>
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"جودة منخفضة"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"لا تسمح بها مؤسستك"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"\"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\" من \"<xliff:g id="MODEL_NAME">%2$s</xliff:g>\""</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{شبكة \"{NETWORK_NAME}\" من هاتفك}TABLET{شبكة \"{NETWORK_NAME}\" من جهازك اللوحي}COMPUTER{شبكة \"{NETWORK_NAME}\" من جهاز الكمبيوتر}WATCH{شبكة \"{NETWORK_NAME}\" من ساعتك}VEHICLE{شبكة \"{NETWORK_NAME}\" من مركبتك}other{شبكة \"{NETWORK_NAME}\" من جهازك}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"\"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\" من \"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>\""</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"جارٍ الاتصال…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"تتوفّر من \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"٢٫٤ غيغاهرتز"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"٥ غيغاهرتز"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"٤ غيغاهرتز"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">"،"</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">"، "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"‫<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> ميغابت في الثانية"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"‫<xliff:g id="LINK_SPEED">%1$s</xliff:g> على <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-as/strings.xml b/libs/WifiTrackerLib/res/values-as/strings.xml
index 6ec57207b..792fe501b 100644
--- a/libs/WifiTrackerLib/res/values-as/strings.xml
+++ b/libs/WifiTrackerLib/res/values-as/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"নিম্ন মানৰ"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"আপোনাৰ প্ৰতিষ্ঠানে অনুমতি নিদিয়ে"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g>ৰ পৰা <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{আপোনাৰ ফ’নৰ পৰা {NETWORK_NAME}}TABLET{আপোনাৰ টেবলেটৰ পৰা {NETWORK_NAME}}COMPUTER{আপোনাৰ কম্পিউটাৰৰ পৰা {NETWORK_NAME}}WATCH{আপোনাৰ ঘড়ীৰ পৰা {NETWORK_NAME}}VEHICLE{আপোনাৰ বাহনৰ পৰা {NETWORK_NAME}}other{আপোনাৰ ডিভাইচৰ পৰা {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>ৰ পৰা <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"সংযোগ কৰি থকা হৈছে…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ পৰা উপলব্ধ"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"২.৪ গিগাহাৰ্টজ"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"৫ গিগাহাৰ্টজ"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"৬ গিগাহাৰ্টজ"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> এমবিপিএছ"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g>ত <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-az/strings.xml b/libs/WifiTrackerLib/res/values-az/strings.xml
index c1d7049a4..47f97cbe6 100644
--- a/libs/WifiTrackerLib/res/values-az/strings.xml
+++ b/libs/WifiTrackerLib/res/values-az/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Aşağı keyfiyyət"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Təşkilatınız icazə vermir"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> tərəfindən <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{Telefonunuzdan: {NETWORK_NAME}}TABLET{Planşetinizdən: {NETWORK_NAME}}COMPUTER{Komputerinizdən: {NETWORK_NAME}}WATCH{Saatınızdan: {NETWORK_NAME}}VEHICLE{Avtomobilinizdən: {NETWORK_NAME}}other{Cihazınızdan: {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> tərəfindən <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Qoşulur…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazından əlçatandır"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/san"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> ilə <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-b+sr+Latn/strings.xml b/libs/WifiTrackerLib/res/values-b+sr+Latn/strings.xml
index df09f8361..ce23d6c08 100644
--- a/libs/WifiTrackerLib/res/values-b+sr+Latn/strings.xml
+++ b/libs/WifiTrackerLib/res/values-b+sr+Latn/strings.xml
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> – <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} sa telefona}TABLET{{NETWORK_NAME} sa tableta}COMPUTER{{NETWORK_NAME} sa računara}WATCH{{NETWORK_NAME} sa sata}VEHICLE{{NETWORK_NAME} sa vozila}other{{NETWORK_NAME} sa uređaja}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> – <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Povezuje se…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Dostupno sa uređaja <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> MB/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-be/strings.xml b/libs/WifiTrackerLib/res/values-be/strings.xml
index 7e3137c8d..6da86bd68 100644
--- a/libs/WifiTrackerLib/res/values-be/strings.xml
+++ b/libs/WifiTrackerLib/res/values-be/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Нізкая якасць"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Забаронена ў вашай арганізацыі"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ад <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} (з вашага тэлефона)}TABLET{{NETWORK_NAME} (з вашага планшэта)}COMPUTER{{NETWORK_NAME} (з вашага камп\'ютара)}WATCH{{NETWORK_NAME} (з вашага гадзінніка)}VEHICLE{{NETWORK_NAME} (з вашага аўтамабіля)}other{{NETWORK_NAME} (з вашай прылады)}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ад прылады <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Падключэнне…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Даступна тут: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 ГГц"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 ГГц"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 ГГц"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Мбіт/с"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> – <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-bg/strings.xml b/libs/WifiTrackerLib/res/values-bg/strings.xml
index 239e7daa4..e85489d91 100644
--- a/libs/WifiTrackerLib/res/values-bg/strings.xml
+++ b/libs/WifiTrackerLib/res/values-bg/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Ниско качество"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Не се разрешава от организацията ви"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> от <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} от телефона ви}TABLET{{NETWORK_NAME} от таблета ви}COMPUTER{{NETWORK_NAME} от компютъра ви}WATCH{{NETWORK_NAME} от часовника ви}VEHICLE{{NETWORK_NAME} от превозното ви средство}other{{NETWORK_NAME} от устройството ви}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> от <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Свързва се…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Налице от <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> на <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-bn/strings.xml b/libs/WifiTrackerLib/res/values-bn/strings.xml
index 39cc301c1..862a27d06 100644
--- a/libs/WifiTrackerLib/res/values-bn/strings.xml
+++ b/libs/WifiTrackerLib/res/values-bn/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"খারাপ কোয়ালিটি"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"আপনার প্রতিষ্ঠানের অননুমোদিত নেটওয়ার্ক"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> থেকে <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} আপনার ফোন থেকে}TABLET{{NETWORK_NAME} আপনার ট্যাবলেট থেকে}COMPUTER{{NETWORK_NAME} আপনার কম্পিউটার থেকে}WATCH{{NETWORK_NAME} আপনার ঘড়ি থেকে}VEHICLE{{NETWORK_NAME} আপনার গাড়ি থেকে}other{{NETWORK_NAME} আপনার ডিভাইস থেকে}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> থেকে <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"কানেক্ট করা হচ্ছে…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> থেকে উপলভ্য"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"২.৪ GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"৫ GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"৬ GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> এমবিপিএস"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g>-এ <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-bs/strings.xml b/libs/WifiTrackerLib/res/values-bs/strings.xml
index c26b7c7fd..5b8035501 100644
--- a/libs/WifiTrackerLib/res/values-bs/strings.xml
+++ b/libs/WifiTrackerLib/res/values-bs/strings.xml
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> s uređaja <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} s telefona}TABLET{{NETWORK_NAME} s tableta}COMPUTER{{NETWORK_NAME} s računara}WATCH{{NETWORK_NAME} sa sata}VEHICLE{{NETWORK_NAME} iz vozila}other{{NETWORK_NAME} s uređaja}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> s uređaja <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Povezivanje…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Dostupno je s uređaja <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> pri <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
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..1b6204bfd 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>
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} des del telèfon}TABLET{{NETWORK_NAME} des de la tauleta}COMPUTER{{NETWORK_NAME} des de l\'ordinador}WATCH{{NETWORK_NAME} des del rellotge}VEHICLE{{NETWORK_NAME} des del vehicle}other{{NETWORK_NAME} des del dispositiu}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"S\'està connectant…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Disponible des de: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> a <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-cs/strings.xml b/libs/WifiTrackerLib/res/values-cs/strings.xml
index 0472dc5f7..f533d6d6f 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>
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Nízká kvalita"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Není povoleno vaší organizací"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ze zařízení <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} z vašeho telefonu}TABLET{{NETWORK_NAME} z vašeho tabletu}COMPUTER{{NETWORK_NAME} z vašeho počítače}WATCH{{NETWORK_NAME} z vašich hodinek}VEHICLE{{NETWORK_NAME} z vašeho auta}other{{NETWORK_NAME} z vašeho zařízení}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ze zařízení <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Připojování…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"K dispozici ze zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> na <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-da/strings.xml b/libs/WifiTrackerLib/res/values-da/strings.xml
index daf732acc..2c079413e 100644
--- a/libs/WifiTrackerLib/res/values-da/strings.xml
+++ b/libs/WifiTrackerLib/res/values-da/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Dårlig kvalitet"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Tillades ikke af din organisation"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> fra <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} fra din telefon}TABLET{{NETWORK_NAME} fra din tablet}COMPUTER{{NETWORK_NAME} fra din computer}WATCH{{NETWORK_NAME} fra dit ur}VEHICLE{{NETWORK_NAME} fra dit køretøj}other{{NETWORK_NAME} fra din enhed}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> fra <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Opretter forbindelse…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Tilgængelig fra <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbit/sek."</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> på <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-de/strings.xml b/libs/WifiTrackerLib/res/values-de/strings.xml
index f5ad11098..85f9f3482 100644
--- a/libs/WifiTrackerLib/res/values-de/strings.xml
+++ b/libs/WifiTrackerLib/res/values-de/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Niedrige Qualität"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Von deiner Organisation nicht zugelassen"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> von <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} von deinem Smartphone}TABLET{{NETWORK_NAME} von deinem Tablet}COMPUTER{{NETWORK_NAME} von deinem Computer}WATCH{{NETWORK_NAME} von deiner Smartwatch}VEHICLE{{NETWORK_NAME} von deinem Fahrzeug}other{{NETWORK_NAME} von deinem Gerät}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> von <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Wird verbunden…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Verfügbar auf <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbit/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> bei <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-el/strings.xml b/libs/WifiTrackerLib/res/values-el/strings.xml
index 61eaa40b2..ade59b8ed 100644
--- a/libs/WifiTrackerLib/res/values-el/strings.xml
+++ b/libs/WifiTrackerLib/res/values-el/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Χαμηλή ποιότητα"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Δεν επιτρέπεται από τον οργανισμό σας"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> από <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} από το τηλέφωνό σας}TABLET{{NETWORK_NAME} από το tablet σας}COMPUTER{{NETWORK_NAME} από τον υπολογιστή σας}WATCH{{NETWORK_NAME} από το ρολόι σας}VEHICLE{{NETWORK_NAME} από το όχημά σας}other{{NETWORK_NAME} από τη συσκευή σας}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> από <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Σύνδεση…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Διαθέσιμο από <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> στο <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-en-rAU/strings.xml b/libs/WifiTrackerLib/res/values-en-rAU/strings.xml
index 9761f9084..cfbfddc9d 100644
--- a/libs/WifiTrackerLib/res/values-en-rAU/strings.xml
+++ b/libs/WifiTrackerLib/res/values-en-rAU/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Low quality"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Not allowed by your organisation"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> from <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} from your phone}TABLET{{NETWORK_NAME} from your tablet}COMPUTER{{NETWORK_NAME} from your computer}WATCH{{NETWORK_NAME} from your watch}VEHICLE{{NETWORK_NAME} from your vehicle}other{{NETWORK_NAME} from your device}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> from <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Connecting…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Available from <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> on <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-en-rCA/strings.xml b/libs/WifiTrackerLib/res/values-en-rCA/strings.xml
index fefc6f0c7..0811be7d4 100644
--- a/libs/WifiTrackerLib/res/values-en-rCA/strings.xml
+++ b/libs/WifiTrackerLib/res/values-en-rCA/strings.xml
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> from <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} from your phone}TABLET{{NETWORK_NAME} from your tablet}COMPUTER{{NETWORK_NAME} from your computer}WATCH{{NETWORK_NAME} from your watch}VEHICLE{{NETWORK_NAME} from your vehicle}other{{NETWORK_NAME} from your device}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> from <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Connecting…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Available from <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> on <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-en-rGB/strings.xml b/libs/WifiTrackerLib/res/values-en-rGB/strings.xml
index 9761f9084..cfbfddc9d 100644
--- a/libs/WifiTrackerLib/res/values-en-rGB/strings.xml
+++ b/libs/WifiTrackerLib/res/values-en-rGB/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Low quality"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Not allowed by your organisation"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> from <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} from your phone}TABLET{{NETWORK_NAME} from your tablet}COMPUTER{{NETWORK_NAME} from your computer}WATCH{{NETWORK_NAME} from your watch}VEHICLE{{NETWORK_NAME} from your vehicle}other{{NETWORK_NAME} from your device}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> from <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Connecting…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Available from <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> on <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-en-rIN/strings.xml b/libs/WifiTrackerLib/res/values-en-rIN/strings.xml
index 9761f9084..cfbfddc9d 100644
--- a/libs/WifiTrackerLib/res/values-en-rIN/strings.xml
+++ b/libs/WifiTrackerLib/res/values-en-rIN/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Low quality"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Not allowed by your organisation"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> from <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} from your phone}TABLET{{NETWORK_NAME} from your tablet}COMPUTER{{NETWORK_NAME} from your computer}WATCH{{NETWORK_NAME} from your watch}VEHICLE{{NETWORK_NAME} from your vehicle}other{{NETWORK_NAME} from your device}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> from <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Connecting…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Available from <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> on <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-en-rXC/strings.xml b/libs/WifiTrackerLib/res/values-en-rXC/strings.xml
index b8b58e9e9..79c776aee 100644
--- a/libs/WifiTrackerLib/res/values-en-rXC/strings.xml
+++ b/libs/WifiTrackerLib/res/values-en-rXC/strings.xml
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="NETWORK_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ from ‎‏‎‎‏‏‎<xliff:g id="MODEL_NAME">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎{NETWORK_NAME}‎‏‎‎‏‏‏‎ from your phone‎‏‎‎‏‎}TABLET{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎{NETWORK_NAME}‎‏‎‎‏‏‏‎ from your tablet‎‏‎‎‏‎}COMPUTER{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎{NETWORK_NAME}‎‏‎‎‏‏‏‎ from your computer‎‏‎‎‏‎}WATCH{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎{NETWORK_NAME}‎‏‎‎‏‏‏‎ from your watch‎‏‎‎‏‎}VEHICLE{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎{NETWORK_NAME}‎‏‎‎‏‏‏‎ from your vehicle‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎{NETWORK_NAME}‎‏‎‎‏‏‏‎ from your device‎‏‎‎‏‎}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‏‏‏‎‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="NETWORK_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ from ‎‏‎‎‏‏‎<xliff:g id="DEVICE_NAME">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‎‏‏‎‎‎‏‎‎‏‏‏‏‎‎‎Connecting…‎‏‎‎‏‎"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‎‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‏‏‏‎‎‎‎‏‏‎‏‎‎‎Available from ‎‏‎‎‏‏‎<xliff:g id="DEVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‏‎‏‏‎‎‏‎‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‎2.4 GHz‎‏‎‎‏‎"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎‎5 GHz‎‏‎‎‏‎"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‏‏‏‎‎‎‏‏‎‏‎‎‎‎‎‏‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎‎‏‏‎‎‏‎6 GHz‎‏‎‎‏‎"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎‎‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‏‎‎‎‏‏‏‏‎,‎‏‎‎‏‎"</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‏‎‎‎‎‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‏‏‎‏‎‎‎‎‎‎‎‎, ‎‏‎‎‏‎ "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‎‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎‎‏‏‎<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g>‎‏‎‎‏‏‏‎ Mbps‎‏‎‎‏‎"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‎<xliff:g id="LINK_SPEED">%1$s</xliff:g>‎‏‎‎‏‏‏‎ on ‎‏‎‎‏‏‎<xliff:g id="BAND">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-es-rUS/strings.xml b/libs/WifiTrackerLib/res/values-es-rUS/strings.xml
index 126c0c814..986a6a42d 100644
--- a/libs/WifiTrackerLib/res/values-es-rUS/strings.xml
+++ b/libs/WifiTrackerLib/res/values-es-rUS/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Baja calidad"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Tu organización no lo permite"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} en tu teléfono}TABLET{{NETWORK_NAME} en tu tablet}COMPUTER{{NETWORK_NAME} en tu computadora}WATCH{{NETWORK_NAME} en tu reloj}VEHICLE{{NETWORK_NAME} en tu vehículo}other{{NETWORK_NAME} en tu dispositivo}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Estableciendo conexión…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Disponible desde <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> en <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-es/strings.xml b/libs/WifiTrackerLib/res/values-es/strings.xml
index 94a47f1f2..be7ef5285 100644
--- a/libs/WifiTrackerLib/res/values-es/strings.xml
+++ b/libs/WifiTrackerLib/res/values-es/strings.xml
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} desde tu teléfono}TABLET{{NETWORK_NAME} desde tu tablet}COMPUTER{{NETWORK_NAME} desde tu ordenador}WATCH{{NETWORK_NAME} desde tu smartwatch}VEHICLE{{NETWORK_NAME} desde tu vehículo}other{{NETWORK_NAME} desde tu dispositivo}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Conectando…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Disponible en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> de <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-et/strings.xml b/libs/WifiTrackerLib/res/values-et/strings.xml
index 3ecfca6fe..63850888e 100644
--- a/libs/WifiTrackerLib/res/values-et/strings.xml
+++ b/libs/WifiTrackerLib/res/values-et/strings.xml
@@ -44,10 +44,19 @@
<string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Seadmega ühendatud. Internetiühendust ei saa luua."</string>
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Kehva kvaliteediga"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Teie organisatsioon pole seda lubanud"</string>
- <string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> mudelist <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> seadmest <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} teie telefonist}TABLET{{NETWORK_NAME} teie tahvelarvutist}COMPUTER{{NETWORK_NAME} teie arvutist}WATCH{{NETWORK_NAME} teie kellast}VEHICLE{{NETWORK_NAME} teie sõidukist}other{{NETWORK_NAME} teie seadmest}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> seadmest <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Ühendamine …"</string>
- <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Saadaval alates <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Saadaval seadmest <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</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>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbit/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> <xliff:g id="BAND">%2$s</xliff:g>s"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-eu/strings.xml b/libs/WifiTrackerLib/res/values-eu/strings.xml
index 58cc61c3f..20fa53632 100644
--- a/libs/WifiTrackerLib/res/values-eu/strings.xml
+++ b/libs/WifiTrackerLib/res/values-eu/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Kalitate txikia"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Erakundeak ez du baimenik eman"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> (<xliff:g id="MODEL_NAME">%2$s</xliff:g>)"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} telefonoaren bidez}TABLET{{NETWORK_NAME} tabletaren bidez}COMPUTER{{NETWORK_NAME} ordenagailuaren bidez}WATCH{{NETWORK_NAME} erlojuaren bidez}VEHICLE{{NETWORK_NAME} ibilgailuaren bidez}other{{NETWORK_NAME} gailuaren bidez}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> (<xliff:g id="DEVICE_NAME">%2$s</xliff:g>)"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Konektatzen…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuaren bidez erabilgarri"</string>
@@ -75,7 +84,7 @@
<string name="wifitrackerlib_osu_completing_sign_up" msgid="4359503050543182480">"Izena ematen…"</string>
<string name="wifitrackerlib_osu_sign_up_failed" msgid="3964140125523395898">"Ezin izan da erregistratu. Berriro saiatzeko, ukitu hau."</string>
<string name="wifitrackerlib_osu_sign_up_complete" msgid="3279606633343124580">"Erregistratu da. Konektatzen…"</string>
- <string name="wifitrackerlib_imsi_protection_warning" msgid="7202210931586169466">"Gailuaren kokapenaren jarraipena egiteko balio duen SIM ID bat jasotzen du sare honek. "<annotation id="url">"Lortu informazio gehiago"</annotation></string>
+ <string name="wifitrackerlib_imsi_protection_warning" msgid="7202210931586169466">"Gailuaren kokapenaren jarraipena egiteko balio duen SIM identifikatzaile bat jasotzen du sare honek. "<annotation id="url">"Lortu informazio gehiago"</annotation></string>
<string name="wifitrackerlib_wifi_wont_autoconnect_for_now" msgid="4923161724964349851">"Oraingoz ez da automatikoki konektatuko wifira"</string>
<string name="wifitrackerlib_wifi_standard_unknown" msgid="8339211498889012019">"Ezezaguna"</string>
<string name="wifitrackerlib_wifi_standard_legacy" msgid="7760511318791054384">"Zaharkitua"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> (<xliff:g id="BAND">%2$s</xliff:g>)"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-fa/strings.xml b/libs/WifiTrackerLib/res/values-fa/strings.xml
index 67483d8ed..b3dbf1b20 100644
--- a/libs/WifiTrackerLib/res/values-fa/strings.xml
+++ b/libs/WifiTrackerLib/res/values-fa/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"کیفیت پایین"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"سازمان شما آن را مجاز نکرده است"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> از <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} از تلفن شما}TABLET{{NETWORK_NAME} از رایانه لوحی شما}COMPUTER{{NETWORK_NAME} از رایانه شما}WATCH{{NETWORK_NAME}از ساعت شما}VEHICLE{{NETWORK_NAME} از خودرو شما}other{{NETWORK_NAME} از دستگاه شما}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> از <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"درحال اتصال…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"ازطریق <xliff:g id="DEVICE_NAME">%1$s</xliff:g> دردسترس است"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"۲٫۴ گیگاهرتز"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"۵ گیگاهرتز"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"۶ گیگاهرتز"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">"،"</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">"، "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> مگابیت در ثانیه"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> در <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-fi/strings.xml b/libs/WifiTrackerLib/res/values-fi/strings.xml
index b2ae60010..bf55c21be 100644
--- a/libs/WifiTrackerLib/res/values-fi/strings.xml
+++ b/libs/WifiTrackerLib/res/values-fi/strings.xml
@@ -44,8 +44,17 @@
<string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Yhdistetty laitteeseen. Ei voi muodostaa internetyhteyttä."</string>
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Heikko laatu"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Ei sallita organisaatiossasi"</string>
- <string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> lähettäjältä <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
- <string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> lähettäjältä <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> laitteesta <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} puhelimelta}TABLET{{NETWORK_NAME} tabletilta}COMPUTER{{NETWORK_NAME} tietokoneelta}WATCH{{NETWORK_NAME} kellosta}VEHICLE{{NETWORK_NAME} ajoneuvosta}other{{NETWORK_NAME} omalta laitteeltasi}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
+ <string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> laitteesta <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Yhdistetään…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Saatavilla: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g>, <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-fr-rCA/strings.xml b/libs/WifiTrackerLib/res/values-fr-rCA/strings.xml
index 9248e42fe..6741bc187 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>
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} à partir de votre téléphone}TABLET{{NETWORK_NAME} à partir de votre tablette}COMPUTER{{NETWORK_NAME} à partir de votre ordinateur}WATCH{{NETWORK_NAME} à partir de votre montre}VEHICLE{{NETWORK_NAME} à partir de votre véhicule}other{{NETWORK_NAME} à partir de votre appareil}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Connexion en cours…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Accessible à partir de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -57,7 +66,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>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbit/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> sur <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-fr/strings.xml b/libs/WifiTrackerLib/res/values-fr/strings.xml
index 65b5f81c0..1e235802d 100644
--- a/libs/WifiTrackerLib/res/values-fr/strings.xml
+++ b/libs/WifiTrackerLib/res/values-fr/strings.xml
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> (<xliff:g id="MODEL_NAME">%2$s</xliff:g>)"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} sur votre téléphone}TABLET{{NETWORK_NAME} sur votre tablette}COMPUTER{{NETWORK_NAME} sur votre ordinateur}WATCH{{NETWORK_NAME} sur votre montre}VEHICLE{{NETWORK_NAME} dans votre véhicule}other{{NETWORK_NAME} sur votre appareil}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> (<xliff:g id="DEVICE_NAME">%2$s</xliff:g>)"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Connexion…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Disponible sur <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbit/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> sur <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-gl/strings.xml b/libs/WifiTrackerLib/res/values-gl/strings.xml
index 42b3b3bb0..8cd22780d 100644
--- a/libs/WifiTrackerLib/res/values-gl/strings.xml
+++ b/libs/WifiTrackerLib/res/values-gl/strings.xml
@@ -45,9 +45,18 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} desde o teléfono}TABLET{{NETWORK_NAME} desde a tableta}COMPUTER{{NETWORK_NAME} desde o ordenador}WATCH{{NETWORK_NAME} desde o reloxo}VEHICLE{{NETWORK_NAME} desde o vehículo}other{{NETWORK_NAME} desde o dispositivo}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Conectando…"</string>
- <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Dispoñible en: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Dispoñible desde <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</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>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> en <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-gu/strings.xml b/libs/WifiTrackerLib/res/values-gu/strings.xml
index f9a9199d7..3a7b5f263 100644
--- a/libs/WifiTrackerLib/res/values-gu/strings.xml
+++ b/libs/WifiTrackerLib/res/values-gu/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"ઓછી ક્વૉલિટી"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"તમારી સંસ્થા દ્વારા મંજૂર નથી"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> તરફથી <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} તમારા ફોન પરથી}TABLET{{NETWORK_NAME} તમારા ટૅબ્લેટ પરથી}COMPUTER{{NETWORK_NAME} તમારા કમ્પ્યૂટર પરથી}WATCH{{NETWORK_NAME} તમારી વૉચ પરથી}VEHICLE{{NETWORK_NAME} તમારા વાહન પરથી}other{{NETWORK_NAME} તમારા ડિવાઇસ પરથી}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> તરફથી <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"કનેક્ટ કરી રહ્યાં છીએ…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> પરથી ઉપલબ્ધ"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> પર <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-hi/arrays.xml b/libs/WifiTrackerLib/res/values-hi/arrays.xml
index 85d4bfb6f..68a865771 100644
--- a/libs/WifiTrackerLib/res/values-hi/arrays.xml
+++ b/libs/WifiTrackerLib/res/values-hi/arrays.xml
@@ -26,7 +26,7 @@
<item msgid="9055468790485684083">"कनेक्ट हो रहा है…"</item>
<item msgid="6099499723199990208">"पुष्टि की जा रही है…"</item>
<item msgid="6794055951297347103">"आईपी पते की जानकारी ली जा रही है…"</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-hi/strings.xml b/libs/WifiTrackerLib/res/values-hi/strings.xml
index ed504a0a4..4c212939c 100644
--- a/libs/WifiTrackerLib/res/values-hi/strings.xml
+++ b/libs/WifiTrackerLib/res/values-hi/strings.xml
@@ -44,7 +44,16 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> की ओर से <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> से <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{आपके फ़ोन से {NETWORK_NAME} लिया गया है}TABLET{आपके टैबलेट से {NETWORK_NAME} लिया गया है}COMPUTER{आपके कंप्यूटर से {NETWORK_NAME} लिया गया है}WATCH{आपकी स्मार्टवॉच से {NETWORK_NAME} लिया गया है}VEHICLE{आपकी गाड़ी से {NETWORK_NAME} लिया गया है}other{आपके डिवाइस से {NETWORK_NAME} लिया गया है}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> की ओर से <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"कनेक्ट हो रहा है…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> से उपलब्ध"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 गीगाहर्ट्ज़"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 गीगाहर्ट्ज़"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 गीगाहर्ट्ज़"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> एमबीपीएस"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> पर <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-hr/strings.xml b/libs/WifiTrackerLib/res/values-hr/strings.xml
index 8b4193f33..3ec688572 100644
--- a/libs/WifiTrackerLib/res/values-hr/strings.xml
+++ b/libs/WifiTrackerLib/res/values-hr/strings.xml
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>, <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} s vašeg telefona}TABLET{{NETWORK_NAME} s vašeg tableta}COMPUTER{{NETWORK_NAME} s vašeg računala}WATCH{{NETWORK_NAME} s vašeg sata}VEHICLE{{NETWORK_NAME} iz vašeg vozila}other{{NETWORK_NAME} s vašeg uređaja}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>, <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Povezivanje…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Dostupno s uređaja <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g>, <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-hu/strings.xml b/libs/WifiTrackerLib/res/values-hu/strings.xml
index bb7e00492..60a228125 100644
--- a/libs/WifiTrackerLib/res/values-hu/strings.xml
+++ b/libs/WifiTrackerLib/res/values-hu/strings.xml
@@ -44,7 +44,16 @@
<string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Csatlakoztatva az eszközhöz. Nincs internethozzáférés."</string>
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Gyenge minőségű"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Szervezete nem engedélyezte"</string>
- <string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> a következőtől: <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> – <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} a telefonjáról}TABLET{{NETWORK_NAME} a táblagépéről}COMPUTER{{NETWORK_NAME} a számítógépéről}WATCH{{NETWORK_NAME} az órájáról}VEHICLE{{NETWORK_NAME} a járművéről}other{{NETWORK_NAME} az eszközéről}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> a következőtől: <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Csatlakozás…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Innen áll rendelkezésre: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g>, <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-hy/strings.xml b/libs/WifiTrackerLib/res/values-hy/strings.xml
index 1a881b219..6f2e90d2a 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>
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Ցածր որակ"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Թույլատրված չէ ձեր կազմակերպության կողմից"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>՝ <xliff:g id="MODEL_NAME">%2$s</xliff:g>-ից"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} ձեր հեռախոսից}TABLET{{NETWORK_NAME} ձեր պլանշետից}COMPUTER{{NETWORK_NAME} ձեր համակարգչից}WATCH{{NETWORK_NAME} ձեր ժամացույցից}VEHICLE{{NETWORK_NAME} ձեր մեքենայից}other{{NETWORK_NAME} ձեր սարքից}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>՝ «<xliff:g id="DEVICE_NAME">%2$s</xliff:g>»-ից"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Միացում…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Հասանելի է <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքից"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 ԳՀց"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 ԳՀց"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 ԳՀց"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Մբիթ/վ"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g>՝ <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-in/strings.xml b/libs/WifiTrackerLib/res/values-in/strings.xml
index 2fe6abe3e..8f7a2f392 100644
--- a/libs/WifiTrackerLib/res/values-in/strings.xml
+++ b/libs/WifiTrackerLib/res/values-in/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Kualitas rendah"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Tidak diizinkan oleh organisasi Anda"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> dari <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} dari ponsel Anda}TABLET{{NETWORK_NAME} dari tablet Anda}COMPUTER{{NETWORK_NAME} dari komputer Anda}WATCH{{NETWORK_NAME} dari smartwatch Anda}VEHICLE{{NETWORK_NAME} dari kendaraan Anda}other{{NETWORK_NAME} dari perangkat Anda}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> dari <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Menghubungkan…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Tersedia dari <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> di <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-is/strings.xml b/libs/WifiTrackerLib/res/values-is/strings.xml
index ecfc40c94..cc256ddfb 100644
--- a/libs/WifiTrackerLib/res/values-is/strings.xml
+++ b/libs/WifiTrackerLib/res/values-is/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Lítil gæði"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Fyrirtækið leyfir þetta ekki"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> frá <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} úr símanum þínum}TABLET{{NETWORK_NAME} úr spjaldtölvunni þinni}COMPUTER{{NETWORK_NAME} úr tölvunni þinni}WATCH{{NETWORK_NAME} úr úrinu þínu}VEHICLE{{NETWORK_NAME} úr ökutækinu þínu}other{{NETWORK_NAME} úr tækinu þínu}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> frá <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Tengist…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Í boði frá <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/sek."</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> á <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-it/strings.xml b/libs/WifiTrackerLib/res/values-it/strings.xml
index b21cf4c31..d2e406add 100644
--- a/libs/WifiTrackerLib/res/values-it/strings.xml
+++ b/libs/WifiTrackerLib/res/values-it/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Bassa qualità"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Uso non consentito dall\'organizzazione"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> da <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} dal tuo smartphone}TABLET{{NETWORK_NAME} dal tuo tablet}COMPUTER{{NETWORK_NAME} dal tuo computer}WATCH{{NETWORK_NAME} dal tuo smartwatch}VEHICLE{{NETWORK_NAME} dal tuo veicolo}other{{NETWORK_NAME} dal tuo dispositivo}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> da <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Connessione in corso…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Disponibile da <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> su <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-iw/strings.xml b/libs/WifiTrackerLib/res/values-iw/strings.xml
index c2366b405..9d8cf8224 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>
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"איכות נמוכה"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"הארגון שלך לא מתיר את האפשרות הזו"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> מ-<xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} מהטלפון שלך}TABLET{{NETWORK_NAME} מהטאבלט שלך}COMPUTER{{NETWORK_NAME} מהמחשב שלך}WATCH{{NETWORK_NAME} מהשעון שלך}VEHICLE{{NETWORK_NAME} מהרכב שלך}other{{NETWORK_NAME} מהמכשיר שלך}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> מהמכשיר <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"מתבצעת התחברות…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"מקור הרשת: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"‎2.4GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"‎5GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6GHz‎"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"‏‎Mbps‏ <xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g>"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> ב-<xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ja/strings.xml b/libs/WifiTrackerLib/res/values-ja/strings.xml
index 77b83c617..478a57d35 100644
--- a/libs/WifiTrackerLib/res/values-ja/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ja/strings.xml
@@ -45,9 +45,18 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"低品質"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"組織によって許可されていません"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> から <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME}(スマートフォン)}TABLET{{NETWORK_NAME}(タブレット)}COMPUTER{{NETWORK_NAME}(パソコン)}WATCH{{NETWORK_NAME}(スマートウォッチ)}VEHICLE{{NETWORK_NAME}(車)}other{{NETWORK_NAME}(デバイス)}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>から <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"接続しています…"</string>
- <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>から利用可能"</string>
+ <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> から利用可能"</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>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">"、"</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">"、 "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g>(<xliff:g id="BAND">%2$s</xliff:g>)"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ka/strings.xml b/libs/WifiTrackerLib/res/values-ka/strings.xml
index e3f49b63c..8fb91f09c 100644
--- a/libs/WifiTrackerLib/res/values-ka/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ka/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"დაბალი ხარისხი"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"არ არის დაშვებული თქვენი ორგანიზაციის მიერ"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>, წყარო: <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} თქვენი ტელეფონიდან}TABLET{{NETWORK_NAME} თქვენი ტაბლეტიდან}COMPUTER{{NETWORK_NAME} თქვენი კომპიუტერიდან}WATCH{{NETWORK_NAME} თქვენი საათიდან}VEHICLE{{NETWORK_NAME} თქვენი მანქანიდან}other{{NETWORK_NAME} თქვენი მოწყობილობიდან}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>, წყარო: <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"უკავშირდება…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"ხელმისაწვდომია <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-დან"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 გჰც"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 გჰც"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 გჰც"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> მბიტი/წმ"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g>, <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-kk/strings.xml b/libs/WifiTrackerLib/res/values-kk/strings.xml
index f29a0c5f5..363eef943 100644
--- a/libs/WifiTrackerLib/res/values-kk/strings.xml
+++ b/libs/WifiTrackerLib/res/values-kk/strings.xml
@@ -45,9 +45,18 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Төмен сапа"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Ұйымыңыз рұқсат етпеген"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> ұсынған <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{Телефондағы {NETWORK_NAME}}TABLET{Планшеттегі {NETWORK_NAME}}COMPUTER{Компьютердегі {NETWORK_NAME}}WATCH{Сағаттағы {NETWORK_NAME}}VEHICLE{Көліктегі {NETWORK_NAME}}other{Құрылғыдағы {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> ұсынған <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Қосылып жатыр…"</string>
- <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> қолданбасында қолжетімді."</string>
+ <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> құрылғысынан қолжетімді."</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>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 ГГц"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 ГГц"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 ГГц"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Мбит/с"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g>: <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-km/strings.xml b/libs/WifiTrackerLib/res/values-km/strings.xml
index 0860dc5c3..9bba84dd7 100644
--- a/libs/WifiTrackerLib/res/values-km/strings.xml
+++ b/libs/WifiTrackerLib/res/values-km/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"គុណភាព​ទាប"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"មិនបាន​អនុញ្ញាត​ដោយ​ស្ថាប័ន​របស់​អ្នកទេ"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ពី <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} ពីទូរសព្ទរបស់អ្នក}TABLET{{NETWORK_NAME} ពីថេប្លេតរបស់អ្នក}COMPUTER{{NETWORK_NAME} ពីកុំព្យូទ័ររបស់អ្នក}WATCH{{NETWORK_NAME} ពីនាឡិការបស់អ្នក}VEHICLE{{NETWORK_NAME} ពីយានជំនិះរបស់អ្នក}other{{NETWORK_NAME} ពីឧបករណ៍របស់អ្នក}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ពី <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"កំពុងភ្ជាប់…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"អាចប្រើបានពី <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> នៅលើ <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-kn/strings.xml b/libs/WifiTrackerLib/res/values-kn/strings.xml
index acdc3716f..717e7539c 100644
--- a/libs/WifiTrackerLib/res/values-kn/strings.xml
+++ b/libs/WifiTrackerLib/res/values-kn/strings.xml
@@ -23,18 +23,18 @@
<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>
- <string name="wifitrackerlib_wifi_ap_unable_to_handle_new_sta" msgid="931922372010639716">"ಪ್ರವೇಶ ಕೇಂದ್ರ ತಾತ್ಕಾಲಿಕವಾಗಿ ಭರ್ತಿಯಾಗಿದೆ"</string>
+ <string name="wifitrackerlib_wifi_ap_unable_to_handle_new_sta" msgid="931922372010639716">"ಆ್ಯಕ್ಸೆಸ್ ಪಾಯಿಂಟ್ ತಾತ್ಕಾಲಿಕವಾಗಿ ಭರ್ತಿಯಾಗಿದೆ"</string>
<string name="wifitrackerlib_wifi_poor_channel_conditions" msgid="26484680900376236">"ತಾತ್ಕಾಲಿಕ ಕಳಪೆ ನೆಟ್‌ವರ್ಕ್ ಸ್ಥಿತಿಗಳು"</string>
<string name="wifitrackerlib_wifi_mbo_oce_assoc_disallowed_insufficient_rssi" msgid="5078611817423181773">"ದುರ್ಬಲ ಸಿಗ್ನಲ್. ರೂಟರ್‌ನ ಹತ್ತಿರ ಹೋಗಿ ಕನೆಕ್ಟ್ ಮಾಡಿ ನೋಡಿ."</string>
<string name="wifitrackerlib_wifi_mbo_assoc_disallowed_max_num_sta_associated" msgid="4418848919914618807">"ನೆಟ್‌ವರ್ಕ್ ಸಾಮರ್ಥ್ಯದ ಮಿತಿ ಮೀರಿದೆ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string>
<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>
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"ಕಳಪೆ ಕನೆಕ್ಷನ್"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"ನಿಮ್ಮ ಸಂಸ್ಥೆಯಿಂದ ಅನುಮತಿಸಲಾಗಿಲ್ಲ"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> ನಿಂದ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{ನಿಮ್ಮ ಫೋನ್‌ನಿಂದ {NETWORK_NAME}}TABLET{ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್‌ನಿಂದ {NETWORK_NAME}}COMPUTER{ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಿಂದ {NETWORK_NAME}}WATCH{ನಿಮ್ಮ ವಾಚ್‌ನಿಂದ {NETWORK_NAME}}VEHICLE{ನಿಮ್ಮ ವಾಹನದಿಂದ {NETWORK_NAME}}other{ನಿಮ್ಮ ಸಾಧನದಿಂದ {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> ನಿಂದ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"ಕನೆಕ್ಟ್ ಆಗುತ್ತಿದೆ…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ನಿಂದ ಲಭ್ಯವಿದೆ"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> ನಲ್ಲಿ <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ko/strings.xml b/libs/WifiTrackerLib/res/values-ko/strings.xml
index e812dfdd1..1c23f5b3e 100644
--- a/libs/WifiTrackerLib/res/values-ko/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ko/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"품질 낮음"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"조직에서 허용하지 않음"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g>의 <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{휴대전화의 {NETWORK_NAME}}TABLET{태블릿의 {NETWORK_NAME}}COMPUTER{컴퓨터의 {NETWORK_NAME}}WATCH{시계의 {NETWORK_NAME}}VEHICLE{차량의 {NETWORK_NAME}}other{기기의 {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>의 <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"연결 중…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에서 사용 가능"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g>Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g>, <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ky/strings.xml b/libs/WifiTrackerLib/res/values-ky/strings.xml
index 2975c8122..495d5d340 100644
--- a/libs/WifiTrackerLib/res/values-ky/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ky/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Начар сапат"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Уюмуңуз тыюу салган"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g>–<xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{Телефонуңуздагы {NETWORK_NAME} тармагы}TABLET{Планшетиңиздеги {NETWORK_NAME} тармагы}COMPUTER{Компьютериңиздеги {NETWORK_NAME} тармагы}WATCH{Саатыңыздагы {NETWORK_NAME} тармагы}VEHICLE{Унааңыздагы {NETWORK_NAME} тармагы}other{Түзмөгүңүздөгү {NETWORK_NAME} тармагы}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>–<xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Туташууда…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> түзмөгүндө жеткиликтүү"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 ГГц"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 ГГц"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 ГГц"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Мб/ск"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g>, <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-lo/strings.xml b/libs/WifiTrackerLib/res/values-lo/strings.xml
index 0297e216e..b8da2913c 100644
--- a/libs/WifiTrackerLib/res/values-lo/strings.xml
+++ b/libs/WifiTrackerLib/res/values-lo/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"ຄຸນນະພາບຕໍ່າ"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"ອົງການຂອງທ່ານບໍ່ອະນຸຍາດ"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ຈາກ <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} ຈາກໂທລະສັບຂອງທ່ານ}TABLET{{NETWORK_NAME} ຈາກແທັບເລັດຂອງທ່ານ}COMPUTER{{NETWORK_NAME} ຈາກຄອມພິວເຕີຂອງທ່ານ}WATCH{{NETWORK_NAME} ຈາກໂມງຂອງທ່ານ}VEHICLE{{NETWORK_NAME} ຈາກລົດຂອງທ່ານ}other{{NETWORK_NAME} ຈາກອຸປະກອນຂອງທ່ານ}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ຈາກ <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"ກຳລັງເຊື່ອມຕໍ່…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"ມີໃຫ້ຈາກ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> ໃນ <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-lt/strings.xml b/libs/WifiTrackerLib/res/values-lt/strings.xml
index f64026009..5c6bd7f38 100644
--- a/libs/WifiTrackerLib/res/values-lt/strings.xml
+++ b/libs/WifiTrackerLib/res/values-lt/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Prastas ryšys"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Jūsų organizacijoje neleidžiama"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"„<xliff:g id="NETWORK_NAME">%1$s</xliff:g>“ iš „<xliff:g id="MODEL_NAME">%2$s</xliff:g>“"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{„{NETWORK_NAME}“ iš telefono}TABLET{„{NETWORK_NAME}“ iš planšetinio kompiuterio}COMPUTER{„{NETWORK_NAME}“ iš kompiuterio}WATCH{„{NETWORK_NAME}“ iš laikrodžio}VEHICLE{„{NETWORK_NAME}“ iš transporto priemonės}other{„{NETWORK_NAME}“ iš įrenginio}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"„<xliff:g id="NETWORK_NAME">%1$s</xliff:g>“ iš <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Prisijungiama…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Pasiekiama iš „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-lv/strings.xml b/libs/WifiTrackerLib/res/values-lv/strings.xml
index d1d25fef6..b8014a679 100644
--- a/libs/WifiTrackerLib/res/values-lv/strings.xml
+++ b/libs/WifiTrackerLib/res/values-lv/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Zema kvalitāte"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Jūsu organizācija to neatļauj"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> no <xliff:g id="MODEL_NAME">%2$s</xliff:g> ierīces"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} no jūsu tālruņa}TABLET{{NETWORK_NAME} no jūsu planšetdatora}COMPUTER{{NETWORK_NAME} no jūsu datora}WATCH{{NETWORK_NAME} no jūsu pulksteņa}VEHICLE{{NETWORK_NAME} no jūsu transportlīdzekļa}other{{NETWORK_NAME} no jūsu ierīces}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> no ierīces “<xliff:g id="DEVICE_NAME">%2$s</xliff:g>”"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Notiek savienojuma izveide…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Pieejams šādā ierīcē: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> joslā <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-mk/strings.xml b/libs/WifiTrackerLib/res/values-mk/strings.xml
index 04f51884d..385428222 100644
--- a/libs/WifiTrackerLib/res/values-mk/strings.xml
+++ b/libs/WifiTrackerLib/res/values-mk/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Лош квалитет"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Не е дозволено од вашата организација"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> од <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} од вашиот телефон}TABLET{{NETWORK_NAME} од вашиот таблет}COMPUTER{{NETWORK_NAME} од вашиот компјутер}WATCH{{NETWORK_NAME} од вашиот часовник}VEHICLE{{NETWORK_NAME} од вашето возило}other{{NETWORK_NAME} од вашиот уред}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> од <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Се поврзува…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Достапно од <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> на <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ml/strings.xml b/libs/WifiTrackerLib/res/values-ml/strings.xml
index 55c02089a..a505f8db6 100644
--- a/libs/WifiTrackerLib/res/values-ml/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ml/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"കുറഞ്ഞ നിലവാരം"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"നിങ്ങളുടെ ഓർഗനൈസേഷൻ അനുവദിക്കുന്നില്ല"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> എന്നതിൽ നിന്നുള്ള <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{നിങ്ങളുടെ ഫോണിൽ നിന്നുള്ള {NETWORK_NAME}}TABLET{നിങ്ങളുടെ ടാബ്‌ലെറ്റിൽ നിന്നുള്ള {NETWORK_NAME}}COMPUTER{നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്നുള്ള {NETWORK_NAME}}WATCH{നിങ്ങളുടെ വാച്ചിൽ നിന്നുള്ള {NETWORK_NAME}}VEHICLE{നിങ്ങളുടെ വാഹനത്തിൽ നിന്നുള്ള {NETWORK_NAME}}other{നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്നുള്ള {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> എന്നതിൽ നിന്നുള്ള <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"കണക്റ്റ് ചെയ്യുന്നു…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> എന്നതിൽ നിന്ന് ലഭ്യമാണ്"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> എന്നതിലെ <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-mn/strings.xml b/libs/WifiTrackerLib/res/values-mn/strings.xml
index 241ae3c70..6afb9b2e4 100644
--- a/libs/WifiTrackerLib/res/values-mn/strings.xml
+++ b/libs/WifiTrackerLib/res/values-mn/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Чанар муу"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Танай байгууллагаас зөвшөөрдөггүй"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g>-с ирсэн <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{Таны утасны {NETWORK_NAME}}TABLET{Таны таблетын {NETWORK_NAME}}COMPUTER{Таны компьютерын {NETWORK_NAME}}WATCH{Таны цагны {NETWORK_NAME}}VEHICLE{Таны тээврийн хэрэгслийн {NETWORK_NAME}}other{Таны төхөөрөмжийн {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>-с ирсэн <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Холбогдож байна…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-с ашиглах боломжтой"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 ГГц"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 ГГц"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 ГГц"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g>-д <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-mr/strings.xml b/libs/WifiTrackerLib/res/values-mr/strings.xml
index 84e9662b4..8a89a7759 100644
--- a/libs/WifiTrackerLib/res/values-mr/strings.xml
+++ b/libs/WifiTrackerLib/res/values-mr/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"कमी गुणवत्ता"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"तुमच्या संस्थेने अनुमती दिलेली नाही"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> वरील <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{तुमच्या फोनवरून {NETWORK_NAME}}TABLET{तुमच्या टॅबलेटवरून {NETWORK_NAME}}COMPUTER{तुमच्या काँप्युटरवरून {NETWORK_NAME}}WATCH{तुमच्या वॉचवरून {NETWORK_NAME}}VEHICLE{तुमच्या वाहनावरून {NETWORK_NAME}}other{तुमच्या डिव्हाइसवरून {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> वरील <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"कनेक्ट करत आहे…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> वरून उपलब्ध आहे"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"२.४ GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"५ GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"६ GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> वरील <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ms/strings.xml b/libs/WifiTrackerLib/res/values-ms/strings.xml
index d0474aede..4fe2a4b68 100644
--- a/libs/WifiTrackerLib/res/values-ms/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ms/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Kualiti rendah"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Tidak dibenarkan oleh organisasi anda"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> daripada <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} daripada telefon anda}TABLET{{NETWORK_NAME} daripada tablet anda}COMPUTER{{NETWORK_NAME} daripada komputer anda}WATCH{{NETWORK_NAME} daripada jam tangan anda}VEHICLE{{NETWORK_NAME} daripada kenderaan anda}other{{NETWORK_NAME} daripada peranti anda}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> daripada <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Menyambung…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Tersedia daripada <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> pada <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-my/strings.xml b/libs/WifiTrackerLib/res/values-my/strings.xml
index 8ae822326..3f163a8bc 100644
--- a/libs/WifiTrackerLib/res/values-my/strings.xml
+++ b/libs/WifiTrackerLib/res/values-my/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"အရည်အသွေး နိမ့်သည်"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"သင်၏အဖွဲ့အစည်းက ခွင့်မပြုပါ"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> ထံမှ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{သင့်ဖုန်းမှ {NETWORK_NAME}}TABLET{သင့်တက်ဘလက်မှ {NETWORK_NAME}}COMPUTER{သင့်ကွန်ပျူတာမှ {NETWORK_NAME}}WATCH{သင့်လက်ပတ်နာရီမှ {NETWORK_NAME}}VEHICLE{သင့်ယာဉ်မှ {NETWORK_NAME}}other{သင့်စက်ပစ္စည်းမှ {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> ထံမှ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"ချိတ်ဆက်နေသည်…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> တွင် ရနိုင်သည်"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"၂.၄ GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"၅ GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"၆ GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">"၊"</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">"၊ "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> ရှိ <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-nb/strings.xml b/libs/WifiTrackerLib/res/values-nb/strings.xml
index e5f7d7f11..827e19680 100644
--- a/libs/WifiTrackerLib/res/values-nb/strings.xml
+++ b/libs/WifiTrackerLib/res/values-nb/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Lav kvalitet"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Ikke tillatt av organisasjonen din"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> fra <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} fra telefonen}TABLET{{NETWORK_NAME} fra nettbrettet}COMPUTER{{NETWORK_NAME} fra datamaskinen}WATCH{{NETWORK_NAME} fra klokken}VEHICLE{{NETWORK_NAME} fra kjøretøyet}other{{NETWORK_NAME} fra enheten}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> fra <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Kobler til …"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Tilgjengelig fra <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> på <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ne/strings.xml b/libs/WifiTrackerLib/res/values-ne/strings.xml
index e8a36f426..1ae1020a2 100644
--- a/libs/WifiTrackerLib/res/values-ne/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ne/strings.xml
@@ -45,9 +45,18 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"न्यून गुणस्तर"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"तपाईंको सङ्गठनले अनुमति दिएको छैन"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> को <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{तपाईंको फोनबाट: {NETWORK_NAME}}TABLET{तपाईंको ट्याब्लेटबाट: {NETWORK_NAME}}COMPUTER{तपाईंको कम्प्युटरबाट: {NETWORK_NAME}}WATCH{तपाईंको स्मार्ट वाचबाट: {NETWORK_NAME}}VEHICLE{तपाईंको गाडीबाट: {NETWORK_NAME}}other{तपाईंको डिभाइसबाट: {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> को <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"कनेक्ट गरिँदै छ…"</string>
- <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> मा उपलब्ध"</string>
+ <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> बाट उपलब्ध"</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-इन्टरप्राइज"</string>
<string name="wifitrackerlib_wifi_security_short_eap_wpa3" msgid="6210273302049534874">"WPA3-EAP"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"२.४ GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"५ GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"६ GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> मा <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-nl/strings.xml b/libs/WifiTrackerLib/res/values-nl/strings.xml
index 10c91199d..eb2d63c40 100644
--- a/libs/WifiTrackerLib/res/values-nl/strings.xml
+++ b/libs/WifiTrackerLib/res/values-nl/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Lage kwaliteit"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Niet toegestaan door je organisatie"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> van <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} op je telefoon}TABLET{{NETWORK_NAME} op je tablet}COMPUTER{{NETWORK_NAME} op je computer}WATCH{{NETWORK_NAME} op je smartwatch}VEHICLE{{NETWORK_NAME} via je voertuig}other{{NETWORK_NAME} op je apparaat}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> van <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Verbinden…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Beschikbaar vanaf <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> in <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
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..37accf4ca 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>
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"ନିମ୍ନ ଗୁଣବତ୍ତା"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"ଆପଣଙ୍କ ସଂସ୍ଥା ଦ୍ୱାରା ଅନୁମତି ଦିଆଯାଏ ନାହିଁ"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g>ରୁ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{ଆପଣଙ୍କ ଫୋନରୁ {NETWORK_NAME}}TABLET{ଆପଣଙ୍କ ଟାବଲେଟରୁ {NETWORK_NAME}}COMPUTER{ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରୁ {NETWORK_NAME}}WATCH{ଆପଣଙ୍କ ୱାଚରୁ {NETWORK_NAME}}VEHICLE{ଆପଣଙ୍କ ଗାଡ଼ିରୁ {NETWORK_NAME}}other{ଆପଣଙ୍କ ଡିଭାଇସରୁ {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>ରୁ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"କନେକ୍ଟ କରାଯାଉଛି…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ରୁ ଉପଲବ୍ଧ"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g>ରେ <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-pa/strings.xml b/libs/WifiTrackerLib/res/values-pa/strings.xml
index ba9beec75..a1e3dda69 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>
@@ -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>
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"ਠੀਕ-ਠਾਕ ਕਨੈਕਸ਼ਨ"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"ਤੁਹਾਡੀ ਸੰਸਥਾ ਵੱਲੋਂ ਇਸਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੱਤੀ ਗਈ"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> ਤੋਂ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{ਤੁਹਾਡੇ ਫ਼ੋਨ ਤੋਂ {NETWORK_NAME}}TABLET{ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ ਤੋਂ {NETWORK_NAME}}COMPUTER{ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਤੋਂ {NETWORK_NAME}}WATCH{ਤੁਹਾਡੀ ਘੜੀ ਤੋਂ {NETWORK_NAME}}VEHICLE{ਤੁਹਾਡੇ ਵਾਹਨ ਤੋਂ {NETWORK_NAME}}other{ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਤੋਂ {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> ਤੋਂ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ਤੋਂ ਉਪਲਬਧ ਹੈ"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> \'ਤੇ <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-pl/strings.xml b/libs/WifiTrackerLib/res/values-pl/strings.xml
index 19c7a0abc..4d7c12b85 100644
--- a/libs/WifiTrackerLib/res/values-pl/strings.xml
+++ b/libs/WifiTrackerLib/res/values-pl/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Niska jakość"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Niedozwolone przez Twoją organizację"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> z urządzenia <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} z Twojego telefonu}TABLET{{NETWORK_NAME} z Twojego tabletu}COMPUTER{{NETWORK_NAME} z Twojego komputera}WATCH{{NETWORK_NAME} z Twojego zegarka}VEHICLE{{NETWORK_NAME} z Twojego pojazdu}other{{NETWORK_NAME} z Twojego urządzenia}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> z urządzenia <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Łączę…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Sieć dostępna z urządzenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g>: <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-pt-rBR/strings.xml b/libs/WifiTrackerLib/res/values-pt-rBR/strings.xml
index b68025a68..cfaf0c765 100644
--- a/libs/WifiTrackerLib/res/values-pt-rBR/strings.xml
+++ b/libs/WifiTrackerLib/res/values-pt-rBR/strings.xml
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> do <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} do smartphone}TABLET{{NETWORK_NAME} do tablet}COMPUTER{{NETWORK_NAME} do computador}WATCH{{NETWORK_NAME} do relógio}VEHICLE{{NETWORK_NAME} do veículo}other{{NETWORK_NAME} do dispositivo}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> do dispositivo <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Conectando…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Disponível no dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> no <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
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..f787c4589 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>
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Baixa qualidade"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Não é permitido pela sua organização"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} a partir do telemóvel}TABLET{{NETWORK_NAME} a partir do tablet}COMPUTER{{NETWORK_NAME} a partir do computador}WATCH{{NETWORK_NAME} a partir do relógio}VEHICLE{{NETWORK_NAME} a partir do veículo}other{{NETWORK_NAME} a partir do dispositivo}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"A ligar…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Disponível a partir de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> em <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-pt/strings.xml b/libs/WifiTrackerLib/res/values-pt/strings.xml
index b68025a68..cfaf0c765 100644
--- a/libs/WifiTrackerLib/res/values-pt/strings.xml
+++ b/libs/WifiTrackerLib/res/values-pt/strings.xml
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> do <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} do smartphone}TABLET{{NETWORK_NAME} do tablet}COMPUTER{{NETWORK_NAME} do computador}WATCH{{NETWORK_NAME} do relógio}VEHICLE{{NETWORK_NAME} do veículo}other{{NETWORK_NAME} do dispositivo}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> do dispositivo <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Conectando…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Disponível no dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> no <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ro/strings.xml b/libs/WifiTrackerLib/res/values-ro/strings.xml
index 9764d90cb..bd29b3468 100644
--- a/libs/WifiTrackerLib/res/values-ro/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ro/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Calitate slabă"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Nu este acceptată de organizația ta"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de la <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} de pe telefon}TABLET{{NETWORK_NAME} de pe tabletă}COMPUTER{{NETWORK_NAME} de pe computer}WATCH{{NETWORK_NAME} de pe ceas}VEHICLE{{NETWORK_NAME} din mașină}other{{NETWORK_NAME} de pe dispozitiv}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> de la <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Se conectează…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Disponibilă de pe <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> pe <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ru/strings.xml b/libs/WifiTrackerLib/res/values-ru/strings.xml
index befda266b..21f7b63fd 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>
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"низкое качество"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Запрещено системным администратором"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"Сеть \"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\", устройство <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{Сеть \"{NETWORK_NAME}\" на телефоне}TABLET{Сеть \"{NETWORK_NAME}\" на планшете}COMPUTER{Сеть \"{NETWORK_NAME}\" на компьютере}WATCH{Сеть \"{NETWORK_NAME}\" на часах}VEHICLE{Сеть \"{NETWORK_NAME}\" в автомобиле}other{Сеть \"{NETWORK_NAME}\" на устройстве}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"Сеть \"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\", устройство \"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>\""</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Подключение…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Доступно с устройства \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 ГГц"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 ГГц"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 ГГц"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Мбит/с"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> в диапазоне <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-si/strings.xml b/libs/WifiTrackerLib/res/values-si/strings.xml
index b3ce814ba..09f6c6af2 100644
--- a/libs/WifiTrackerLib/res/values-si/strings.xml
+++ b/libs/WifiTrackerLib/res/values-si/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"අඩු ගුණත්වය"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"ඔබගේ සංවිධානය විසින් ඉඩ නොදේ"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> සිට <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{ඔබේ දුරකථනයෙන් {NETWORK_NAME}}TABLET{ඔබේ ටැබ්ලටයෙන් {NETWORK_NAME}}COMPUTER{ඔබේ පරිගණකයෙන් {NETWORK_NAME}}WATCH{ඔබේ ඔරලෝසුවෙන් {NETWORK_NAME}}VEHICLE{ඔබේ වාහනයෙන් {NETWORK_NAME}}other{ඔබේ උපාංගයෙන් {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> සිට <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"සම්බන්ධ වෙමින්…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> වෙතින් තිබේ"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> මත <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-sk/strings.xml b/libs/WifiTrackerLib/res/values-sk/strings.xml
index e3e495511..e95a751e4 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>
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> zariadenia <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} z telefónu}TABLET{{NETWORK_NAME} z tabletu}COMPUTER{{NETWORK_NAME} z počítača}WATCH{{NETWORK_NAME} z hodiniek}VEHICLE{{NETWORK_NAME} z vozidla}other{{NETWORK_NAME} zo zariadenia}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> zariadenia <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Pripája sa…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"K dispozícii zo zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> v pásme <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-sl/strings.xml b/libs/WifiTrackerLib/res/values-sl/strings.xml
index 4ba04184c..c8d554520 100644
--- a/libs/WifiTrackerLib/res/values-sl/strings.xml
+++ b/libs/WifiTrackerLib/res/values-sl/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Nizka kakovost"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Organizacija tega ne dovoljuje."</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"Omrežje <xliff:g id="NETWORK_NAME">%1$s</xliff:g> (<xliff:g id="MODEL_NAME">%2$s</xliff:g>)"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} iz vašega telefona}TABLET{{NETWORK_NAME} iz vašega tabličnega računalnika}COMPUTER{{NETWORK_NAME} iz vašega računalnika}WATCH{{NETWORK_NAME} iz vaše ure}VEHICLE{{NETWORK_NAME} iz vašega vozila}other{{NETWORK_NAME} iz vaše naprave}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"Omrežje <xliff:g id="NETWORK_NAME">%1$s</xliff:g> (<xliff:g id="DEVICE_NAME">%2$s</xliff:g>)"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Vzpostavljanje povezave …"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Na voljo iz naprave <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> v pasu <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-sq/strings.xml b/libs/WifiTrackerLib/res/values-sq/strings.xml
index f4d9db1e4..9df7fe38e 100644
--- a/libs/WifiTrackerLib/res/values-sq/strings.xml
+++ b/libs/WifiTrackerLib/res/values-sq/strings.xml
@@ -45,6 +45,15 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> nga <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} nga telefoni yt}TABLET{{NETWORK_NAME} nga tableti yt}COMPUTER{{NETWORK_NAME} nga kompjuteri yt}WATCH{{NETWORK_NAME} nga ora jote}VEHICLE{{NETWORK_NAME} nga automjeti yt}other{{NETWORK_NAME} nga pajisja jote}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> nga <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Po lidhet…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Ofrohet nga <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> në <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-sr/strings.xml b/libs/WifiTrackerLib/res/values-sr/strings.xml
index b487cc5e4..109759e87 100644
--- a/libs/WifiTrackerLib/res/values-sr/strings.xml
+++ b/libs/WifiTrackerLib/res/values-sr/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Лош квалитет"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Не дозвољава ваша организација"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> – <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} са телефона}TABLET{{NETWORK_NAME} са таблета}COMPUTER{{NETWORK_NAME} са рачунара}WATCH{{NETWORK_NAME} са сата}VEHICLE{{NETWORK_NAME} са возила}other{{NETWORK_NAME} са уређаја}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> – <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Повезује се…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Доступно са уређаја <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> MB/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-sv/strings.xml b/libs/WifiTrackerLib/res/values-sv/strings.xml
index 53fee4187..d21968f9c 100644
--- a/libs/WifiTrackerLib/res/values-sv/strings.xml
+++ b/libs/WifiTrackerLib/res/values-sv/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Låg kvalitet"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Tillåts inte av din organisation"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> från <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} från telefonen}TABLET{{NETWORK_NAME} från surfplattan}COMPUTER{{NETWORK_NAME} från datorn}WATCH{{NETWORK_NAME} från klockan}VEHICLE{{NETWORK_NAME} från fordonet}other{{NETWORK_NAME} från enheten}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> från <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Ansluter …"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Tillgängligt från <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbit/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> på <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-sw/strings.xml b/libs/WifiTrackerLib/res/values-sw/strings.xml
index 25dde5d89..8d7b45b2a 100644
--- a/libs/WifiTrackerLib/res/values-sw/strings.xml
+++ b/libs/WifiTrackerLib/res/values-sw/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Ubora wa chini"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Shirika lako haliruhusu"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> kutoka kwenye <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} kutoka kwenye simu yako}TABLET{{NETWORK_NAME} kutoka kwenye kishikwambi chako}COMPUTER{{NETWORK_NAME} kutoka kwenye kompyuta yako}WATCH{{NETWORK_NAME} kutoka kwenye saa yako}VEHICLE{{NETWORK_NAME} kutoka kwenye gari lako}other{{NETWORK_NAME} kutoka kwenye kifaa chako}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> kutoka kwenye <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Inaunganisha…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Unapatikana kwenye <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"GHz 2.4"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"GHz 5"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"GHz 6"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"Mbps <xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g>"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> kwenye <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ta/strings.xml b/libs/WifiTrackerLib/res/values-ta/strings.xml
index 7261376ee..b67557dee 100644
--- a/libs/WifiTrackerLib/res/values-ta/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ta/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"குறைந்த தரம்"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"உங்கள் நிறுவனத்தால் அனுமதிக்கப்படவில்லை"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> வழங்கும் <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{உங்கள் மொபைலில் இருந்து {NETWORK_NAME}}TABLET{உங்கள் டேப்லெட்டில் இருந்து {NETWORK_NAME}}COMPUTER{உங்கள் கம்ப்யூட்டரில் இருந்து {NETWORK_NAME}}WATCH{உங்கள் வாட்ச்சில் இருந்து {NETWORK_NAME}}VEHICLE{உங்கள் வாகனத்தில் இருந்து {NETWORK_NAME}}other{உங்கள் சாதனத்தில் இருந்து {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> வழங்கும் <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"இணைக்கிறது…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்தில் இருந்து கிடைக்கும்"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> இல் <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-te/strings.xml b/libs/WifiTrackerLib/res/values-te/strings.xml
index cc16b49be..5f5ac6ced 100644
--- a/libs/WifiTrackerLib/res/values-te/strings.xml
+++ b/libs/WifiTrackerLib/res/values-te/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"తక్కువ క్వాలిటీ"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"మీ సంస్థచే అనుమతించబడదు"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> నుండి <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{మీ ఫోన్ నుండి {NETWORK_NAME}}TABLET{మీ టాబ్లెట్ నుండి {NETWORK_NAME}}COMPUTER{మీ కంప్యూటర్ నుండి {NETWORK_NAME}}WATCH{మీ వాచ్ నుండి {NETWORK_NAME}}VEHICLE{మీ వాహనం నుండి {NETWORK_NAME}}other{మీ పరికరం నుండి {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> నుండి <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"కనెక్ట్ అవుతోంది…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> నుండి అందుబాటులో ఉంది"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g>లో <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-th/strings.xml b/libs/WifiTrackerLib/res/values-th/strings.xml
index 3d1c33f41..87dc99cab 100644
--- a/libs/WifiTrackerLib/res/values-th/strings.xml
+++ b/libs/WifiTrackerLib/res/values-th/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"คุณภาพต่ำ"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"องค์กรของคุณไม่อนุญาต"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> จาก <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} จากโทรศัพท์ของคุณ}TABLET{{NETWORK_NAME} จากแท็บเล็ตของคุณ}COMPUTER{{NETWORK_NAME} จากคอมพิวเตอร์ของคุณ}WATCH{{NETWORK_NAME} จากนาฬิกาของคุณ}VEHICLE{{NETWORK_NAME} จากรถของคุณ}other{{NETWORK_NAME} จากอุปกรณ์ของคุณ}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> จาก <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"กำลังเชื่อมต่อ…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"พร้อมใช้งานจาก <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> ใน <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-tl/strings.xml b/libs/WifiTrackerLib/res/values-tl/strings.xml
index 0333eb7dd..685fdebf3 100644
--- a/libs/WifiTrackerLib/res/values-tl/strings.xml
+++ b/libs/WifiTrackerLib/res/values-tl/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Mababang kalidad"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Hindi pinapayagan ng iyong organisasyon"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> mula sa <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} mula sa telepono mo}TABLET{{NETWORK_NAME} mula sa tablet mo}COMPUTER{{NETWORK_NAME} mula sa computer mo}WATCH{{NETWORK_NAME} mula sa relo mo}VEHICLE{{NETWORK_NAME} mula sa sasakyan mo}other{{NETWORK_NAME} mula sa device mo}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> mula sa <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Kumokonekta…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Available mula sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> sa <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-tr/strings.xml b/libs/WifiTrackerLib/res/values-tr/strings.xml
index 5fe75160d..a42dd9a99 100644
--- a/libs/WifiTrackerLib/res/values-tr/strings.xml
+++ b/libs/WifiTrackerLib/res/values-tr/strings.xml
@@ -44,7 +44,16 @@
<string name="wifitrackerlib_wifi_connected_cannot_provide_internet" msgid="3803471522215612745">"Cihaza bağlandı. İnternet bağlantısı sağlanamıyor."</string>
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Düşük kalite"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Kuruluşunuz tarafından izin verilmiyor"</string>
- <string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> tarafından gönderilen <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> kaynağından <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{Telefonunuzdaki {NETWORK_NAME}}TABLET{Tabletinizdeki {NETWORK_NAME}}COMPUTER{Bilgisayarınızdaki {NETWORK_NAME}}WATCH{Kol saatinizdeki {NETWORK_NAME}}VEHICLE{Aracınızdaki {NETWORK_NAME}}other{Cihazınızdaki {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> tarafından gönderilen <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Bağlanıyor…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında erişilebilir"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/sn."</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> üzerinde <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-uk/strings.xml b/libs/WifiTrackerLib/res/values-uk/strings.xml
index a9efd5959..6cb88b1a3 100644
--- a/libs/WifiTrackerLib/res/values-uk/strings.xml
+++ b/libs/WifiTrackerLib/res/values-uk/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Низька якість"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Заборонено у вашій організації"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> з пристрою <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} з вашого телефона}TABLET{{NETWORK_NAME} з вашого планшета}COMPUTER{{NETWORK_NAME} з вашого комп’ютера}WATCH{{NETWORK_NAME} з вашого годинника}VEHICLE{{NETWORK_NAME} з вашого автомобіля}other{{NETWORK_NAME} з вашого пристрою}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> з пристрою \"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>\""</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Підключення…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Доступно з пристрою \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 ГГц"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 ГГц"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 ГГц"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Мбіт/с"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> на частоті <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-ur/strings.xml b/libs/WifiTrackerLib/res/values-ur/strings.xml
index 22d944ce3..9a98e87be 100644
--- a/libs/WifiTrackerLib/res/values-ur/strings.xml
+++ b/libs/WifiTrackerLib/res/values-ur/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"ادنٰی معیار"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"آپ کی تنظیم کی طرف سے اجازت نہیں ہے"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> منجانب <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{آپ کے فون سے {NETWORK_NAME}}TABLET{آپ کے ٹیبلیٹ سے {NETWORK_NAME}}COMPUTER{آپ کے کمپیوٹر سے {NETWORK_NAME}}WATCH{آپ کی گھڑی سے {NETWORK_NAME}}VEHICLE{آپ کی گاڑی سے {NETWORK_NAME}}other{آپ کے آلے سے {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> منجانب <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"منسلک ہو رہا ہے…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> کی طرف سے دستیاب ہیں"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4‎ GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5‎ GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"‏GHz ‏6"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">"،"</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">"، "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"‎<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> پر <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-uz/strings.xml b/libs/WifiTrackerLib/res/values-uz/strings.xml
index f5011c9ab..2ab99b5d8 100644
--- a/libs/WifiTrackerLib/res/values-uz/strings.xml
+++ b/libs/WifiTrackerLib/res/values-uz/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Sifati past"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Tashkilotingiz ruxsat bermagan"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="MODEL_NAME">%2$s</xliff:g> <xliff:g id="NETWORK_NAME">%1$s</xliff:g> yubordi"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{Telefoningizdan: {NETWORK_NAME}}TABLET{Planshetingizdan: {NETWORK_NAME}}COMPUTER{Kompyuteringizdan: {NETWORK_NAME}}WATCH{Soatingizdan: {NETWORK_NAME}}VEHICLE{Avtomobilingizdan: {NETWORK_NAME}}other{Qurilmangizdan: {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="DEVICE_NAME">%2$s</xliff:g> <xliff:g id="NETWORK_NAME">%1$s</xliff:g> yubordi"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Ulanmoqda…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Sotuvga chiqadi: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GGs"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GGs"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GGs"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbit/s"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> — <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-vi/strings.xml b/libs/WifiTrackerLib/res/values-vi/strings.xml
index 618891b1c..48bf9e4a8 100644
--- a/libs/WifiTrackerLib/res/values-vi/strings.xml
+++ b/libs/WifiTrackerLib/res/values-vi/strings.xml
@@ -45,9 +45,18 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Chất lượng thấp"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Không được tổ chức của bạn cho phép"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> trên <xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME} trên điện thoại của bạn}TABLET{{NETWORK_NAME} trên máy tính bảng của bạn}COMPUTER{{NETWORK_NAME} trên máy tính của bạn}WATCH{{NETWORK_NAME} trên đồng hồ của bạn}VEHICLE{{NETWORK_NAME} trên xe của bạn}other{{NETWORK_NAME} trên thiết bị của bạn}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> trên <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Đang kết nối…"</string>
- <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Có từ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Nguồn Internet: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</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>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2,4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mb/giây"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> trên <xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-zh-rCN/strings.xml b/libs/WifiTrackerLib/res/values-zh-rCN/strings.xml
index cbf3a82b8..0584ebe8d 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>
@@ -44,7 +44,16 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"来自<xliff:g id="MODEL_NAME">%2$s</xliff:g>的<xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"来自 <xliff:g id="MODEL_NAME">%2$s</xliff:g> 的“<xliff:g id="NETWORK_NAME">%1$s</xliff:g>”"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{{NETWORK_NAME}(来自您的手机)}TABLET{{NETWORK_NAME}(来自您的平板电脑)}COMPUTER{{NETWORK_NAME}(来自您的计算机)}WATCH{{NETWORK_NAME}(来自您的手表)}VEHICLE{{NETWORK_NAME}(来自您的汽车)}other{{NETWORK_NAME}(来自您的设备)}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"来自“<xliff:g id="DEVICE_NAME">%2$s</xliff:g>”的<xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"正在连接…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"来自以下设备:<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">"、"</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">"、 "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="LINK_SPEED">%1$s</xliff:g> (<xliff:g id="BAND">%2$s</xliff:g>)"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-zh-rHK/strings.xml b/libs/WifiTrackerLib/res/values-zh-rHK/strings.xml
index cb8ac49c4..ac750fbcb 100644
--- a/libs/WifiTrackerLib/res/values-zh-rHK/strings.xml
+++ b/libs/WifiTrackerLib/res/values-zh-rHK/strings.xml
@@ -43,9 +43,18 @@
<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_hotspot_network_summary" msgid="7661086683527884190">"來自「<xliff:g id="MODEL_NAME">%2$s</xliff:g>」的「<xliff:g id="NETWORK_NAME">%1$s</xliff:g>」"</string>
- <string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"來自「<xliff:g id="DEVICE_NAME">%2$s</xliff:g>」的「<xliff:g id="NETWORK_NAME">%1$s</xliff:g>」"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{手機的 {NETWORK_NAME}}TABLET{平板電腦的 {NETWORK_NAME}}COMPUTER{電腦的 {NETWORK_NAME}}WATCH{手錶的 {NETWORK_NAME}}VEHICLE{汽車的 {NETWORK_NAME}}other{裝置的 {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
+ <string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> (來自<xliff:g id="DEVICE_NAME">%2$s</xliff:g>)"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"正在連線…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"網絡來源:<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="wifitrackerlib_wifi_security_short_eap_wpa_wpa2" msgid="4815223667006927841">"WPA/WPA2-EAP"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">"、"</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">"、 "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g> <xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-zh-rTW/strings.xml b/libs/WifiTrackerLib/res/values-zh-rTW/strings.xml
index ac7f36d09..b723184c6 100644
--- a/libs/WifiTrackerLib/res/values-zh-rTW/strings.xml
+++ b/libs/WifiTrackerLib/res/values-zh-rTW/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"品質不佳"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"貴機構禁止使用"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> (來自<xliff:g id="MODEL_NAME">%2$s</xliff:g>)"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{手機的 {NETWORK_NAME}}TABLET{平板電腦的 {NETWORK_NAME}}COMPUTER{電腦的 {NETWORK_NAME}}WATCH{手錶的 {NETWORK_NAME}}VEHICLE{車輛的 {NETWORK_NAME}}other{裝置的 {NETWORK_NAME}}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> (來自<xliff:g id="DEVICE_NAME">%2$s</xliff:g>)"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"連線中…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"網路來源:<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">"、"</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">"、 "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"<xliff:g id="BAND">%2$s</xliff:g>:<xliff:g id="LINK_SPEED">%1$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values-zu/strings.xml b/libs/WifiTrackerLib/res/values-zu/strings.xml
index 49566b4f5..11753f4b8 100644
--- a/libs/WifiTrackerLib/res/values-zu/strings.xml
+++ b/libs/WifiTrackerLib/res/values-zu/strings.xml
@@ -45,6 +45,15 @@
<string name="wifi_connected_low_quality" msgid="4478331645458058445">"Ikhwalithi ephansi"</string>
<string name="wifitrackerlib_admin_restricted_network" msgid="5439914801076897515">"Ayivunyelwe yinhlangano yakho"</string>
<string name="wifitrackerlib_hotspot_network_summary" msgid="7661086683527884190">"I-<xliff:g id="NETWORK_NAME">%1$s</xliff:g> evela ku-<xliff:g id="MODEL_NAME">%2$s</xliff:g>"</string>
+ <string name="wifitrackerlib_hotspot_network_summary_new" msgid="1165705867298669621">"{DEVICE_TYPE,select, PHONE{I-{NETWORK_NAME} ukusuka kufoni yakho}TABLET{I-{NETWORK_NAME} ukusuka kuthebhulethi yakho}COMPUTER{I-{NETWORK_NAME} ukusuka kukhompyutha yakho}WATCH{I-{NETWORK_NAME} ukusuka kuwashi lakho}VEHICLE{I-{NETWORK_NAME} ukusuka emotweni yakho}other{I-{NETWORK_NAME} ukusuka kudivayisi yakho}}"</string>
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_generic (2339836723160908882) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_settings (6928234716406336668) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_block (359780026027619177) -->
+ <skip />
+ <!-- no translation found for wifitrackerlib_hotspot_network_summary_error_carrier_incomplete (3407132390461094984) -->
+ <skip />
<string name="wifitrackerlib_hotspot_network_alternate" msgid="4966814473758893807">"I-<xliff:g id="NETWORK_NAME">%1$s</xliff:g> evela ku-<xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="wifitrackerlib_hotspot_network_connecting" msgid="2072252282318270780">"Iyaxhuma…"</string>
<string name="wifitrackerlib_known_network_summary" msgid="6035425130009353268">"Kutholakala ukusukela ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -88,5 +97,7 @@
<string name="wifitrackerlib_wifi_band_24_ghz" msgid="5374362780653321244">"2.4 GHz"</string>
<string name="wifitrackerlib_wifi_band_5_ghz" msgid="2179047349922091556">"5 GHz"</string>
<string name="wifitrackerlib_wifi_band_6_ghz" msgid="6532408050869498777">"6 GHz"</string>
- <string name="wifitrackerlib_multiband_separator" msgid="2696920984391378575">","</string>
+ <string name="wifitrackerlib_multiband_separator" msgid="6838172120482590336">", "</string>
+ <string name="wifitrackerlib_link_speed_mbps" msgid="5880214340478706112">"<xliff:g id="LINK_SPEED_MBPS">%1$d</xliff:g> Mbps"</string>
+ <string name="wifitrackerlib_link_speed_on_band" msgid="2433114336144744962">"I-<xliff:g id="LINK_SPEED">%1$s</xliff:g> ku-<xliff:g id="BAND">%2$s</xliff:g>"</string>
</resources>
diff --git a/libs/WifiTrackerLib/res/values/config.xml b/libs/WifiTrackerLib/res/values/config.xml
index 91df95872..8ec73f5c2 100644
--- a/libs/WifiTrackerLib/res/values/config.xml
+++ b/libs/WifiTrackerLib/res/values/config.xml
@@ -16,5 +16,5 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Enables verbose logging on user debug builds by default -->
- <bool name="wifitrackerlib_enable_verbose_logging_for_userdebug">false</bool>
+ <bool name="wifitrackerlib_enable_verbose_logging_for_userdebug">true</bool>
</resources>
diff --git a/libs/WifiTrackerLib/res/values/strings.xml b/libs/WifiTrackerLib/res/values/strings.xml
index 5ebf2ba26..5be3c7d7c 100644
--- a/libs/WifiTrackerLib/res/values/strings.xml
+++ b/libs/WifiTrackerLib/res/values/strings.xml
@@ -121,6 +121,35 @@
<!-- Summary for a hotspot network (used on "Internet" page) [CHAR LIMIT=NONE] -->
<string name="wifitrackerlib_hotspot_network_summary"><xliff:g id="network name" example="Google Fi">%1$s</xliff:g> from <xliff:g id="model name" example="Pixel 7">%2$s</xliff:g></string>
+ <!-- New format summary for a hotspot network (used on "Internet" page) [CHAR LIMIT=NONE] -->
+ <string name="wifitrackerlib_hotspot_network_summary_new">{DEVICE_TYPE, select,
+ PHONE {{NETWORK_NAME} from your phone}
+ TABLET {{NETWORK_NAME} from your tablet}
+ COMPUTER {{NETWORK_NAME} from your computer}
+ WATCH {{NETWORK_NAME} from your watch}
+ VEHICLE {{NETWORK_NAME} from your vehicle}
+ other {{NETWORK_NAME} from your device}
+ }</string>
+
+ <!-- Summary for a hotspot network with generic error [CHAR LIMIT=NONE] -->
+ <string name="wifitrackerlib_hotspot_network_summary_error_generic">Can\'t connect. Try connecting again.</string>
+
+ <!-- Summary for a hotspot network with settings related error [CHAR LIMIT=NONE] -->
+ <string name="wifitrackerlib_hotspot_network_summary_error_settings">{DEVICE_TYPE, select,
+ PHONE {Can\'t connect. Check phone settings and try again.}
+ TABLET {Can\'t connect. Check tablet settings and try again.}
+ COMPUTER {Can\'t connect. Check computer settings and try again.}
+ WATCH {Can\'t connect. Check watch settings and try again.}
+ VEHICLE {Can\'t connect. Check vehicle settings and try again.}
+ other {Can\'t connect. Check device settings and try again.}
+ }</string>
+
+ <!-- Summary for a hotspot network with carrier entitlement block error [CHAR LIMIT=NONE] -->
+ <string name="wifitrackerlib_hotspot_network_summary_error_carrier_block"><xliff:g id="network name" example="Google Fi">%1$s</xliff:g> doesn\'t allow this connection</string>
+
+ <!-- Summary for a hotspot network with carrier entitlement incomplete error [CHAR LIMIT=NONE] -->
+ <string name="wifitrackerlib_hotspot_network_summary_error_carrier_incomplete">Can\'t connect. Contact <xliff:g id="network name" example="Google Fi">%1$s</xliff:g> for help.</string>
+
<!-- Alternate summary for a hotspot network (used on "Network & internet" page) [CHAR LIMIT=NONE] -->
<string name="wifitrackerlib_hotspot_network_alternate"><xliff:g id="network name" example="Google Fi">%1$s</xliff:g> from <xliff:g id="device name" example="Matt's Phone">%2$s</xliff:g></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 52c51557b..4ea48626a 100644
--- a/libs/WifiTrackerLib/sdk_src/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
+++ b/libs/WifiTrackerLib/sdk_src/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
@@ -101,4 +101,12 @@ class NonSdkApiWrapper {
// Return null since SUW does not have QUERY_ADMIN_POLICY permission.
return null;
}
+
+ /**
+ * Whether the hotspot network provider battery charging status flag is enabled.
+ */
+ static boolean isNetworkProviderBatteryChargingStatusEnabled() {
+ // Google3 can't access trunk stable flags, so default to false.
+ return false;
+ }
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
index e464090a5..d704d395c 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
@@ -42,7 +42,6 @@ import android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.SharedConnectivityClientCallback;
import android.net.wifi.sharedconnectivity.app.SharedConnectivityManager;
import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
-import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.telephony.SubscriptionManager;
@@ -92,10 +91,8 @@ import java.util.concurrent.Executor;
public class BaseWifiTracker {
private final String mTag;
- private static boolean sVerboseLogging;
-
- public static boolean isVerboseLoggingEnabled() {
- return BaseWifiTracker.sVerboseLogging;
+ public boolean isVerboseLoggingEnabled() {
+ return mInjector.isVerboseLoggingEnabled();
}
private int mWifiState = WifiManager.WIFI_STATE_DISABLED;
@@ -192,18 +189,20 @@ public class BaseWifiTracker {
@WorkerThread
public void onCapabilitiesChanged(@NonNull Network network,
@NonNull NetworkCapabilities networkCapabilities) {
- List<Network> underlyingNetworks =
- networkCapabilities.getUnderlyingNetworks();
+ // If the default network has an underlying Wi-Fi network (e.g. it's
+ // a VPN), treat the Wi-Fi network as the default network.
+ List<Network> underlyingNetworks = BuildCompat.isAtLeastT()
+ ? networkCapabilities.getUnderlyingNetworks() : null;
if (underlyingNetworks != null) {
- Network currentWifiNetwork = mWifiManager.getCurrentNetwork();
- if (underlyingNetworks.contains(currentWifiNetwork)) {
- // If the default network has an underlying Wi-Fi network (e.g. it's
- // a VPN), treat the Wi-Fi network as the default network.
- handleDefaultNetworkCapabilitiesChanged(currentWifiNetwork,
- new NetworkCapabilities.Builder(networkCapabilities)
- .setTransportInfo(mWifiManager.getConnectionInfo())
- .build());
- return;
+ for (Network underlyingNetwork : underlyingNetworks) {
+ NetworkCapabilities underlyingNetworkCapabilities =
+ mConnectivityManager.getNetworkCapabilities(underlyingNetwork);
+ if (underlyingNetworkCapabilities != null
+ && underlyingNetworkCapabilities.hasTransport(TRANSPORT_WIFI)) {
+ handleDefaultNetworkCapabilitiesChanged(
+ underlyingNetwork, underlyingNetworkCapabilities);
+ return;
+ }
}
}
handleDefaultNetworkCapabilitiesChanged(network, networkCapabilities);
@@ -345,9 +344,6 @@ public class BaseWifiTracker {
BaseWifiTracker.this.onDestroy();
}
};
- if (lifecycle != null) {
- lifecycle.addObserver(mLifecycleObserver);
- }
mContext = context;
mWifiManager = wifiManager;
mConnectivityManager = connectivityManager;
@@ -367,12 +363,9 @@ public class BaseWifiTracker {
mScanResultUpdater = new ScanResultUpdater(clock,
maxScanAgeMillis + scanIntervalMillis);
mScanner = new BaseWifiTracker.Scanner(workerHandler.getLooper());
- if (mContext.getResources().getBoolean(
- R.bool.wifitrackerlib_enable_verbose_logging_for_userdebug)
- && Build.TYPE.equals("userdebug")) {
- sVerboseLogging = true;
- } else {
- sVerboseLogging = mWifiManager.isVerboseLoggingEnabled();
+
+ if (lifecycle != null) { // Need to add after mScanner is initialized.
+ lifecycle.addObserver(mLifecycleObserver);
}
}
@@ -383,7 +376,7 @@ public class BaseWifiTracker {
mIsScanningDisabled = true;
// This method indicates SystemUI usage, which shouldn't output verbose logs since it's
// always up.
- sVerboseLogging = false;
+ mInjector.disableVerboseLogging();
}
/**
@@ -838,6 +831,7 @@ public class BaseWifiTracker {
Log.v(mTag, "Issuing scan request from WifiScanner");
}
wifiScanner.startScan(scanSettings, mFirstScanListener);
+ notifyOnScanRequested();
return;
} else {
Log.e(mTag, "Failed to retrieve WifiScanner!");
@@ -872,6 +866,7 @@ public class BaseWifiTracker {
// Remove any pending scanLoops in case possiblyStartScanning was called more than once.
removeCallbacksAndMessages(null);
mWifiManager.startScan();
+ notifyOnScanRequested();
postDelayed(this::scanLoop, mScanIntervalMillis);
}
}
@@ -894,6 +889,16 @@ public class BaseWifiTracker {
}
/**
+ * Posts onScanRequested callback on the main thread.
+ */
+ @WorkerThread
+ private void notifyOnScanRequested() {
+ if (mListener != null) {
+ mMainHandler.post(mListener::onScanRequested);
+ }
+ }
+
+ /**
* Base callback handling Wi-Fi state changes
*
* Subclasses should extend this for their own needs.
@@ -904,5 +909,10 @@ public class BaseWifiTracker {
*/
@MainThread
void onWifiStateChanged();
+
+ @MainThread
+ default void onScanRequested() {
+ // Do nothing.
+ }
}
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkDetailsTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkDetailsTracker.java
index 6b392954f..e223ec403 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkDetailsTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkDetailsTracker.java
@@ -112,9 +112,13 @@ public class HotspotNetworkDetailsTracker extends NetworkDetailsTracker {
@Override
protected void handleServiceConnected() {
if (mInjector.isSharedConnectivityFeatureEnabled() && mSharedConnectivityManager != null) {
- mHotspotNetworkData = mSharedConnectivityManager.getHotspotNetworks().stream().filter(
- network -> network.getDeviceId() == mChosenEntry.getHotspotNetworkEntryKey()
- .getDeviceId()).findFirst().orElse(null);
+ List<HotspotNetwork> hotspotNetworks = mSharedConnectivityManager.getHotspotNetworks();
+ if (hotspotNetworks != null) {
+ mHotspotNetworkData = hotspotNetworks.stream().filter(
+ network -> network.getDeviceId()
+ == mChosenEntry.getHotspotNetworkEntryKey().getDeviceId())
+ .findFirst().orElse(null);
+ }
}
if (mHotspotNetworkData == null) {
throw new IllegalArgumentException(
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java
index 9da34caa0..67aca3dec 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java
@@ -19,8 +19,10 @@ package com.android.wifitrackerlib;
import static android.net.wifi.WifiInfo.DEFAULT_MAC_ADDRESS;
import static android.os.Build.VERSION_CODES;
+import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
+import android.icu.text.MessageFormat;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.sharedconnectivity.app.HotspotNetwork;
@@ -37,6 +39,7 @@ import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;
+import androidx.core.os.BuildCompat;
import org.json.JSONException;
import org.json.JSONObject;
@@ -45,6 +48,8 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Objects;
/**
@@ -54,6 +59,10 @@ import java.util.Objects;
public class HotspotNetworkEntry extends WifiEntry {
static final String TAG = "HotspotNetworkEntry";
public static final String KEY_PREFIX = "HotspotNetworkEntry:";
+ public static final String EXTRA_KEY_IS_BATTERY_CHARGING = "is_battery_charging";
+
+ private static final String DEVICE_TYPE_KEY = "DEVICE_TYPE";
+ private static final String NETWORK_NAME_KEY = "NETWORK_NAME";
@NonNull private final WifiTrackerInjector mInjector;
@NonNull private final Context mContext;
@@ -61,6 +70,9 @@ public class HotspotNetworkEntry extends WifiEntry {
@Nullable private HotspotNetwork mHotspotNetworkData;
@NonNull private HotspotNetworkEntryKey mKey;
+ @ConnectionStatus
+ private int mLastStatus = HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN;
+ private boolean mConnectionError = false;
/**
* If editing this IntDef also edit the definition in:
@@ -94,6 +106,8 @@ public class HotspotNetworkEntry extends WifiEntry {
})
public @interface DeviceType {} // TODO(b/271868642): Add IfThisThanThat lint
+ public static final int CONNECTION_STATUS_CONNECTED = 10;
+
/**
* If editing this IntDef also edit the definition in:
* {@link android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus}
@@ -112,6 +126,7 @@ public class HotspotNetworkEntry extends WifiEntry {
HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT_FAILED,
HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT_TIMEOUT,
HotspotNetworkConnectionStatus.CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED,
+ CONNECTION_STATUS_CONNECTED,
})
public @interface ConnectionStatus {} // TODO(b/271868642): Add IfThisThanThat lint
@@ -205,10 +220,42 @@ public class HotspotNetworkEntry extends WifiEntry {
if (mCalledConnect) {
return mContext.getString(R.string.wifitrackerlib_hotspot_network_connecting);
}
- return mContext.getString(R.string.wifitrackerlib_hotspot_network_summary,
- BidiFormatter.getInstance().unicodeWrap(mHotspotNetworkData.getNetworkName()),
- BidiFormatter.getInstance().unicodeWrap(
- mHotspotNetworkData.getNetworkProviderInfo().getModelName()));
+ if (mConnectionError) {
+ switch (mLastStatus) {
+ case HotspotNetworkConnectionStatus.CONNECTION_STATUS_PROVISIONING_FAILED:
+ case HotspotNetworkConnectionStatus.CONNECTION_STATUS_TETHERING_TIMEOUT:
+ return mContext.getString(
+ R.string.wifitrackerlib_hotspot_network_summary_error_carrier_incomplete,
+ BidiFormatter.getInstance().unicodeWrap(
+ mHotspotNetworkData.getNetworkName()));
+ case HotspotNetworkConnectionStatus.CONNECTION_STATUS_TETHERING_UNSUPPORTED:
+ return mContext.getString(
+ R.string.wifitrackerlib_hotspot_network_summary_error_carrier_block,
+ BidiFormatter.getInstance().unicodeWrap(
+ mHotspotNetworkData.getNetworkName()));
+ case HotspotNetworkConnectionStatus.CONNECTION_STATUS_NO_CELL_DATA:
+ case HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT_FAILED:
+ case HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT_TIMEOUT:
+ case HotspotNetworkConnectionStatus.CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED:
+ MessageFormat msg = new MessageFormat(mContext.getString(
+ R.string.wifitrackerlib_hotspot_network_summary_error_settings));
+ Map<String, Object> args = new HashMap<>();
+ args.put(DEVICE_TYPE_KEY, getDeviceTypeId(
+ mHotspotNetworkData.getNetworkProviderInfo().getDeviceType()));
+ return msg.format(args);
+ case HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN_ERROR:
+ default:
+ return mContext.getString(
+ R.string.wifitrackerlib_hotspot_network_summary_error_generic);
+ }
+ }
+ MessageFormat msg = new MessageFormat(
+ mContext.getString(R.string.wifitrackerlib_hotspot_network_summary_new));
+ Map<String, Object> args = new HashMap<>();
+ args.put(DEVICE_TYPE_KEY,
+ getDeviceTypeId(mHotspotNetworkData.getNetworkProviderInfo().getDeviceType()));
+ args.put(NETWORK_NAME_KEY, mHotspotNetworkData.getNetworkName());
+ return msg.format(args);
}
/**
@@ -237,6 +284,7 @@ public class HotspotNetworkEntry extends WifiEntry {
@Override
@Nullable
+ @SuppressLint("HardwareIds")
public synchronized String getMacAddress() {
if (mWifiInfo == null) {
return null;
@@ -343,7 +391,14 @@ public class HotspotNetworkEntry extends WifiEntry {
if (mHotspotNetworkData == null) {
return false;
}
- return mHotspotNetworkData.getExtras().getBoolean("is_battery_charging", false);
+ if (BuildCompat.isAtLeastV()
+ && NonSdkApiWrapper.isNetworkProviderBatteryChargingStatusEnabled()
+ && mHotspotNetworkData.getNetworkProviderInfo().isBatteryCharging()) {
+ return true;
+ }
+ // With API flag on we still support either the API or the bundle for compatibility.
+ return mHotspotNetworkData.getNetworkProviderInfo().getExtras().getBoolean(
+ EXTRA_KEY_IS_BATTERY_CHARGING, false);
}
@Override
@@ -371,6 +426,7 @@ public class HotspotNetworkEntry extends WifiEntry {
@Override
public synchronized void disconnect(@Nullable DisconnectCallback callback) {
+ mCalledDisconnect = true;
mDisconnectCallback = callback;
if (mSharedConnectivityManager == null) {
if (callback != null) {
@@ -392,10 +448,11 @@ public class HotspotNetworkEntry extends WifiEntry {
* @param status HotspotNetworkConnectionStatus#ConnectionStatus enum.
*/
public void onConnectionStatusChanged(@ConnectionStatus int status) {
- if (mConnectCallback == null) return;
+ mLastStatus = status;
switch (status) {
case HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT:
mCalledConnect = true;
+ mConnectionError = false;
notifyOnUpdated();
break;
case HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN_ERROR:
@@ -406,9 +463,27 @@ public class HotspotNetworkEntry extends WifiEntry {
case HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT_FAILED:
case HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT_TIMEOUT:
case HotspotNetworkConnectionStatus.CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED:
- mCallbackHandler.post(() -> mConnectCallback.onConnectResult(
- ConnectCallback.CONNECT_STATUS_FAILURE_UNKNOWN));
+ mCallbackHandler.post(() -> {
+ final ConnectCallback connectCallback = mConnectCallback;
+ if (connectCallback != null) {
+ connectCallback.onConnectResult(
+ ConnectCallback.CONNECT_STATUS_FAILURE_UNKNOWN);
+ }
+ });
mCalledConnect = false;
+ mConnectionError = true;
+ notifyOnUpdated();
+ break;
+ case CONNECTION_STATUS_CONNECTED:
+ mCallbackHandler.post(() -> {
+ final ConnectCallback connectCallback = mConnectCallback;
+ if (connectCallback != null) {
+ connectCallback.onConnectResult(
+ ConnectCallback.CONNECT_STATUS_SUCCESS);
+ }
+ });
+ mCalledConnect = false;
+ mConnectionError = false;
notifyOnUpdated();
break;
default:
@@ -507,4 +582,21 @@ public class HotspotNetworkEntry extends WifiEntry {
return mScanResultKey;
}
}
+
+ private static String getDeviceTypeId(@DeviceType int deviceType) {
+ switch (deviceType) {
+ case NetworkProviderInfo.DEVICE_TYPE_PHONE:
+ return "PHONE";
+ case NetworkProviderInfo.DEVICE_TYPE_TABLET:
+ return "TABLET";
+ case NetworkProviderInfo.DEVICE_TYPE_LAPTOP:
+ return "COMPUTER";
+ case NetworkProviderInfo.DEVICE_TYPE_WATCH:
+ return "WATCH";
+ case NetworkProviderInfo.DEVICE_TYPE_AUTO:
+ return "VEHICLE";
+ default:
+ return "UNKNOWN";
+ }
+ }
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java
index 090592dea..78dd65b86 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java
@@ -19,8 +19,9 @@ package com.android.wifitrackerlib;
import static android.net.wifi.WifiInfo.DEFAULT_MAC_ADDRESS;
import static android.net.wifi.WifiInfo.sanitizeSsid;
-import static com.android.wifitrackerlib.Utils.getVerboseLoggingDescription;
+import static com.android.wifitrackerlib.Utils.getVerboseSummary;
+import android.annotation.SuppressLint;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Handler;
@@ -62,10 +63,10 @@ public class MergedCarrierEntry extends WifiEntry {
public String getSummary(boolean concise) {
StringJoiner sj = new StringJoiner(mContext.getString(
R.string.wifitrackerlib_summary_separator));
- if (!concise) {
- final String verboseLoggingDescription = getVerboseLoggingDescription(this);
- if (!TextUtils.isEmpty(verboseLoggingDescription)) {
- sj.add(verboseLoggingDescription);
+ if (!concise && isVerboseSummaryEnabled()) {
+ final String verboseSummary = getVerboseSummary(this);
+ if (!TextUtils.isEmpty(verboseSummary)) {
+ sj.add(verboseSummary);
}
}
return sj.toString();
@@ -80,6 +81,7 @@ public class MergedCarrierEntry extends WifiEntry {
}
@Override
+ @SuppressLint("HardwareIds")
public synchronized String getMacAddress() {
if (mWifiInfo != null) {
final String wifiInfoMac = mWifiInfo.getMacAddress();
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/NonSdkApiWrapper.java
index 0a71bcbe8..9b61c6646 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 static com.android.wifi.flags.Flags.networkProviderBatteryChargingStatus;
+
import android.app.admin.DevicePolicyManager;
import android.app.admin.WifiSsidPolicy;
import android.content.Context;
@@ -134,4 +136,11 @@ class NonSdkApiWrapper {
}
return null;
}
+
+ /**
+ * Whether the hotspot network provider battery charging status flag is enabled.
+ */
+ static boolean isNetworkProviderBatteryChargingStatusEnabled() {
+ return networkProviderBatteryChargingStatus();
+ }
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointNetworkDetailsTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointNetworkDetailsTracker.java
index d4c1b4ad1..63db0051f 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointNetworkDetailsTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointNetworkDetailsTracker.java
@@ -156,6 +156,10 @@ public class PasspointNetworkDetailsTracker extends NetworkDetailsTracker {
@WorkerThread
private void updateStartInfo() {
+ // Clear any stale connection info in case we missed any NetworkCallback.onLost() while in
+ // the stopped state.
+ mChosenEntry.clearConnectionInfo();
+
conditionallyUpdateScanResults(true /* lastScanSucceeded */);
conditionallyUpdateConfig();
Network currentNetwork = mWifiManager.getCurrentNetwork();
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
index cb500c23c..22a546b99 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
@@ -30,8 +30,9 @@ import static com.android.wifitrackerlib.Utils.getConnectedDescription;
import static com.android.wifitrackerlib.Utils.getConnectingDescription;
import static com.android.wifitrackerlib.Utils.getDisconnectedDescription;
import static com.android.wifitrackerlib.Utils.getMeteredDescription;
-import static com.android.wifitrackerlib.Utils.getVerboseLoggingDescription;
+import static com.android.wifitrackerlib.Utils.getVerboseSummary;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
@@ -181,10 +182,16 @@ public class PasspointWifiEntry extends WifiEntry implements WifiEntry.WifiEntry
connectedStateDescription = getConnectingDescription(mContext, mNetworkInfo);
break;
case CONNECTED_STATE_CONNECTED:
+ if (mNetworkCapabilities == null) {
+ Log.e(TAG, "Tried to get CONNECTED description, but mNetworkCapabilities"
+ + " was unexpectedly null!");
+ connectedStateDescription = null;
+ break;
+ }
connectedStateDescription = getConnectedDescription(mContext,
mWifiConfig,
mNetworkCapabilities,
- mIsDefaultNetwork,
+ isDefaultNetwork(),
isLowQuality(),
mConnectivityReport);
break;
@@ -207,10 +214,10 @@ public class PasspointWifiEntry extends WifiEntry implements WifiEntry.WifiEntry
sj.add(meteredDescription);
}
- if (!concise) {
- String verboseLoggingDescription = getVerboseLoggingDescription(this);
- if (!TextUtils.isEmpty(verboseLoggingDescription)) {
- sj.add(verboseLoggingDescription);
+ if (!concise && isVerboseSummaryEnabled()) {
+ String verboseSummary = getVerboseSummary(this);
+ if (!TextUtils.isEmpty(verboseSummary)) {
+ sj.add(verboseSummary);
}
}
@@ -218,6 +225,11 @@ public class PasspointWifiEntry extends WifiEntry implements WifiEntry.WifiEntry
}
@Override
+ public boolean shouldShowSsid() {
+ return true;
+ }
+
+ @Override
public synchronized String getSsid() {
if (mWifiInfo != null) {
return sanitizeSsid(mWifiInfo.getSSID());
@@ -243,6 +255,7 @@ public class PasspointWifiEntry extends WifiEntry implements WifiEntry.WifiEntry
}
@Override
+ @SuppressLint("HardwareIds")
public synchronized String getMacAddress() {
if (mWifiInfo != null) {
final String wifiInfoMac = mWifiInfo.getMacAddress();
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java
index fa9c320db..63b13aaa3 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java
@@ -229,16 +229,14 @@ public class SavedNetworkTracker extends BaseWifiTracker {
return allEntries;
}
- private void clearAllWifiEntries() {
- mStandardWifiEntryCache.clear();
- mPasspointWifiEntryCache.clear();
- }
-
@WorkerThread
@Override
protected void handleOnStart() {
- // Remove stale WifiEntries remaining from the last onStop().
- clearAllWifiEntries();
+ // Clear any stale connection info in case we missed any NetworkCallback.onLost() while in
+ // the stopped state.
+ for (WifiEntry wifiEntry : getAllWifiEntries()) {
+ wifiEntry.clearConnectionInfo();
+ }
// Update configs and scans
updateStandardWifiEntryConfigs(mWifiManager.getConfiguredNetworks());
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardNetworkDetailsTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardNetworkDetailsTracker.java
index 2accc2321..e21efc464 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardNetworkDetailsTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardNetworkDetailsTracker.java
@@ -131,6 +131,10 @@ public class StandardNetworkDetailsTracker extends NetworkDetailsTracker {
@WorkerThread
private void updateStartInfo() {
+ // Clear any stale connection info in case we missed any NetworkCallback.onLost() while in
+ // the stopped state.
+ mChosenEntry.clearConnectionInfo();
+
conditionallyUpdateScanResults(true /* lastScanSucceeded */);
conditionallyUpdateConfig();
handleDefaultSubscriptionChanged(SubscriptionManager.getDefaultDataSubscriptionId());
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
index 1c8e06c2c..246c7b36a 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
@@ -43,7 +43,7 @@ import static com.android.wifitrackerlib.Utils.getMeteredDescription;
import static com.android.wifitrackerlib.Utils.getSecurityTypesFromScanResult;
import static com.android.wifitrackerlib.Utils.getSecurityTypesFromWifiConfiguration;
import static com.android.wifitrackerlib.Utils.getSingleSecurityTypeFromMultipleSecurityTypes;
-import static com.android.wifitrackerlib.Utils.getVerboseLoggingDescription;
+import static com.android.wifitrackerlib.Utils.getVerboseSummary;
import android.annotation.SuppressLint;
import android.app.admin.DevicePolicyManager;
@@ -198,10 +198,16 @@ public class StandardWifiEntry extends WifiEntry {
connectedStateDescription = getConnectingDescription(mContext, mNetworkInfo);
break;
case CONNECTED_STATE_CONNECTED:
+ if (mNetworkCapabilities == null) {
+ Log.e(TAG, "Tried to get CONNECTED description, but mNetworkCapabilities was"
+ + " unexpectedly null!");
+ connectedStateDescription = null;
+ break;
+ }
connectedStateDescription = getConnectedDescription(mContext,
mTargetWifiConfig,
mNetworkCapabilities,
- mIsDefaultNetwork,
+ isDefaultNetwork(),
isLowQuality(),
mConnectivityReport);
break;
@@ -223,10 +229,10 @@ public class StandardWifiEntry extends WifiEntry {
sj.add(meteredDescription);
}
- if (!concise) {
- final String verboseLoggingDescription = getVerboseLoggingDescription(this);
- if (!TextUtils.isEmpty(verboseLoggingDescription)) {
- sj.add(verboseLoggingDescription);
+ if (!concise && isVerboseSummaryEnabled()) {
+ final String verboseSummary = getVerboseSummary(this);
+ if (!TextUtils.isEmpty(verboseSummary)) {
+ sj.add(verboseSummary);
}
}
@@ -245,6 +251,7 @@ public class StandardWifiEntry extends WifiEntry {
@Override
@Nullable
+ @SuppressLint("HardwareIds")
public synchronized String getMacAddress() {
if (mWifiInfo != null) {
final String wifiInfoMac = mWifiInfo.getMacAddress();
@@ -281,6 +288,14 @@ public class StandardWifiEntry extends WifiEntry {
}
@Override
+ public boolean needsWifiConfiguration() {
+ List<Integer> securityTypes = getSecurityTypes();
+ return !isSaved() && !isSuggestion()
+ && !securityTypes.contains(SECURITY_TYPE_OPEN)
+ && !securityTypes.contains(SECURITY_TYPE_OWE);
+ }
+
+ @Override
@Nullable
public synchronized WifiConfiguration getWifiConfiguration() {
if (!isSaved()) {
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
index ad5231d4e..af64a589b 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
@@ -29,6 +29,7 @@ import static android.net.wifi.WifiInfo.SECURITY_TYPE_SAE;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_WEP;
import static java.util.Comparator.comparingInt;
+import static java.util.stream.Collectors.toList;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
@@ -246,82 +247,85 @@ public class Utils {
static String getConnectedDescription(@NonNull Context context,
@Nullable WifiConfiguration wifiConfiguration,
- @Nullable NetworkCapabilities networkCapabilities,
+ @NonNull NetworkCapabilities networkCapabilities,
boolean isDefaultNetwork,
boolean isLowQuality,
@Nullable ConnectivityDiagnosticsManager.ConnectivityReport connectivityReport) {
final StringJoiner sj = new StringJoiner(context.getString(
R.string.wifitrackerlib_summary_separator));
- boolean shouldShowConnected = isDefaultNetwork;
+ boolean isValidated = networkCapabilities.hasCapability(
+ NetworkCapabilities.NET_CAPABILITY_VALIDATED);
+ boolean isCaptivePortal = networkCapabilities.hasCapability(
+ NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
+ boolean isPartialConnectivity = networkCapabilities.hasCapability(
+ NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY);
+ boolean isNoInternetExpected = wifiConfiguration != null
+ && wifiConfiguration.isNoInternetAccessExpected();
+ boolean isPrivateDnsBroken = !isValidated && networkCapabilities.isPrivateDnsBroken();
+ boolean isCheckingForInternetAccess = !isValidated && !isPartialConnectivity
+ && connectivityReport == null && !isNoInternetExpected;
+ boolean isOemNetwork = NonSdkApiWrapper.isOemCapabilities(networkCapabilities);
+ String suggestionOrSpecifierLabel = null;
if (wifiConfiguration != null
&& (wifiConfiguration.fromWifiNetworkSuggestion
|| wifiConfiguration.fromWifiNetworkSpecifier)) {
- // For suggestion or specifier networks to show "Connected via ..."
- final String suggestionOrSpecifierLabel =
- getSuggestionOrSpecifierLabel(context, wifiConfiguration);
- if (!TextUtils.isEmpty(suggestionOrSpecifierLabel)) {
- if (isDefaultNetwork || (networkCapabilities != null
- && NonSdkApiWrapper.isOemCapabilities(networkCapabilities))) {
- sj.add(context.getString(R.string.wifitrackerlib_connected_via_app,
- suggestionOrSpecifierLabel));
- } else {
- // Pretend that non-default, non-OEM networks are unconnected.
- sj.add(context.getString(R.string.wifitrackerlib_available_via_app,
- suggestionOrSpecifierLabel));
- }
- shouldShowConnected = false;
+ suggestionOrSpecifierLabel = getSuggestionOrSpecifierLabel(context, wifiConfiguration);
+ }
+ final boolean shouldShowConnected;
+ if (isValidated) {
+ shouldShowConnected = isDefaultNetwork;
+ } else {
+ // Show "Connected" even if we aren't validated specifically for the
+ // "Connected / No internet access" case, and for OEM-specified networks which aren't
+ // expected to be fully validated.
+ shouldShowConnected = !isCheckingForInternetAccess && !isCaptivePortal
+ && !isPrivateDnsBroken && !isNoInternetExpected || isOemNetwork;
+ }
+
+ if (!TextUtils.isEmpty(suggestionOrSpecifierLabel)) {
+ if (shouldShowConnected || (isDefaultNetwork && isPartialConnectivity)) {
+ // "Connected via app"
+ sj.add(context.getString(R.string.wifitrackerlib_connected_via_app,
+ suggestionOrSpecifierLabel));
+ } else {
+ // "Available via app"
+ sj.add(context.getString(R.string.wifitrackerlib_available_via_app,
+ suggestionOrSpecifierLabel));
}
+ } else if (shouldShowConnected) {
+ // "Connected"
+ sj.add(context.getResources().getStringArray(
+ R.array.wifitrackerlib_wifi_status)[DetailedState.CONNECTED.ordinal()]);
}
if (isLowQuality) {
+ // "Low quality"
sj.add(context.getString(R.string.wifi_connected_low_quality));
- shouldShowConnected = false;
- }
-
- // For displaying network capability info, such as captive portal or no internet
- if (networkCapabilities != null) {
- if (networkCapabilities.hasCapability(
- NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)) {
- // "Sign in to network"
- sj.add(context.getString(context.getResources()
- .getIdentifier("network_available_sign_in", "string", "android")));
- shouldShowConnected = false;
- } else if (networkCapabilities.hasCapability(
- NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
- // "Limited connection..."
- sj.add(context.getString(
- R.string.wifitrackerlib_wifi_limited_connection));
- shouldShowConnected = false;
- } else if (!networkCapabilities.hasCapability(
- NetworkCapabilities.NET_CAPABILITY_VALIDATED)) {
- boolean noInternetExpected = wifiConfiguration != null
- && wifiConfiguration.isNoInternetAccessExpected();
- if (connectivityReport == null && !noInternetExpected) {
- // "Checking for internet access..."
- sj.add(context.getString(R.string.wifitrackerlib_checking_for_internet_access));
- shouldShowConnected = false;
- } else if (networkCapabilities.isPrivateDnsBroken()) {
- // "Private DNS server cannot be accessed"
- sj.add(context.getString(R.string.wifitrackerlib_private_dns_broken));
- shouldShowConnected = false;
- } else if (noInternetExpected) {
- // "Connected to device. Can't provide internet."
- sj.add(context.getString(
- R.string.wifitrackerlib_wifi_connected_cannot_provide_internet));
- shouldShowConnected = false;
- } else {
- // "No internet access"
- sj.add(context.getString(R.string.wifitrackerlib_wifi_no_internet));
- }
- }
}
- // Show "Connected" first if we haven't hidden it due to other strings.
- if (shouldShowConnected) {
- return new StringJoiner(context.getString(R.string.wifitrackerlib_summary_separator))
- .add(context.getResources().getStringArray(R.array.wifitrackerlib_wifi_status)
- [DetailedState.CONNECTED.ordinal()]).merge(sj).toString();
+ if (isCaptivePortal) {
+ // "Sign in to network"
+ sj.add(context.getString(context.getResources().getIdentifier(
+ "network_available_sign_in", "string", "android")));
+ } else if (isPartialConnectivity) {
+ // "Limited connection..."
+ sj.add(context.getString(R.string.wifitrackerlib_wifi_limited_connection));
+ } else if (isCheckingForInternetAccess) {
+ // "Checking for internet access..."
+ sj.add(context.getString(R.string.wifitrackerlib_checking_for_internet_access));
+ } else if (isPrivateDnsBroken) {
+ // "Private DNS server cannot be accessed"
+ sj.add(context.getString(R.string.wifitrackerlib_private_dns_broken));
+ } else if (!isValidated) {
+ if (isNoInternetExpected) {
+ // "Connected to device. Can't provide internet."
+ sj.add(context.getString(
+ R.string.wifitrackerlib_wifi_connected_cannot_provide_internet));
+ } else {
+ // "No internet access"
+ sj.add(context.getString(R.string.wifitrackerlib_wifi_no_internet));
+ }
}
return sj.toString();
@@ -522,8 +526,8 @@ public class Utils {
}
}
- static String getVerboseLoggingDescription(@NonNull WifiEntry wifiEntry) {
- if (!BaseWifiTracker.isVerboseLoggingEnabled() || wifiEntry == null) {
+ static String getVerboseSummary(@NonNull WifiEntry wifiEntry) {
+ if (wifiEntry == null) {
return "";
}
@@ -1177,7 +1181,7 @@ public class Utils {
}
List<MloLink> activeMloLinks = wifiInfo.getAssociatedMloLinks().stream()
.filter((link) -> link.getState() == MloLink.MLO_LINK_STATE_ACTIVE)
- .toList();
+ .collect(toList());
if (activeMloLinks.size() <= 1) {
return context.getString(R.string.wifitrackerlib_link_speed_mbps,
wifiInfoSpeedMbps);
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
index 0dea00695..09dfd89e3 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
@@ -244,6 +244,7 @@ public class WifiEntry {
protected NetworkInfo mNetworkInfo;
protected Network mNetwork;
protected NetworkCapabilities mNetworkCapabilities;
+ protected Network mDefaultNetwork;
protected NetworkCapabilities mDefaultNetworkCapabilities;
protected ConnectivityDiagnosticsManager.ConnectivityReport mConnectivityReport;
protected ConnectedInfo mConnectedInfo;
@@ -255,7 +256,6 @@ public class WifiEntry {
protected boolean mCalledConnect = false;
protected boolean mCalledDisconnect = false;
- protected boolean mIsDefaultNetwork;
private Optional<ManageSubscriptionAction> mManageSubscriptionAction = Optional.empty();
@@ -358,7 +358,7 @@ public class WifiEntry {
* Returns whether this network has validated internet access or not.
* Note: This does not necessarily mean the network is the default route.
*/
- public boolean hasInternetAccess() {
+ public synchronized boolean hasInternetAccess() {
return mNetworkCapabilities != null
&& mNetworkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
}
@@ -368,13 +368,13 @@ public class WifiEntry {
* currently being used to provide internet connection).
*/
public boolean isDefaultNetwork() {
- return mIsDefaultNetwork;
+ return mNetwork != null && mNetwork.equals(mDefaultNetwork);
}
/**
* Returns whether this network is the primary Wi-Fi network or not.
*/
- public boolean isPrimaryNetwork() {
+ public synchronized boolean isPrimaryNetwork() {
if (getConnectedState() == CONNECTED_STATE_DISCONNECTED) {
// In case we have mNetworkInfo but the state is disconnected.
return false;
@@ -386,7 +386,7 @@ public class WifiEntry {
/**
* Returns whether this network is considered low quality.
*/
- public boolean isLowQuality() {
+ public synchronized boolean isLowQuality() {
if (!isPrimaryNetwork()) {
return false;
}
@@ -402,6 +402,14 @@ public class WifiEntry {
}
/**
+ * Returns whether this network should display its SSID separately from the title
+ * (e.g. the Network Details page), for networks whose display titles differ from the SSID.
+ */
+ public boolean shouldShowSsid() {
+ return false;
+ }
+
+ /**
* Returns the SSID of the entry, if applicable. Null otherwise.
*/
@Nullable
@@ -486,6 +494,14 @@ public class WifiEntry {
}
/**
+ * Returns whether this entry needs to be configured with a new WifiConfiguration before
+ * connection.
+ */
+ public boolean needsWifiConfiguration() {
+ return false;
+ }
+
+ /**
* Returns the WifiConfiguration of an entry or null if unavailable. This should be used when
* information on the WifiConfiguration needs to be modified and saved via
* {@link WifiManager#save(WifiConfiguration, WifiManager.ActionListener)}.
@@ -740,7 +756,7 @@ public class WifiEntry {
sb.append("hasInternet:")
.append(hasInternetAccess())
.append(", isDefaultNetwork:")
- .append(mIsDefaultNetwork)
+ .append(isDefaultNetwork())
.append(", isLowQuality:")
.append(isLowQuality());
}
@@ -912,10 +928,10 @@ public class WifiEntry {
}
return;
}
- mWifiInfo = primaryWifiInfo;
if (networkInfo != null) {
mNetworkInfo = networkInfo;
}
+ updateWifiInfo(primaryWifiInfo);
notifyOnUpdated();
}
@@ -949,9 +965,20 @@ public class WifiEntry {
// Connection info matches, so the Network/NetworkCapabilities represent this network
// and the network is currently connecting or connected.
- mWifiInfo = wifiInfo;
mNetwork = network;
mNetworkCapabilities = capabilities;
+ updateWifiInfo(wifiInfo);
+ notifyOnUpdated();
+ }
+
+ private synchronized void updateWifiInfo(WifiInfo wifiInfo) {
+ if (wifiInfo == null) {
+ mWifiInfo = null;
+ mConnectedInfo = null;
+ updateSecurityTypes();
+ return;
+ }
+ mWifiInfo = wifiInfo;
final int wifiInfoRssi = mWifiInfo.getRssi();
if (wifiInfoRssi != INVALID_RSSI) {
mLevel = mWifiManager.calculateSignalLevel(wifiInfoRssi);
@@ -976,7 +1003,6 @@ public class WifiEntry {
mConnectedInfo.wifiStandard = mWifiInfo.getWifiStandard();
}
updateSecurityTypes();
- notifyOnUpdated();
}
/**
@@ -987,14 +1013,18 @@ public class WifiEntry {
if (!network.equals(mNetwork)) {
return;
}
-
// Network matches, so this network is disconnected.
- mWifiInfo = null;
+ clearConnectionInfo();
+ }
+
+ /**
+ * Clears any connection info from this entry.
+ */
+ synchronized void clearConnectionInfo() {
+ updateWifiInfo(null);
mNetworkInfo = null;
mNetworkCapabilities = null;
- mConnectedInfo = null;
mConnectivityReport = null;
- mIsDefaultNetwork = false;
if (mCalledDisconnect) {
mCalledDisconnect = false;
mCallbackHandler.post(() -> {
@@ -1005,7 +1035,6 @@ public class WifiEntry {
}
});
}
- updateSecurityTypes();
notifyOnUpdated();
}
@@ -1016,9 +1045,8 @@ public class WifiEntry {
synchronized void onDefaultNetworkCapabilitiesChanged(
@NonNull Network network,
@NonNull NetworkCapabilities capabilities) {
- onNetworkCapabilitiesChanged(network, capabilities);
+ mDefaultNetwork = network;
mDefaultNetworkCapabilities = capabilities;
- mIsDefaultNetwork = network.equals(mNetwork);
notifyOnUpdated();
}
@@ -1026,8 +1054,8 @@ public class WifiEntry {
* Notifies this WifiEntry that the default network was lost.
*/
synchronized void onDefaultNetworkLost() {
+ mDefaultNetwork = null;
mDefaultNetworkCapabilities = null;
- mIsDefaultNetwork = false;
notifyOnUpdated();
}
@@ -1239,4 +1267,11 @@ public class WifiEntry {
*/
void onExecute();
}
+
+ /**
+ * Whether this WifiEntry is using a verbose summary.
+ */
+ public boolean isVerboseSummaryEnabled() {
+ return mInjector.isVerboseSummaryEnabled();
+ }
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
index 4abffbaf8..3ee9a4dad 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
@@ -60,6 +60,7 @@ import android.util.SparseArray;
import androidx.annotation.AnyThread;
import androidx.annotation.GuardedBy;
+import androidx.annotation.IntDef;
import androidx.annotation.MainThread;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -68,6 +69,8 @@ import androidx.annotation.WorkerThread;
import androidx.core.os.BuildCompat;
import androidx.lifecycle.Lifecycle;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.time.Clock;
import java.util.ArrayList;
import java.util.Collections;
@@ -92,6 +95,9 @@ public class WifiPickerTracker extends BaseWifiTracker {
private static final String TAG = "WifiPickerTracker";
+ private static final String EXTRA_KEY_CONNECTION_STATUS_CONNECTED =
+ "connection_status_connected";
+
private final WifiPickerTrackerCallback mListener;
// Lock object for data returned by the public API
@@ -293,8 +299,11 @@ public class WifiPickerTracker extends BaseWifiTracker {
@WorkerThread
@Override
protected void handleOnStart() {
- // Remove stale WifiEntries remaining from the last onStop().
- clearAllWifiEntries();
+ // Clear any stale connection info in case we missed any NetworkCallback.onLost() while in
+ // the stopped state.
+ for (WifiEntry wifiEntry : getAllWifiEntries()) {
+ wifiEntry.clearConnectionInfo();
+ }
// Update configs and scans
updateWifiConfigurations(mWifiManager.getPrivilegedConfiguredNetworks());
@@ -341,7 +350,7 @@ public class WifiPickerTracker extends BaseWifiTracker {
checkNotNull(intent, "Intent cannot be null!");
conditionallyUpdateScanResults(
intent.getBooleanExtra(WifiManager.EXTRA_RESULTS_UPDATED, true));
- updateWifiEntries();
+ updateWifiEntries(WIFI_ENTRIES_CHANGED_REASON_SCAN_RESULTS);
}
@WorkerThread
@@ -358,17 +367,7 @@ public class WifiPickerTracker extends BaseWifiTracker {
updateWifiConfigurations(mWifiManager.getPrivilegedConfiguredNetworks());
updatePasspointConfigurations(mWifiManager.getPasspointConfigurations());
// Update scans since config changes may result in different entries being shown.
- final List<ScanResult> scanResults = mScanResultUpdater.getScanResults();
- updateStandardWifiEntryScans(scanResults);
- updateNetworkRequestEntryScans(scanResults);
- updatePasspointWifiEntryScans(scanResults);
- updateOsuWifiEntryScans(scanResults);
- if (mInjector.isSharedConnectivityFeatureEnabled() && BuildCompat.isAtLeastU()) {
- updateKnownNetworkEntryScans(scanResults);
- // Updating the hotspot entries here makes the UI more reliable when switching pages or
- // when toggling settings while the internet picker is shown.
- updateHotspotNetworkEntries();
- }
+ conditionallyUpdateScanResults(false /* lastScanSucceeded */);
notifyOnNumSavedNetworksChanged();
notifyOnNumSavedSubscriptionsChanged();
updateWifiEntries();
@@ -483,15 +482,25 @@ public class WifiPickerTracker extends BaseWifiTracker {
updateWifiEntries();
}
}
- @TargetApi(VERSION_CODES.UPSIDE_DOWN_CAKE)
- @WorkerThread
- protected void handleHotspotNetworkConnectionStatusChanged(
- @NonNull HotspotNetworkConnectionStatus status) {
- mHotspotNetworkEntryCache.stream().filter(
- entry -> entry.getHotspotNetworkEntryKey().getDeviceId()
- == status.getHotspotNetwork().getDeviceId()).forEach(
- entry -> entry.onConnectionStatusChanged(status.getStatus()));
- }
+
+ @TargetApi(VERSION_CODES.UPSIDE_DOWN_CAKE)
+ @WorkerThread
+ protected void handleHotspotNetworkConnectionStatusChanged(
+ @NonNull HotspotNetworkConnectionStatus status) {
+ mHotspotNetworkEntryCache.stream()
+ .filter(
+ entry ->
+ entry.getHotspotNetworkEntryKey().getDeviceId()
+ == status.getHotspotNetwork().getDeviceId())
+ .forEach(
+ entry -> {
+ if (status.getExtras().getBoolean(EXTRA_KEY_CONNECTION_STATUS_CONNECTED, false)) {
+ entry.onConnectionStatusChanged(HotspotNetworkEntry.CONNECTION_STATUS_CONNECTED);
+ } else {
+ entry.onConnectionStatusChanged(status.getStatus());
+ }
+ });
+ }
@TargetApi(VERSION_CODES.UPSIDE_DOWN_CAKE)
@WorkerThread
@@ -499,7 +508,7 @@ public class WifiPickerTracker extends BaseWifiTracker {
protected void handleKnownNetworkConnectionStatusChanged(
@NonNull KnownNetworkConnectionStatus status) {
final ScanResultKey key = new ScanResultKey(status.getKnownNetwork().getSsid(),
- status.getKnownNetwork().getSecurityTypes().stream().toList());
+ new ArrayList<>(status.getKnownNetwork().getSecurityTypes()));
mKnownNetworkEntryCache.stream().filter(
entry -> entry.getStandardWifiEntryKey().getScanResultKey().equals(key)).forEach(
entry -> entry.onConnectionStatusChanged(status.getStatus()));
@@ -511,11 +520,22 @@ public class WifiPickerTracker extends BaseWifiTracker {
protected void handleServiceConnected() {
if (mInjector.isSharedConnectivityFeatureEnabled()) {
mKnownNetworkDataCache.clear();
- mKnownNetworkDataCache.addAll(mSharedConnectivityManager.getKnownNetworks());
+ List<KnownNetwork> knownNetworks = mSharedConnectivityManager.getKnownNetworks();
+ if (knownNetworks != null) {
+ mKnownNetworkDataCache.addAll(knownNetworks);
+ }
mHotspotNetworkDataCache.clear();
- mHotspotNetworkDataCache.addAll(mSharedConnectivityManager.getHotspotNetworks());
+ List<HotspotNetwork> hotspotNetworks = mSharedConnectivityManager.getHotspotNetworks();
+ if (hotspotNetworks != null) {
+ mHotspotNetworkDataCache.addAll(hotspotNetworks);
+ }
updateKnownNetworkEntryScans(mScanResultUpdater.getScanResults());
updateHotspotNetworkEntries();
+ HotspotNetworkConnectionStatus status =
+ mSharedConnectivityManager.getHotspotNetworkConnectionStatus();
+ if (status != null) {
+ handleHotspotNetworkConnectionStatusChanged(status);
+ }
updateWifiEntries();
}
}
@@ -533,11 +553,7 @@ public class WifiPickerTracker extends BaseWifiTracker {
}
}
- /**
- * Update the list returned by getWifiEntries() with the current states of the entry caches.
- */
- @WorkerThread
- protected void updateWifiEntries() {
+ protected void updateWifiEntries(@WifiEntriesChangedReason int reason) {
synchronized (mLock) {
mActiveWifiEntries.clear();
mActiveWifiEntries.addAll(mStandardWifiEntryCache);
@@ -646,6 +662,7 @@ public class WifiPickerTracker extends BaseWifiTracker {
}
Collections.sort(mWifiEntries, WifiEntry.WIFI_PICKER_COMPARATOR);
if (isVerboseLoggingEnabled()) {
+ Log.v(TAG, "onWifiEntriesChanged: reason=" + reason);
StringJoiner entryLog = new StringJoiner("\n");
int numEntries = mActiveWifiEntries.size() + mWifiEntries.size();
int index = 1;
@@ -661,7 +678,16 @@ public class WifiPickerTracker extends BaseWifiTracker {
Log.v(TAG, "MergedCarrierEntry: " + mMergedCarrierEntry);
}
}
- notifyOnWifiEntriesChanged();
+ notifyOnWifiEntriesChanged(reason);
+ }
+
+
+ /**
+ * Update the list returned by getWifiEntries() with the current states of the entry caches.
+ */
+ @WorkerThread
+ protected void updateWifiEntries() {
+ updateWifiEntries(WIFI_ENTRIES_CHANGED_REASON_GENERAL);
}
/**
@@ -700,7 +726,7 @@ public class WifiPickerTracker extends BaseWifiTracker {
}
}
}
- notifyOnWifiEntriesChanged();
+ notifyOnWifiEntriesChanged(WIFI_ENTRIES_CHANGED_REASON_GENERAL);
}
/**
@@ -1334,9 +1360,9 @@ public class WifiPickerTracker extends BaseWifiTracker {
* Posts onWifiEntryChanged callback on the main thread.
*/
@WorkerThread
- private void notifyOnWifiEntriesChanged() {
+ private void notifyOnWifiEntriesChanged(@WifiEntriesChangedReason int reason) {
if (mListener != null) {
- mMainHandler.post(mListener::onWifiEntriesChanged);
+ mMainHandler.post(() -> mListener.onWifiEntriesChanged(reason));
}
}
@@ -1360,6 +1386,17 @@ public class WifiPickerTracker extends BaseWifiTracker {
}
}
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(value = {
+ WIFI_ENTRIES_CHANGED_REASON_GENERAL,
+ WIFI_ENTRIES_CHANGED_REASON_SCAN_RESULTS,
+ })
+
+ public @interface WifiEntriesChangedReason {}
+
+ public static final int WIFI_ENTRIES_CHANGED_REASON_GENERAL = 0;
+ public static final int WIFI_ENTRIES_CHANGED_REASON_SCAN_RESULTS = 1;
+
/**
* Listener for changes to the list of visible WifiEntries as well as the number of saved
* networks and subscriptions.
@@ -1374,7 +1411,20 @@ public class WifiPickerTracker extends BaseWifiTracker {
* {@link #getMergedCarrierEntry()}
*/
@MainThread
- void onWifiEntriesChanged();
+ default void onWifiEntriesChanged() {
+ // Do nothing
+ }
+
+ /**
+ * Called when there are changes to
+ * {@link #getConnectedWifiEntry()}
+ * {@link #getWifiEntries()}
+ * {@link #getMergedCarrierEntry()}
+ */
+ @MainThread
+ default void onWifiEntriesChanged(@WifiEntriesChangedReason int reason) {
+ onWifiEntriesChanged();
+ }
/**
* Called when there are changes to
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiTrackerInjector.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiTrackerInjector.java
index f9f3eed91..c70a88a41 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiTrackerInjector.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiTrackerInjector.java
@@ -18,6 +18,8 @@ package com.android.wifitrackerlib;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
+import android.net.wifi.WifiManager;
+import android.os.Build;
import android.os.UserManager;
import android.provider.DeviceConfig;
import android.util.ArraySet;
@@ -34,13 +36,17 @@ public class WifiTrackerInjector {
@NonNull private final Context mContext;
private final boolean mIsDemoMode;
+ private final WifiManager mWifiManager;
private final UserManager mUserManager;
private final DevicePolicyManager mDevicePolicyManager;
@NonNull private final Set<String> mNoAttributionAnnotationPackages;
+ private boolean mIsUserDebugVerboseLoggingEnabled;
+ private boolean mVerboseLoggingDisabledOverride = false;
// TODO(b/201571677): Migrate the rest of the common objects to WifiTrackerInjector.
WifiTrackerInjector(@NonNull Context context) {
mContext = context;
+ mWifiManager = context.getSystemService(WifiManager.class);
mIsDemoMode = NonSdkApiWrapper.isDemoMode(context);
mUserManager = context.getSystemService(UserManager.class);
mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
@@ -50,6 +56,9 @@ public class WifiTrackerInjector {
for (int i = 0; i < noAttributionAnnotationPackages.length; i++) {
mNoAttributionAnnotationPackages.add(noAttributionAnnotationPackages[i]);
}
+ mIsUserDebugVerboseLoggingEnabled = context.getResources().getBoolean(
+ R.bool.wifitrackerlib_enable_verbose_logging_for_userdebug)
+ && Build.TYPE.equals("userdebug");
}
@NonNull Context getContext() {
@@ -79,4 +88,26 @@ public class WifiTrackerInjector {
return DeviceConfig.getBoolean(DEVICE_CONFIG_NAMESPACE,
"shared_connectivity_enabled", false);
}
+
+ /**
+ * Whether verbose logging is enabled.
+ */
+ public boolean isVerboseLoggingEnabled() {
+ return !mVerboseLoggingDisabledOverride
+ && (mWifiManager.isVerboseLoggingEnabled() || mIsUserDebugVerboseLoggingEnabled);
+ }
+
+ /**
+ * Whether verbose summaries should be shown in WifiEntry.
+ */
+ public boolean isVerboseSummaryEnabled() {
+ return !mVerboseLoggingDisabledOverride && mWifiManager.isVerboseLoggingEnabled();
+ }
+
+ /**
+ * Permanently disables verbose logging.
+ */
+ public void disableVerboseLogging() {
+ mVerboseLoggingDisabledOverride = true;
+ }
}
diff --git a/libs/WifiTrackerLib/tests/Android.bp b/libs/WifiTrackerLib/tests/Android.bp
index c7c30f59d..270feaf07 100644
--- a/libs/WifiTrackerLib/tests/Android.bp
+++ b/libs/WifiTrackerLib/tests/Android.bp
@@ -24,6 +24,7 @@ java_defaults {
static_libs: [
"androidx.test.rules",
"frameworks-base-testutils",
+ "flag-junit",
"mockito-target-extended-minus-junit4",
"truth",
"Robolectric_all-target_upstream",
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java
index 4bb599480..dedf4af01 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java
@@ -20,6 +20,8 @@ import static android.net.wifi.ScanResult.WIFI_STANDARD_11N;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_PSK;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_SAE;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_CONNECTED;
import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_DISCONNECTED;
import static com.android.wifitrackerlib.WifiEntry.MIN_FREQ_24GHZ;
@@ -46,15 +48,24 @@ import android.net.wifi.sharedconnectivity.app.HotspotNetwork;
import android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.NetworkProviderInfo;
import android.net.wifi.sharedconnectivity.app.SharedConnectivityManager;
+import android.os.Bundle;
import android.os.Handler;
import android.os.test.TestLooper;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.mockito.MockitoSession;
public class HotspotNetworkEntryTest {
+ @Rule
+ public final CheckFlagsRule mCheckFlagsRule =
+ DeviceFlagsValueProvider.createCheckFlagsRule();
+
@Mock private WifiEntry.WifiEntryCallback mMockListener;
@Mock private WifiEntry.ConnectCallback mMockConnectCallback;
@Mock private WifiEntry.DisconnectCallback mMockDisconnectCallback;
@@ -73,7 +84,7 @@ public class HotspotNetworkEntryTest {
private static final HotspotNetwork TEST_HOTSPOT_NETWORK_DATA = new HotspotNetwork.Builder()
.setDeviceId(1)
.setNetworkProviderInfo(new NetworkProviderInfo
- .Builder("My Phone", "Pixel 7")
+ .Builder("My Pixel", "Pixel 7")
.setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
.setBatteryPercentage(100)
.setConnectionStrength(3)
@@ -108,9 +119,38 @@ public class HotspotNetworkEntryTest {
Object[] args = invocation.getArguments();
return args[1] + " from " + args[2];
});
+ when(mMockContext.getString(R.string.wifitrackerlib_hotspot_network_summary_new))
+ .thenReturn(
+ "{DEVICE_TYPE, select, PHONE {{NETWORK_NAME} from your phone} TABLET "
+ + "{{NETWORK_NAME} from your tablet} COMPUTER {{NETWORK_NAME} "
+ + "from your computer} WATCH {{NETWORK_NAME} from your watch} "
+ + "VEHICLE {{NETWORK_NAME} from your vehicle} other "
+ + "{{NETWORK_NAME} from your device}}");
+ when(mMockContext.getString(R.string.wifitrackerlib_hotspot_network_summary_error_generic))
+ .thenReturn("Can't connect. Try connecting again.");
+ when(mMockContext.getString(R.string.wifitrackerlib_hotspot_network_summary_error_settings))
+ .thenReturn(
+ "{DEVICE_TYPE, select, PHONE {Can't connect. Check phone settings and try"
+ + " again.} TABLET {Can't connect. Check tablet settings and try "
+ + "again.} COMPUTER {Can't connect. Check computer settings and "
+ + "try again.} WATCH {Can't connect. Check watch settings and try"
+ + " again.} VEHICLE {Can't connect. Check vehicle settings and "
+ + "try again.} other {Can't connect. Check device settings and "
+ + "try again.}}");
+ when(mMockContext.getString(
+ eq(R.string.wifitrackerlib_hotspot_network_summary_error_carrier_block),
+ anyString())).thenAnswer(invocation -> {
+ Object[] args = invocation.getArguments();
+ return args[1] + " doesn't allow this connection";
+ });
+ when(mMockContext.getString(
+ eq(R.string.wifitrackerlib_hotspot_network_summary_error_carrier_incomplete),
+ anyString())).thenAnswer(invocation -> {
+ Object[] args = invocation.getArguments();
+ return "Can't connect. Contact " + args[1] + " for help.";
+ });
when(mMockContext.getString(eq(R.string.wifitrackerlib_hotspot_network_alternate),
- anyString(), anyString()))
- .thenAnswer(invocation -> {
+ anyString(), anyString())).thenAnswer(invocation -> {
Object[] args = invocation.getArguments();
return args[1] + " from " + args[2];
});
@@ -190,16 +230,126 @@ public class HotspotNetworkEntryTest {
mMockInjector, mMockContext, mTestHandler,
mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
- assertThat(entry.getTitle()).isEqualTo("My Phone");
+ assertThat(entry.getTitle()).isEqualTo("My Pixel");
}
@Test
- public void testGetSummary_usesHotspotNetworkData() {
+ public void testGetSummary_phone_usesHotspotNetworkData() {
final HotspotNetworkEntry entry = new HotspotNetworkEntry(
mMockInjector, mMockContext, mTestHandler,
mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
- assertThat(entry.getSummary()).isEqualTo("Google Fi from Pixel 7");
+ assertThat(entry.getSummary()).isEqualTo("Google Fi from your phone");
+ }
+
+ @Test
+ public void testGetSummary_tablet_usesHotspotNetworkData() {
+ HotspotNetwork testNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Pixel", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_TABLET)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build();
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler, mMockWifiManager,
+ mMockSharedConnectivityManager, testNetwork);
+
+ assertThat(entry.getSummary()).isEqualTo("Google Fi from your tablet");
+ }
+
+ @Test
+ public void testGetSummary_computer_usesHotspotNetworkData() {
+ HotspotNetwork testNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Pixel", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_LAPTOP)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build();
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler, mMockWifiManager,
+ mMockSharedConnectivityManager, testNetwork);
+
+ assertThat(entry.getSummary()).isEqualTo("Google Fi from your computer");
+ }
+
+ @Test
+ public void testGetSummary_watch_usesHotspotNetworkData() {
+ HotspotNetwork testNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Pixel", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_WATCH)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build();
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler, mMockWifiManager,
+ mMockSharedConnectivityManager, testNetwork);
+
+ assertThat(entry.getSummary()).isEqualTo("Google Fi from your watch");
+ }
+
+ @Test
+ public void testGetSummary_vehicle_usesHotspotNetworkData() {
+ HotspotNetwork testNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Pixel", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_AUTO)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build();
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler, mMockWifiManager,
+ mMockSharedConnectivityManager, testNetwork);
+
+ assertThat(entry.getSummary()).isEqualTo("Google Fi from your vehicle");
+ }
+
+ @Test
+ public void testGetSummary_unknown_usesHotspotNetworkData() {
+ HotspotNetwork testNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Pixel", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_UNKNOWN)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build();
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler, mMockWifiManager,
+ mMockSharedConnectivityManager, testNetwork);
+
+ assertThat(entry.getSummary()).isEqualTo("Google Fi from your device");
}
@Test
@@ -208,7 +358,7 @@ public class HotspotNetworkEntryTest {
mMockInjector, mMockContext, mTestHandler,
mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
- assertThat(entry.getAlternateSummary()).isEqualTo("Google Fi from My Phone");
+ assertThat(entry.getAlternateSummary()).isEqualTo("Google Fi from My Pixel");
}
@Test
@@ -358,6 +508,192 @@ public class HotspotNetworkEntryTest {
}
@Test
+ public void testIsBatteryCharging_apiFlagOn_usesHotspotNetworkDataApi() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager,
+ new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .setBatteryCharging(true)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build());
+
+ MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+ try {
+ doReturn(true).when(() ->
+ NonSdkApiWrapper.isNetworkProviderBatteryChargingStatusEnabled());
+ assertThat(entry.isBatteryCharging()).isTrue();
+ } finally {
+ session.finishMocking();
+ }
+ }
+
+ @Test
+ public void testIsBatteryCharging_apiFlagOn_usesHotspotNetworkDataExtras() {
+ final Bundle extras = new Bundle();
+ extras.putBoolean(HotspotNetworkEntry.EXTRA_KEY_IS_BATTERY_CHARGING, true);
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager,
+ new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .setBatteryCharging(false)
+ .setExtras(extras)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build());
+
+ MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+ try {
+ doReturn(true).when(() ->
+ NonSdkApiWrapper.isNetworkProviderBatteryChargingStatusEnabled());
+ assertThat(entry.isBatteryCharging()).isTrue();
+ } finally {
+ session.finishMocking();
+ }
+ }
+
+ @Test
+ public void testIsBatteryCharging_apiFlagOff_usesHotspotNetworkDataExtras() {
+ final Bundle extras = new Bundle();
+ extras.putBoolean(HotspotNetworkEntry.EXTRA_KEY_IS_BATTERY_CHARGING, true);
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager,
+ new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .setExtras(extras)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build());
+
+ MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+ try {
+ doReturn(false).when(() ->
+ NonSdkApiWrapper.isNetworkProviderBatteryChargingStatusEnabled());
+ assertThat(entry.isBatteryCharging()).isTrue();
+ } finally {
+ session.finishMocking();
+ }
+ }
+
+ @Test
+ public void testIsBatteryCharging_apiFlagOn_extraFalse() {
+ final Bundle extras = new Bundle();
+ extras.putBoolean(HotspotNetworkEntry.EXTRA_KEY_IS_BATTERY_CHARGING, false);
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager,
+ new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .setExtras(extras)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build());
+
+ MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+ try {
+ doReturn(true).when(() ->
+ NonSdkApiWrapper.isNetworkProviderBatteryChargingStatusEnabled());
+ assertThat(entry.isBatteryCharging()).isFalse();
+ } finally {
+ session.finishMocking();
+ }
+ }
+
+ @Test
+ public void testIsBatteryCharging_apiFlagOn_apiFalse() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager,
+ new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .setBatteryCharging(false)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build());
+
+ MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+ try {
+ doReturn(true).when(() ->
+ NonSdkApiWrapper.isNetworkProviderBatteryChargingStatusEnabled());
+ assertThat(entry.isBatteryCharging()).isFalse();
+ } finally {
+ session.finishMocking();
+ }
+ }
+
+ @Test
+ public void testIsBatteryCharging_apiFlagOn_noneSet() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager,
+ new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build());
+
+ MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+ try {
+ doReturn(true).when(() ->
+ NonSdkApiWrapper.isNetworkProviderBatteryChargingStatusEnabled());
+ assertThat(entry.isBatteryCharging()).isFalse();
+ } finally {
+ session.finishMocking();
+ }
+ }
+
+ @Test
public void testGetLevel_statusNotConnected_returnsMaxValue() {
final HotspotNetworkEntry entry = new HotspotNetworkEntry(
mMockInjector, mMockContext, mTestHandler,
@@ -475,4 +811,294 @@ public class HotspotNetworkEntryTest {
verify(mMockDisconnectCallback)
.onDisconnectResult(WifiEntry.DisconnectCallback.DISCONNECT_STATUS_FAILURE_UNKNOWN);
}
+
+ @Test
+ public void testOnConnectionStatusChanged_withoutConnect_updatesString() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+
+ entry.setListener(mMockListener);
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo("Connecting…");
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN_ERROR);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isNotEqualTo("Connecting…");
+ }
+
+ @Test
+ public void testOnConnectionStatusChanged_connectedStatus_updatesString() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.setListener(mMockListener);
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT);
+ mTestLooper.dispatchAll();
+ assertThat(entry.getSummary()).isEqualTo("Connecting…");
+
+ entry.onConnectionStatusChanged(HotspotNetworkEntry.CONNECTION_STATUS_CONNECTED);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isNotEqualTo("Connecting…");
+ }
+
+ @Test
+ public void testOnConnectionStatusChanged_connectedStatus_callsCallback() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.setListener(mMockListener);
+ entry.connect(mMockConnectCallback);
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT);
+ mTestLooper.dispatchAll();
+ verify(mMockConnectCallback, never()).onConnectResult(anyInt());
+
+ entry.onConnectionStatusChanged(HotspotNetworkEntry.CONNECTION_STATUS_CONNECTED);
+ mTestLooper.dispatchAll();
+
+ verify(mMockConnectCallback)
+ .onConnectResult(WifiEntry.ConnectCallback.CONNECT_STATUS_SUCCESS);
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusFailureGeneric_displaysErrorInSummary() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.setListener(mMockListener);
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN_ERROR);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo("Can't connect. Try connecting again.");
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusFailureSettings_phone_displaysErrorInSummary() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.setListener(mMockListener);
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo(
+ "Can't connect. Check phone settings and try again.");
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusFailureSettings_tablet_displaysErrorInSummary() {
+ HotspotNetwork testNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Pixel", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_TABLET)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build();
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, testNetwork);
+ entry.setListener(mMockListener);
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo(
+ "Can't connect. Check tablet settings and try again.");
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusFailureSettings_computer_displaysErrorInSummary() {
+ HotspotNetwork testNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Pixel", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_LAPTOP)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build();
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, testNetwork);
+ entry.setListener(mMockListener);
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo(
+ "Can't connect. Check computer settings and try again.");
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusFailureSettings_watch_displaysErrorInSummary() {
+ HotspotNetwork testNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Pixel", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_WATCH)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build();
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, testNetwork);
+ entry.setListener(mMockListener);
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo(
+ "Can't connect. Check watch settings and try again.");
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusFailureSettings_vehicle_displaysErrorInSummary() {
+ HotspotNetwork testNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Pixel", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_AUTO)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build();
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, testNetwork);
+ entry.setListener(mMockListener);
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo(
+ "Can't connect. Check vehicle settings and try again.");
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusFailureSettings_unknown_displaysErrorInSummary() {
+ HotspotNetwork testNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Pixel", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_UNKNOWN)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .build();
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, testNetwork);
+ entry.setListener(mMockListener);
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo(
+ "Can't connect. Check device settings and try again.");
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusFailureCarrierBlock_displaysErrorInSummary() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.setListener(mMockListener);
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_TETHERING_UNSUPPORTED);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo("Google Fi doesn't allow this connection");
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusFailureCarrierIncomplete_displaysErrorInSummary() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.setListener(mMockListener);
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_TETHERING_TIMEOUT);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isEqualTo("Can't connect. Contact Google Fi for help.");
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusConnecting_resetsErrorString() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.setListener(mMockListener);
+ entry.connect(mMockConnectCallback);
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN_ERROR);
+ mTestLooper.dispatchAll();
+ assertThat(entry.getSummary()).isEqualTo("Can't connect. Try connecting again.");
+
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isNotEqualTo("Can't connect. Try connecting again.");
+ }
+
+ @Test
+ public void testGetSummary_connectionStatusConnected_resetsErrorString() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.setListener(mMockListener);
+ entry.connect(mMockConnectCallback);
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN_ERROR);
+ mTestLooper.dispatchAll();
+ assertThat(entry.getSummary()).isEqualTo("Can't connect. Try connecting again.");
+
+ entry.onConnectionStatusChanged(HotspotNetworkEntry.CONNECTION_STATUS_CONNECTED);
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getSummary()).isNotEqualTo("Can't connect. Try connecting again.");
+ }
}
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/SavedNetworkTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/SavedNetworkTrackerTest.java
index 616ac3a5f..d5a29767f 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/SavedNetworkTrackerTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/SavedNetworkTrackerTest.java
@@ -548,6 +548,40 @@ public class SavedNetworkTrackerTest {
}
/**
+ * Tests that disconnecting from a network during the stopped state will result in the network
+ * being disconnected once we've started again.
+ */
+ @Test
+ public void testGetConnectedEntry_disconnectFromNetworkWhileStopped_becomesDisconnected() {
+ final SavedNetworkTracker savedNetworkTracker = createTestSavedNetworkTracker();
+ final WifiConfiguration config = new WifiConfiguration();
+ config.SSID = "\"ssid\"";
+ config.networkId = 1;
+ when(mMockWifiManager.getConfiguredNetworks())
+ .thenReturn(Collections.singletonList(config));
+ when(mMockWifiManager.getScanResults()).thenReturn(Arrays.asList(
+ buildScanResult("ssid", "bssid", START_MILLIS)));
+ when(mMockWifiInfo.getNetworkId()).thenReturn(1);
+ when(mMockWifiInfo.getRssi()).thenReturn(-50);
+ savedNetworkTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockConnectivityManager).registerNetworkCallback(
+ any(), mNetworkCallbackCaptor.capture(), any());
+
+ final WifiEntry entry = savedNetworkTracker.getSavedWifiEntries().get(0);
+ assertThat(entry.getConnectedState()).isEqualTo(CONNECTED_STATE_CONNECTED);
+
+ // Simulate network disconnecting while in stopped state
+ savedNetworkTracker.onStop();
+ mTestLooper.dispatchAll();
+ when(mMockWifiManager.getCurrentNetwork()).thenReturn(null);
+ savedNetworkTracker.onStart();
+ mTestLooper.dispatchAll();
+
+ assertThat(entry.getConnectedState()).isEqualTo(WifiEntry.CONNECTED_STATE_DISCONNECTED);
+ }
+
+ /**
* Tests that getConnectedEntry() will return the correct primary network after an MBB sequence.
*/
@Test
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
index ebb24d987..6cfde1907 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
@@ -345,7 +345,7 @@ public class StandardWifiEntryTest {
ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_EAP),
null, Arrays.asList(scan), mMockWifiManager,
false /* forSavedNetworksPage */);
-
+ assertThat(entry.needsWifiConfiguration()).isTrue();
assertThat(entry.isSaved()).isFalse();
final WifiConfiguration config = new WifiConfiguration();
@@ -354,6 +354,7 @@ public class StandardWifiEntryTest {
config.networkId = 1;
entry.updateConfig(Collections.singletonList(config));
+ assertThat(entry.needsWifiConfiguration()).isFalse();
assertThat(entry.isSaved()).isTrue();
}
@@ -368,11 +369,12 @@ public class StandardWifiEntryTest {
ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_EAP),
Collections.singletonList(config), null, mMockWifiManager,
false /* forSavedNetworksPage */);
-
+ assertThat(entry.needsWifiConfiguration()).isFalse();
assertThat(entry.isSaved()).isTrue();
entry.updateConfig(null);
+ assertThat(entry.needsWifiConfiguration()).isTrue();
assertThat(entry.isSaved()).isFalse();
}
@@ -533,6 +535,8 @@ public class StandardWifiEntryTest {
ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_OPEN),
null, Arrays.asList(buildScanResult("ssid", "bssid0", 0, TestUtils.GOOD_RSSI)),
mMockWifiManager, false /* forSavedNetworksPage */);
+ assertThat(entry.needsWifiConfiguration()).isFalse();
+ assertThat(entry.isSaved()).isFalse();
entry.connect(null /* ConnectCallback */);
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java
index eb7afc8db..448bd2eea 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java
@@ -743,20 +743,30 @@ public class UtilsTest {
ConnectivityDiagnosticsManager.ConnectivityReport connectivityReport = mock(
ConnectivityDiagnosticsManager.ConnectivityReport.class);
- // Not default. Do not show "Connected"
+ // Checking for internet access...
+ assertThat(Utils.getConnectedDescription(
+ mMockContext,
+ wifiConfig,
+ networkCapabilities,
+ true,
+ false,
+ null)).isEqualTo(STRING_CHECKING_FOR_INTERNET_ACCESS);
+ // Checking for internet access... without WifiConfiguration (i.e. Passpoint)
assertThat(Utils.getConnectedDescription(
mMockContext,
null,
- null,
+ networkCapabilities,
false,
false,
- null)).isEmpty();
+ null)).isEqualTo(STRING_CHECKING_FOR_INTERNET_ACCESS);
- // Default but no info, return "Connected"
+ // Connected
+ when(networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED))
+ .thenReturn(true);
assertThat(Utils.getConnectedDescription(
mMockContext,
null,
- null,
+ networkCapabilities,
true,
false,
null)).isEqualTo(STRING_WIFI_STATUS_CONNECTED);
@@ -765,15 +775,17 @@ public class UtilsTest {
assertThat(Utils.getConnectedDescription(
mMockContext,
null,
- null,
+ networkCapabilities,
false,
true,
null)).isEqualTo(STRING_CONNECTED_LOW_QUALITY);
- // No internet access
+ // Connected / No internet access
+ when(networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED))
+ .thenReturn(false);
assertThat(Utils.getConnectedDescription(
mMockContext,
- null,
+ wifiConfig,
networkCapabilities,
true,
false,
@@ -800,16 +812,6 @@ public class UtilsTest {
false,
connectivityReport)).isEqualTo(STRING_PRIVATE_DNS_BROKEN);
- // Checking for internet access...
- when(wifiConfig.isNoInternetAccessExpected()).thenReturn(false);
- assertThat(Utils.getConnectedDescription(
- mMockContext,
- wifiConfig,
- networkCapabilities,
- true,
- false,
- null)).isEqualTo(STRING_CHECKING_FOR_INTERNET_ACCESS);
-
// Limited connection
when(networkCapabilities.hasCapability(
NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)).thenReturn(true);
@@ -851,27 +853,45 @@ public class UtilsTest {
connectivityReport)).isEqualTo(STRING_CONNECTED_VIA_APP + "appLabel"
+ STRING_SUMMARY_SEPARATOR + STRING_NO_INTERNET);
- // Connected via app + Low quality + No internet access
+ // Available via app + Low quality
+ when(networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED))
+ .thenReturn(true);
assertThat(Utils.getConnectedDescription(
mMockContext,
suggestionConfig,
networkCapabilities,
+ false,
true,
- true,
- connectivityReport)).isEqualTo(STRING_CONNECTED_VIA_APP + "appLabel"
- + STRING_SUMMARY_SEPARATOR + STRING_CONNECTED_LOW_QUALITY
- + STRING_SUMMARY_SEPARATOR + STRING_NO_INTERNET);
+ connectivityReport)).isEqualTo(STRING_AVAILABLE_VIA_APP + "appLabel"
+ + STRING_SUMMARY_SEPARATOR + STRING_CONNECTED_LOW_QUALITY);
- // Available via app + Low quality + No internet access
+ // Available via app + Sign in to network
+ when(networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED))
+ .thenReturn(false);
+ when(networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL))
+ .thenReturn(true);
assertThat(Utils.getConnectedDescription(
mMockContext,
suggestionConfig,
networkCapabilities,
- false,
true,
+ false,
connectivityReport)).isEqualTo(STRING_AVAILABLE_VIA_APP + "appLabel"
- + STRING_SUMMARY_SEPARATOR + STRING_CONNECTED_LOW_QUALITY
- + STRING_SUMMARY_SEPARATOR + STRING_NO_INTERNET);
+ + STRING_SUMMARY_SEPARATOR + STRING_NETWORK_AVAILABLE_SIGN_IN);
+
+ // Connected via app + Limited connection...
+ when(networkCapabilities.hasCapability(
+ NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)).thenReturn(true);
+ when(networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL))
+ .thenReturn(false);
+ assertThat(Utils.getConnectedDescription(
+ mMockContext,
+ suggestionConfig,
+ networkCapabilities,
+ true,
+ false,
+ connectivityReport)).isEqualTo(STRING_CONNECTED_VIA_APP + "appLabel"
+ + STRING_SUMMARY_SEPARATOR + STRING_LIMITED_CONNECTION);
}
@Test
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
index ee6c4199c..6062fe112 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
@@ -41,6 +41,7 @@ import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.when;
import android.content.BroadcastReceiver;
@@ -70,6 +71,7 @@ import android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.NetworkProviderInfo;
import android.net.wifi.sharedconnectivity.app.SharedConnectivityClientCallback;
import android.net.wifi.sharedconnectivity.app.SharedConnectivityManager;
+import android.os.Bundle;
import android.os.Handler;
import android.os.test.TestLooper;
import android.telephony.SubscriptionManager;
@@ -205,6 +207,8 @@ public class WifiPickerTrackerTest {
when(mMockSharedConnectivityManager.unregisterCallback(any())).thenReturn(true);
when(mInjector.getContext()).thenReturn(mMockContext);
when(mMockContext.getResources()).thenReturn(mMockResources);
+ when(mMockContext.getSystemService(ConnectivityManager.class))
+ .thenReturn(mMockConnectivityManager);
when(mMockContext.getSystemService(TelephonyManager.class))
.thenReturn(mMockTelephonyManager);
when(mMockContext.getSystemService(SubscriptionManager.class))
@@ -298,8 +302,10 @@ public class WifiPickerTrackerTest {
mBroadcastReceiverCaptor.getValue().onReceive(mMockContext,
new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
+ mTestLooper.dispatchAll();
- verify(mMockCallback, atLeastOnce()).onWifiEntriesChanged();
+ verify(mMockCallback, atLeastOnce())
+ .onWifiEntriesChanged(WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_SCAN_RESULTS);
}
/**
@@ -529,6 +535,37 @@ public class WifiPickerTrackerTest {
}
/**
+ * Tests that a CONFIGURED_NETWORKS_CHANGED broadcast does not create WifiEntries based on
+ * cached scan results if Wi-Fi is disabled.
+ */
+ @Test
+ public void testGetWifiEntries_configuredNetworksChangedWifiDisabled_doesntUpdateEntries() {
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(),
+ any(), any(), any());
+ // Start off with Wi-Fi enabled
+ when(mMockWifiManager.getScanResults()).thenReturn(Arrays.asList(
+ buildScanResult("ssid", "bssid", START_MILLIS)));
+ mBroadcastReceiverCaptor.getValue().onReceive(mMockContext,
+ new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
+ assertThat(wifiPickerTracker.getWifiEntries()).isNotEmpty();
+
+ // Disable Wi-Fi and verify wifi entries is empty
+ when(mMockWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
+ mBroadcastReceiverCaptor.getValue().onReceive(mMockContext,
+ new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION).putExtra(
+ WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_DISABLED));
+ assertThat(wifiPickerTracker.getWifiEntries()).isEmpty();
+
+ // Receive CONFIGURED_NETWORKS_CHANGED, verify wifi entries is still empty
+ mBroadcastReceiverCaptor.getValue().onReceive(mMockContext,
+ new Intent(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION));
+ assertThat(wifiPickerTracker.getWifiEntries()).isEmpty();
+ }
+
+ /**
* Tests that getConnectedEntry() returns the connected WifiEntry if we start already connected
* to a network.
*/
@@ -573,8 +610,10 @@ public class WifiPickerTrackerTest {
when(mMockWifiInfo.getRssi()).thenReturn(-50);
mNetworkCallbackCaptor.getValue().onCapabilitiesChanged(
mMockNetwork, mMockNetworkCapabilities);
+ mTestLooper.dispatchAll();
- verify(mMockCallback, atLeastOnce()).onWifiEntriesChanged();
+ verify(mMockCallback, atLeastOnce())
+ .onWifiEntriesChanged(WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_GENERAL);
assertThat(wifiPickerTracker.getWifiEntries()).isEmpty();
assertThat(wifiPickerTracker.getConnectedWifiEntry()).isEqualTo(entry);
}
@@ -603,19 +642,22 @@ public class WifiPickerTrackerTest {
// Simulate an L2 connected network that's still authenticating.
when(mMockWifiInfo.getNetworkId()).thenReturn(1);
- when(mMockWifiInfo.getRssi()).thenReturn(-50);
+ when(mMockWifiInfo.getRssi()).thenReturn(GOOD_RSSI);
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);
+ mTestLooper.dispatchAll();
// Network should be returned in getConnectedWifiEntry() even though it's not L3 connected.
- verify(mMockCallback, atLeastOnce()).onWifiEntriesChanged();
+ verify(mMockCallback, atLeastOnce())
+ .onWifiEntriesChanged(WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_GENERAL);
assertThat(wifiPickerTracker.getWifiEntries()).isEmpty();
assertThat(wifiPickerTracker.getConnectedWifiEntry()).isEqualTo(entry);
assertThat(entry.isPrimaryNetwork()).isTrue();
+ assertThat(entry.getLevel()).isEqualTo(GOOD_LEVEL);
}
/**
@@ -647,9 +689,11 @@ public class WifiPickerTrackerTest {
Intent networkStateChanged = new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION);
networkStateChanged.putExtra(WifiManager.EXTRA_NETWORK_INFO, mockNetworkInfo);
mBroadcastReceiverCaptor.getValue().onReceive(mMockContext, networkStateChanged);
+ mTestLooper.dispatchAll();
// Network should be returned in getConnectedWifiEntry() even though it's not L3 connected.
- verify(mMockCallback, atLeastOnce()).onWifiEntriesChanged();
+ verify(mMockCallback, atLeastOnce())
+ .onWifiEntriesChanged(WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_GENERAL);
assertThat(wifiPickerTracker.getConnectedWifiEntry()).isNotNull();
}
@@ -678,8 +722,10 @@ public class WifiPickerTrackerTest {
when(mMockWifiInfo.getRssi()).thenReturn(-50);
mNetworkCallbackCaptor.getValue().onCapabilitiesChanged(
mMockNetwork, mMockNetworkCapabilities);
+ mTestLooper.dispatchAll();
- verify(mMockCallback, atLeastOnce()).onWifiEntriesChanged();
+ verify(mMockCallback, atLeastOnce())
+ .onWifiEntriesChanged(WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_GENERAL);
assertThat(wifiPickerTracker.getConnectedWifiEntry()).isNotNull();
assertThat(wifiPickerTracker.getConnectedWifiEntry().getTitle()).isEqualTo("ssid");
}
@@ -705,12 +751,89 @@ public class WifiPickerTrackerTest {
any(), mNetworkCallbackCaptor.capture(), any());
mNetworkCallbackCaptor.getValue().onLost(mMockNetwork);
+ mTestLooper.dispatchAll();
+
+ verify(mMockCallback, atLeastOnce())
+ .onWifiEntriesChanged(WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_GENERAL);
+ assertThat(wifiPickerTracker.getConnectedWifiEntry()).isNull();
+ }
+
+ /**
+ * Tests that disconnecting from a network during the stopped state will result in the network
+ * being disconnected once we've started again.
+ */
+ @Test
+ public void testGetConnectedEntry_disconnectFromNetworkWhileStopped_returnsNull() {
+ 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)));
+ when(mMockWifiInfo.getNetworkId()).thenReturn(1);
+ when(mMockWifiInfo.getRssi()).thenReturn(-50);
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockConnectivityManager).registerNetworkCallback(
+ any(), mNetworkCallbackCaptor.capture(), any());
- verify(mMockCallback, atLeastOnce()).onWifiEntriesChanged();
+ // Simulate network disconnecting while in stopped state
+ wifiPickerTracker.onStop();
+ mTestLooper.dispatchAll();
+ when(mMockWifiManager.getCurrentNetwork()).thenReturn(null);
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+
+ verify(mMockCallback, atLeastOnce())
+ .onWifiEntriesChanged(WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_GENERAL);
assertThat(wifiPickerTracker.getConnectedWifiEntry()).isNull();
}
/**
+ * Tests that captive portal will auto open if the activity stops and starts before we've
+ * connected, such as if the user needs to input a password in a full screen dialog.
+ */
+ @Test
+ public void testCaptivePortal_activityStopsAndStartsBeforeConnection_captivePortalAutoOpens() {
+ 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(mMockConnectivityManager).registerNetworkCallback(
+ any(), mNetworkCallbackCaptor.capture(), any());
+ final WifiEntry entry = wifiPickerTracker.getWifiEntries().get(0);
+
+ // Simulate user connection
+ entry.connect(null);
+ // Activity is stopped and started
+ wifiPickerTracker.onStop();
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+
+ // Verify captive portal auto-opens upon connection.
+ when(mMockWifiInfo.getNetworkId()).thenReturn(1);
+ when(mMockWifiInfo.getRssi()).thenReturn(-50);
+ when(mMockNetworkCapabilities.hasCapability(
+ NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)).thenReturn(true);
+ MockitoSession session = mockitoSession().spyStatic(NonSdkApiWrapper.class).startMocking();
+ try {
+ mNetworkCallbackCaptor.getValue().onCapabilitiesChanged(
+ mMockNetwork, mMockNetworkCapabilities);
+ verify(() -> NonSdkApiWrapper.startCaptivePortalApp(any(), any()), times(1));
+ } finally {
+ session.finishMocking();
+ }
+ }
+
+ /**
* Tests that the wifi state changing to something other than WIFI_STATE_ENABLED will update
* getConnectedEntry() to return null.
*/
@@ -734,8 +857,10 @@ public class WifiPickerTrackerTest {
when(mMockWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
mBroadcastReceiverCaptor.getValue().onReceive(mMockContext,
new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION));
+ mTestLooper.dispatchAll();
- verify(mMockCallback, atLeastOnce()).onWifiEntriesChanged();
+ verify(mMockCallback, atLeastOnce())
+ .onWifiEntriesChanged(WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_GENERAL);
assertThat(wifiPickerTracker.getConnectedWifiEntry()).isNull();
}
@@ -794,6 +919,10 @@ public class WifiPickerTrackerTest {
// Lose the default network
mDefaultNetworkCallbackCaptor.getValue().onLost(mock(Network.class));
assertThat(wifiPickerTracker.getConnectedWifiEntry().isDefaultNetwork()).isFalse();
+
+ // Disconnect
+ mNetworkCallbackCaptor.getValue().onLost(mMockNetwork);
+ assertThat(wifiPickerTracker.getWifiEntries().get(0).isDefaultNetwork()).isFalse();
}
/**
@@ -806,6 +935,8 @@ public class WifiPickerTrackerTest {
final WifiConfiguration config = new WifiConfiguration();
config.SSID = "\"ssid\"";
config.networkId = 1;
+ when(mMockWifiManager.getCurrentNetwork()).thenReturn(null);
+ when(mMockWifiManager.getConnectionInfo()).thenReturn(null);
when(mMockWifiManager.getPrivilegedConfiguredNetworks())
.thenReturn(Collections.singletonList(config));
when(mMockWifiManager.getScanResults()).thenReturn(Arrays.asList(
@@ -827,6 +958,15 @@ public class WifiPickerTrackerTest {
.setUnderlyingNetworks(List.of(mMockNetwork))
.build();
mDefaultNetworkCallbackCaptor.getValue().onCapabilitiesChanged(vpnNetwork, vpnCaps);
+ mNetworkCallbackCaptor.getValue().onCapabilitiesChanged(
+ mMockNetwork, mMockNetworkCapabilities);
+
+ assertThat(wifiPickerTracker.getConnectedWifiEntry().isDefaultNetwork()).isTrue();
+
+ // Losing the network and regaining it should not reset it being the default.
+ mNetworkCallbackCaptor.getValue().onLost(mMockNetwork);
+ mNetworkCallbackCaptor.getValue().onCapabilitiesChanged(
+ mMockNetwork, mMockNetworkCapabilities);
assertThat(wifiPickerTracker.getConnectedWifiEntry().isDefaultNetwork()).isTrue();
}
@@ -1533,7 +1673,8 @@ public class WifiPickerTrackerTest {
wifiPickerTracker.onStart();
mTestLooper.dispatchAll();
- verify(mMockCallback, atLeastOnce()).onWifiEntriesChanged();
+ verify(mMockCallback, atLeastOnce())
+ .onWifiEntriesChanged(WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_GENERAL);
assertThat(wifiPickerTracker.getConnectedWifiEntry().getTitle()).isEqualTo(friendlyName);
}
@@ -1577,7 +1718,8 @@ public class WifiPickerTrackerTest {
new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mTestLooper.dispatchAll();
- verify(mMockCallback, atLeastOnce()).onWifiEntriesChanged();
+ verify(mMockCallback, atLeastOnce())
+ .onWifiEntriesChanged(WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_GENERAL);
assertThat(wifiPickerTracker.getConnectedWifiEntry()).isNotNull();
assertThat(wifiPickerTracker.getConnectedWifiEntry().getTitle()).isEqualTo(friendlyName);
}
@@ -2136,10 +2278,12 @@ public class WifiPickerTrackerTest {
mTestLooper.moveTimeForward(SCAN_INTERVAL_MILLIS);
mTestLooper.dispatchAll();
verify(mMockWifiManager, never()).startScan();
+ verify(mMockCallback).onScanRequested();
mScanListenerCaptor.getValue().onResults(null);
mTestLooper.dispatchAll();
verify(mMockWifiManager).startScan();
+ verify(mMockCallback, times(2)).onScanRequested();
}
/**
@@ -2188,6 +2332,7 @@ public class WifiPickerTrackerTest {
ArgumentCaptor.forClass(WifiScanner.ScanListener.class);
verify(mWifiScanner, never()).startScan(any(), mScanListenerCaptor.capture());
verify(mMockWifiManager, never()).startScan();
+ verify(mInjector).disableVerboseLogging();
}
@Test
@@ -2243,6 +2388,7 @@ public class WifiPickerTrackerTest {
verify(mMockSharedConnectivityManager).getKnownNetworks();
verify(mMockSharedConnectivityManager).getHotspotNetworks();
+ verify(mMockSharedConnectivityManager).getHotspotNetworkConnectionStatus();
}
@Test
@@ -2786,4 +2932,46 @@ public class WifiPickerTrackerTest {
assertThat(((HotspotNetworkEntry) wifiPickerTracker.getWifiEntries().get(2))
.getHotspotNetworkEntryKey().getDeviceId()).isEqualTo(1);
}
+
+ @Test
+ public void testHotspotNetworks_onHotspotNetworkConnectionStatusChanged_connectedExtra() {
+ final HotspotNetwork testHotspotNetwork =
+ new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(
+ new NetworkProviderInfo.Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .build();
+ when(mMockSharedConnectivityManager.getHotspotNetworks())
+ .thenReturn(Collections.singletonList(testHotspotNetwork));
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockSharedConnectivityManager)
+ .registerCallback(any(), mSharedConnectivityCallbackCaptor.capture());
+ mSharedConnectivityCallbackCaptor.getValue().onServiceConnected();
+ mTestLooper.dispatchAll();
+
+ final WifiEntry.ConnectCallback connectCallback = mock(WifiEntry.ConnectCallback.class);
+ wifiPickerTracker.getWifiEntries().get(0).connect(connectCallback);
+
+ Bundle extras = new Bundle();
+ extras.putBoolean("connection_status_connected", true);
+ mSharedConnectivityCallbackCaptor
+ .getValue()
+ .onHotspotNetworkConnectionStatusChanged(
+ new HotspotNetworkConnectionStatus.Builder()
+ .setStatus(HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN)
+ .setExtras(extras)
+ .setHotspotNetwork(testHotspotNetwork)
+ .build());
+ mTestLooper.dispatchAll();
+
+ verify(connectCallback).onConnectResult(WifiEntry.ConnectCallback.CONNECT_STATUS_SUCCESS);
+ }
}
diff --git a/libwifi_hal/Android.bp b/libwifi_hal/Android.bp
index 37a97a00f..9e75776fb 100644
--- a/libwifi_hal/Android.bp
+++ b/libwifi_hal/Android.bp
@@ -43,6 +43,7 @@ soong_config_module_type {
"cflags",
"defaults",
"shared_libs",
+ "static_libs",
"whole_static_libs",
],
}
@@ -169,6 +170,9 @@ wifi_cc_defaults {
mediaTek: {
defaults: ["libwifi-hal-mediatek"],
},
+ nxp: {
+ whole_static_libs: ["//vendor/nxp/boreal/wifi:libwifi-hal-nxp"],
+ },
realtek: {
whole_static_libs: ["libwifi-hal-rtk"],
},