summaryrefslogtreecommitdiffhomepage
path: root/android/lib
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-03-14 14:59:43 +0100
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-03-14 14:59:43 +0100
commit3979cda6f64c509dafaf0d73bd3bfac43ad58cc3 (patch)
treea9b46514a6c3091cc890deb03ca66f9037c4f8b1 /android/lib
parent461e29d36e5e2a6841e05897e732b5d068d4dcf0 (diff)
parent1ff2611cdfb06bebc3e3047e6930cb034b452c61 (diff)
downloadmullvadvpn-3979cda6f64c509dafaf0d73bd3bfac43ad58cc3.tar.xz
mullvadvpn-3979cda6f64c509dafaf0d73bd3bfac43ad58cc3.zip
Merge branch 'create-ui-for-custom-list-droid-654'
Diffstat (limited to 'android/lib')
-rw-r--r--android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Event.kt6
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/CreateCustomListResult.kt10
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/CustomListsError.kt6
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/UpdateCustomListResult.kt10
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_add.xml9
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_delete.xml9
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_edit.xml9
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_more_vert.xml9
-rw-r--r--android/lib/resource/src/main/res/values-da/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-de/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-es/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-fi/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-fr/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-it/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-ja/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-ko/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-my/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-nb/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-nl/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-pl/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-pt/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-ru/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-sv/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-th/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-tr/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-zh-rCN/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values-zh-rTW/strings.xml6
-rw-r--r--android/lib/resource/src/main/res/values/plurals.xml4
-rw-r--r--android/lib/resource/src/main/res/values/strings.xml35
-rw-r--r--android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/Theme.kt12
-rw-r--r--android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/Color.kt1
-rw-r--r--android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/ColorTokens.kt7
-rw-r--r--android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt6
-rw-r--r--android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/shape/Shape.kt6
34 files changed, 250 insertions, 3 deletions
diff --git a/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Event.kt b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Event.kt
index 1136ae8c55..cce2ab1f87 100644
--- a/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Event.kt
+++ b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Event.kt
@@ -5,6 +5,7 @@ import kotlinx.parcelize.Parcelize
import net.mullvad.mullvadvpn.model.AccountCreationResult
import net.mullvad.mullvadvpn.model.AccountExpiry
import net.mullvad.mullvadvpn.model.AccountHistory
+import net.mullvad.mullvadvpn.model.CreateCustomListResult
import net.mullvad.mullvadvpn.model.DeviceListEvent
import net.mullvad.mullvadvpn.model.DeviceState
import net.mullvad.mullvadvpn.model.LoginResult
@@ -14,6 +15,7 @@ import net.mullvad.mullvadvpn.model.RelayList
import net.mullvad.mullvadvpn.model.RemoveDeviceResult
import net.mullvad.mullvadvpn.model.Settings
import net.mullvad.mullvadvpn.model.TunnelState
+import net.mullvad.mullvadvpn.model.UpdateCustomListResult
// Events that can be sent from the service
sealed class Event : Message.EventMessage() {
@@ -65,7 +67,9 @@ sealed class Event : Message.EventMessage() {
@Parcelize object VpnPermissionRequest : Event()
- @Parcelize data class CreateCustomListResult(val listId: String) : Event()
+ @Parcelize data class CreateCustomListResultEvent(val result: CreateCustomListResult) : Event()
+
+ @Parcelize data class UpdateCustomListResultEvent(val result: UpdateCustomListResult) : Event()
companion object {
private const val MESSAGE_KEY = "event"
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/CreateCustomListResult.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/CreateCustomListResult.kt
new file mode 100644
index 0000000000..73eaa209c8
--- /dev/null
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/CreateCustomListResult.kt
@@ -0,0 +1,10 @@
+package net.mullvad.mullvadvpn.model
+
+import android.os.Parcelable
+import kotlinx.parcelize.Parcelize
+
+sealed class CreateCustomListResult : Parcelable {
+ @Parcelize data class Ok(val id: String) : CreateCustomListResult()
+
+ @Parcelize data class Error(val error: CustomListsError) : CreateCustomListResult()
+}
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/CustomListsError.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/CustomListsError.kt
new file mode 100644
index 0000000000..83806af4f7
--- /dev/null
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/CustomListsError.kt
@@ -0,0 +1,6 @@
+package net.mullvad.mullvadvpn.model
+
+enum class CustomListsError {
+ CustomListExists,
+ OtherError
+}
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/UpdateCustomListResult.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/UpdateCustomListResult.kt
new file mode 100644
index 0000000000..ebfe9e8cd6
--- /dev/null
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/UpdateCustomListResult.kt
@@ -0,0 +1,10 @@
+package net.mullvad.mullvadvpn.model
+
+import android.os.Parcelable
+import kotlinx.parcelize.Parcelize
+
+sealed class UpdateCustomListResult : Parcelable {
+ @Parcelize data object Ok : UpdateCustomListResult()
+
+ @Parcelize data class Error(val error: CustomListsError) : UpdateCustomListResult()
+}
diff --git a/android/lib/resource/src/main/res/drawable/icon_add.xml b/android/lib/resource/src/main/res/drawable/icon_add.xml
new file mode 100644
index 0000000000..1b016dcfb2
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_add.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="960"
+ android:viewportHeight="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M440,520L200,520L200,440L440,440L440,200L520,200L520,440L760,440L760,520L520,520L520,760L440,760L440,520Z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_delete.xml b/android/lib/resource/src/main/res/drawable/icon_delete.xml
new file mode 100644
index 0000000000..0e8b2004cb
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_delete.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="960"
+ android:viewportHeight="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M280,840Q247,840 223.5,816.5Q200,793 200,760L200,240L160,240L160,160L360,160L360,120L600,120L600,160L800,160L800,240L760,240L760,760Q760,793 736.5,816.5Q713,840 680,840L280,840ZM680,240L280,240L280,760Q280,760 280,760Q280,760 280,760L680,760Q680,760 680,760Q680,760 680,760L680,240ZM360,680L440,680L440,320L360,320L360,680ZM520,680L600,680L600,320L520,320L520,680ZM280,240L280,240L280,760Q280,760 280,760Q280,760 280,760L280,760Q280,760 280,760Q280,760 280,760L280,240Z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_edit.xml b/android/lib/resource/src/main/res/drawable/icon_edit.xml
new file mode 100644
index 0000000000..3df2eb93a6
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_edit.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="960"
+ android:viewportHeight="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M200,760L257,760L648,369L591,312L200,703L200,760ZM120,840L120,670L648,143Q660,132 674.5,126Q689,120 705,120Q721,120 736,126Q751,132 762,144L817,200Q829,211 834.5,226Q840,241 840,256Q840,272 834.5,286.5Q829,301 817,313L290,840L120,840ZM760,256L760,256L704,200L704,200L760,256ZM619,341L591,312L591,312L648,369L648,369L619,341Z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_more_vert.xml b/android/lib/resource/src/main/res/drawable/icon_more_vert.xml
new file mode 100644
index 0000000000..59400ec977
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_more_vert.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="960"
+ android:viewportHeight="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M480,800Q447,800 423.5,776.5Q400,753 400,720Q400,687 423.5,663.5Q447,640 480,640Q513,640 536.5,663.5Q560,687 560,720Q560,753 536.5,776.5Q513,800 480,800ZM480,560Q447,560 423.5,536.5Q400,513 400,480Q400,447 423.5,423.5Q447,400 480,400Q513,400 536.5,423.5Q560,447 560,480Q560,513 536.5,536.5Q513,560 480,560ZM480,320Q447,320 423.5,296.5Q400,273 400,240Q400,207 423.5,183.5Q447,160 480,160Q513,160 536.5,183.5Q560,207 560,240Q560,273 536.5,296.5Q513,320 480,320Z"/>
+</vector>
diff --git a/android/lib/resource/src/main/res/values-da/strings.xml b/android/lib/resource/src/main/res/values-da/strings.xml
index 66c4fbb885..1b6088b643 100644
--- a/android/lib/resource/src/main/res/values-da/strings.xml
+++ b/android/lib/resource/src/main/res/values-da/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s blev føjet til din konto.</string>
<string name="agree_and_continue">Accepter og fortsæt</string>
<string name="all_applications">Alle applikationer</string>
+ <string name="all_locations">Alle placeringer</string>
<string name="all_providers">Alle udbydere</string>
<string name="allow_lan_footer">Giver adgang til andre enheder på det samme netværk til deling, udskrivning osv.</string>
<string name="always_on_vpn_error_notification_content">Kunne ikke starte tunnelforbindelse. Deaktiver Altid-til VPN for &lt;b&gt;%1$s&lt;/b&gt;.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Deaktiver alle &lt;b&gt;%1$s&lt;/b&gt; ovenfor for at aktivere denne indstilling.</string>
<string name="custom_dns_footer">Aktiver for at tilføje mindst én DNS-server.</string>
<string name="custom_dns_hint">Indtast IP</string>
+ <string name="custom_list_error_list_exists">Navnet er allerede taget.</string>
+ <string name="custom_lists">Brugerdefinerede lister</string>
<string name="custom_port_dialog_placeholder">Indtast port</string>
<string name="custom_port_dialog_remove">Fjern brugerdefineret port</string>
<string name="custom_port_dialog_submit">Indstil port</string>
<string name="custom_port_dialog_title">Brugerdefineret WireGuard-port</string>
<string name="custom_port_dialog_valid_ranges">Gyldige intervaller: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Kunne ikke fortolke værten for den tilpassede tunnel. Prøv at ændre dine indstillinger.</string>
+ <string name="delete">Slet</string>
+ <string name="delete_list">Slet liste</string>
<string name="device_inactive_description">Du har fjernet denne enhed. For at oprette forbindelse igen skal du logge ind igen.</string>
<string name="device_inactive_title">Enheden er inaktiv</string>
<string name="device_inactive_unblock_warning">Hvis du logger på, ophæves blokeringen af internettet på denne enhed.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Kun lejet</string>
<string name="report_a_problem">Rapporter et problem</string>
<string name="reset_to_default_button">Nulstil til standard</string>
+ <string name="save">Gem</string>
<string name="search_placeholder">Søg efter...</string>
<string name="secure_connection">SIKKER TILSLUTNING</string>
<string name="secured">Sikret</string>
diff --git a/android/lib/resource/src/main/res/values-de/strings.xml b/android/lib/resource/src/main/res/values-de/strings.xml
index 59a04fcb7e..0b72c89620 100644
--- a/android/lib/resource/src/main/res/values-de/strings.xml
+++ b/android/lib/resource/src/main/res/values-de/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s wurde zu Ihrem Konto hinzugefügt.</string>
<string name="agree_and_continue">Akzeptieren und weiter</string>
<string name="all_applications">Alle Anwendungen</string>
+ <string name="all_locations">Alle Standorte</string>
<string name="all_providers">Alle Anbieter</string>
<string name="allow_lan_footer">Ermöglicht den Zugriff auf andere Geräte im selben Netzwerk zum Teilen von Dateien, Drucken etc.</string>
<string name="always_on_vpn_error_notification_content">Tunnelverbindung kann nicht gestartet werden. Bitte deaktivieren Sie Always-on VPN für &lt;b&gt;%1$s&lt;/b&gt;, bevor Sie Mullvad VPN verwenden.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Deaktivieren Sie oben alle &lt;b&gt;%1$s&lt;/b&gt;, um diese Einstellung zu aktivieren.</string>
<string name="custom_dns_footer">Aktivieren, um mindestens einen DNS-Server hinzuzufügen.</string>
<string name="custom_dns_hint">IP eingeben</string>
+ <string name="custom_list_error_list_exists">Der Name ist bereits vergeben.</string>
+ <string name="custom_lists">Eigene Listen</string>
<string name="custom_port_dialog_placeholder">Port eingeben</string>
<string name="custom_port_dialog_remove">Eigenen Port entfernen</string>
<string name="custom_port_dialog_submit">Port festlegen</string>
<string name="custom_port_dialog_title">Eigener WireGuard-Port</string>
<string name="custom_port_dialog_valid_ranges">Gültige Bereiche: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Der Host des benutzerdefinierten Tunnels konnte nicht aufgelöst werden. Versuchen Sie, Ihre Einstellungen zu ändern.</string>
+ <string name="delete">Löschen</string>
+ <string name="delete_list">Liste löschen</string>
<string name="device_inactive_description">Sie haben dieses Gerät entfernt. Um sich erneut zu verbinden, müssen Sie sich erneut anmelden.</string>
<string name="device_inactive_title">Gerät ist inaktiv</string>
<string name="device_inactive_unblock_warning">Wenn Sie mit der Anmeldung fortfahren, wird die Internetsperre auf diesem Gerät aufgehoben.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Nur gemietet</string>
<string name="report_a_problem">Problem melden</string>
<string name="reset_to_default_button">Auf Standard zurücksetzen</string>
+ <string name="save">Speichern</string>
<string name="search_placeholder">Suchen nach …</string>
<string name="secure_connection">SICHERE VERBINDUNG</string>
<string name="secured">Gesichert</string>
diff --git a/android/lib/resource/src/main/res/values-es/strings.xml b/android/lib/resource/src/main/res/values-es/strings.xml
index b43f206ba9..0a2369af88 100644
--- a/android/lib/resource/src/main/res/values-es/strings.xml
+++ b/android/lib/resource/src/main/res/values-es/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">Se ha(n) añadido %1$s a su cuenta.</string>
<string name="agree_and_continue">Aceptar y continuar</string>
<string name="all_applications">Todas las aplicaciones</string>
+ <string name="all_locations">Todas las ubicaciones</string>
<string name="all_providers">Todos los proveedores</string>
<string name="allow_lan_footer">Permite el acceso a otros dispositivos de la misma red para compartir, imprimir, etc.</string>
<string name="always_on_vpn_error_notification_content">No se puede iniciar la conexión de túnel. Deshabilite la VPN siempre activa en &lt;b&gt;%1$s&lt;/b&gt; antes de utilizar la VPN de Mullvad.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Deshabilite todos los &lt;b&gt;%1$s&lt;/b&gt; de arriba para activar este ajuste.</string>
<string name="custom_dns_footer">Active esta opción para agregar como mínimo un servidor DNS.</string>
<string name="custom_dns_hint">Introducir IP</string>
+ <string name="custom_list_error_list_exists">Este nombre ya se está utilizando.</string>
+ <string name="custom_lists">Listas personalizadas</string>
<string name="custom_port_dialog_placeholder">Introducir puerto</string>
<string name="custom_port_dialog_remove">Quitar puerto personalizado</string>
<string name="custom_port_dialog_submit">Establecer puerto</string>
<string name="custom_port_dialog_title">Puerto personalizado de WireGuard</string>
<string name="custom_port_dialog_valid_ranges">Intervalos válidos: %1$s</string>
<string name="custom_tunnel_host_resolution_error">No se puede resolver el host del túnel personalizado. Pruebe a cambiar la configuración.</string>
+ <string name="delete">Eliminar</string>
+ <string name="delete_list">Eliminar lista</string>
<string name="device_inactive_description">Ha quitado este dispositivo. Vuelva a iniciar la sesión para conectarse.</string>
<string name="device_inactive_title">El dispositivo está inactivo</string>
<string name="device_inactive_unblock_warning">Al iniciar la sesión, se desbloqueará el acceso a Internet en este dispositivo.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Solo alquilados</string>
<string name="report_a_problem">Informar de un problema</string>
<string name="reset_to_default_button">Restablecer a valores predeterminados</string>
+ <string name="save">Guardar</string>
<string name="search_placeholder">Buscar...</string>
<string name="secure_connection">CONEXIÓN SEGURA</string>
<string name="secured">Protegido</string>
diff --git a/android/lib/resource/src/main/res/values-fi/strings.xml b/android/lib/resource/src/main/res/values-fi/strings.xml
index a88eaa3ea4..2df0abd210 100644
--- a/android/lib/resource/src/main/res/values-fi/strings.xml
+++ b/android/lib/resource/src/main/res/values-fi/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">Tilillesi lisättiin %1$s käyttöaikaa.</string>
<string name="agree_and_continue">Hyväksy ja jatka</string>
<string name="all_applications">Kaikki sovellukset</string>
+ <string name="all_locations">Kaikki sijainnit</string>
<string name="all_providers">Kaikki palveluntarjoajat</string>
<string name="allow_lan_footer">Sallii jakamisen, tulostuksen ym. saman verkon muille laitteille.</string>
<string name="always_on_vpn_error_notification_content">Tunneliyhteyden käynnistäminen ei onnistu. Poista aina päällä oleva VPN käytöstä sovellukselle &lt;b&gt;%1$s&lt;/b&gt; ennen Mullvad VPN:n käyttämistä.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Ota tämä asetus käyttöön poistamalla kaikki &lt;b&gt;%1$s&lt;/b&gt; käytöstä yllä.</string>
<string name="custom_dns_footer">Ota käyttöön lisätäksesi vähintään yhden DNS-palvelimen.</string>
<string name="custom_dns_hint">Anna IP-osoite</string>
+ <string name="custom_list_error_list_exists">Nimi on jo olemassa.</string>
+ <string name="custom_lists">Mukautetut luettelot</string>
<string name="custom_port_dialog_placeholder">Anna portti</string>
<string name="custom_port_dialog_remove">Poista mukautettu portti</string>
<string name="custom_port_dialog_submit">Määritä portti</string>
<string name="custom_port_dialog_title">Mukautettu WireGuard-portti</string>
<string name="custom_port_dialog_valid_ranges">Kelvolliset portit: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Muokatun tunnelin isännän selvittäminen ei onnistu. Kokeile muuttaa asetuksiasi.</string>
+ <string name="delete">Poista</string>
+ <string name="delete_list">Poista luettelo</string>
<string name="device_inactive_description">Olet poistanut tämän laitteen. Jos haluat muodostaa yhteyden uudelleen, sinun täytyy kirjautua takaisin sisään.</string>
<string name="device_inactive_title">Laite ei ole aktiivinen</string>
<string name="device_inactive_unblock_warning">Kirjautumiseen siirtyminen purkaa internetin käytön eston tältä laitteelta.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Vain vuokratut</string>
<string name="report_a_problem">Raportoi ongelma</string>
<string name="reset_to_default_button">Palauta oletusarvo</string>
+ <string name="save">Tallenna</string>
<string name="search_placeholder">Hae...</string>
<string name="secure_connection">SUOJATTU YHTEYS</string>
<string name="secured">Suojattu</string>
diff --git a/android/lib/resource/src/main/res/values-fr/strings.xml b/android/lib/resource/src/main/res/values-fr/strings.xml
index 633dbc9ffc..e834a0209e 100644
--- a/android/lib/resource/src/main/res/values-fr/strings.xml
+++ b/android/lib/resource/src/main/res/values-fr/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s ajouté(s) à votre compte.</string>
<string name="agree_and_continue">Accepter et continuer</string>
<string name="all_applications">Toutes les applications</string>
+ <string name="all_locations">Toutes les localisations</string>
<string name="all_providers">Tous les fournisseurs</string>
<string name="allow_lan_footer">Autorise l\'accès aux autres appareils sur le même réseau pour partager, imprimer, etc.</string>
<string name="always_on_vpn_error_notification_content">Impossible de démarrer la connexion au tunnel. Veuillez désactiver « Toujours exiger un VPN « pour &lt;b&gt;%1$s&lt;/b&gt; avant d\'utiliser Mullvad VPN.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Désactivez tous les &lt;b&gt;%1$s&lt;/b&gt; ci-dessus pour activer ce paramètre.</string>
<string name="custom_dns_footer">Activez pour ajouter au moins un serveur DNS.</string>
<string name="custom_dns_hint">Saisir l\'IP</string>
+ <string name="custom_list_error_list_exists">Le nom est déjà pris.</string>
+ <string name="custom_lists">Listes personnalisées</string>
<string name="custom_port_dialog_placeholder">Saisir le port</string>
<string name="custom_port_dialog_remove">Supprimer le port personnalisé</string>
<string name="custom_port_dialog_submit">Définir le port</string>
<string name="custom_port_dialog_title">Port WireGuard personnalisé</string>
<string name="custom_port_dialog_valid_ranges">Plages valides : %1$s</string>
<string name="custom_tunnel_host_resolution_error">Échec de la résolution de l\'hôte du tunnel personnalisé. Essayez de modifier vos paramètres.</string>
+ <string name="delete">Supprimer</string>
+ <string name="delete_list">Supprimer la liste</string>
<string name="device_inactive_description">Vous avez supprimé cet appareil. Vous devrez vous reconnecter pour connecter cet appareil à nouveau.</string>
<string name="device_inactive_title">L\'appareil est inactif</string>
<string name="device_inactive_unblock_warning">Aller à la connexion débloquera la connexion Internet sur cet appareil.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Loués uniquement</string>
<string name="report_a_problem">Signaler un problème</string>
<string name="reset_to_default_button">Réinitialiser à la valeur par défaut</string>
+ <string name="save">Enregistrer</string>
<string name="search_placeholder">Rechercher...</string>
<string name="secure_connection">CONNEXION SÉCURISÉE</string>
<string name="secured">Sécurisé</string>
diff --git a/android/lib/resource/src/main/res/values-it/strings.xml b/android/lib/resource/src/main/res/values-it/strings.xml
index b2343abd86..bc707e2b96 100644
--- a/android/lib/resource/src/main/res/values-it/strings.xml
+++ b/android/lib/resource/src/main/res/values-it/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s aggiunti al tuo account.</string>
<string name="agree_and_continue">Accetta e continua</string>
<string name="all_applications">Tutte le applicazioni</string>
+ <string name="all_locations">Tutti i luoghi</string>
<string name="all_providers">Tutti i fornitori</string>
<string name="allow_lan_footer">Consenti l\'accesso ad altri dispositivi sulla stessa rete per condividere, stampare e altro.</string>
<string name="always_on_vpn_error_notification_content">Impossibile avviare la connessione tunnel. Disabilita VPN sempre attiva per &lt;b&gt;%1$s&lt;/b&gt; prima di utilizzare Mullvad VPN.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Disabilita tutti i &lt;b&gt;%1$s&lt;/b&gt; sopra per attivare questa impostazione.</string>
<string name="custom_dns_footer">Abilita per aggiungere almeno un server DNS.</string>
<string name="custom_dns_hint">Inserisci IP</string>
+ <string name="custom_list_error_list_exists">Il nome è già preso.</string>
+ <string name="custom_lists">Elenchi personalizzati</string>
<string name="custom_port_dialog_placeholder">Inserisci porta</string>
<string name="custom_port_dialog_remove">Rimuovi porta personalizzata</string>
<string name="custom_port_dialog_submit">Imposta porta</string>
<string name="custom_port_dialog_title">Porta personalizzata WireGuard</string>
<string name="custom_port_dialog_valid_ranges">Intervalli validi: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Impossibile risolvere l\'host del tunnel personalizzato. Prova a modificare le impostazioni.</string>
+ <string name="delete">Elimina</string>
+ <string name="delete_list">Elimina elenco</string>
<string name="device_inactive_description">Hai rimosso questo dispositivo. Per riconnetterti, dovrai effettuare nuovamente il login.</string>
<string name="device_inactive_title">Il dispositivo è inattivo</string>
<string name="device_inactive_unblock_warning">Andare al login sbloccherà Internet su questo dispositivo.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Solo noleggiati</string>
<string name="report_a_problem">Segnala un problema</string>
<string name="reset_to_default_button">Ripristina predefiniti</string>
+ <string name="save">Salva</string>
<string name="search_placeholder">Cerca...</string>
<string name="secure_connection">CONNESSIONE PROTETTA</string>
<string name="secured">Protetto</string>
diff --git a/android/lib/resource/src/main/res/values-ja/strings.xml b/android/lib/resource/src/main/res/values-ja/strings.xml
index 4a92cd78af..71e1907d9e 100644
--- a/android/lib/resource/src/main/res/values-ja/strings.xml
+++ b/android/lib/resource/src/main/res/values-ja/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$sがアカウントに追加されました。</string>
<string name="agree_and_continue">同意して続行</string>
<string name="all_applications">すべてのアプリケーション</string>
+ <string name="all_locations">すべての場所</string>
<string name="all_providers">すべてのプロバイダ</string>
<string name="allow_lan_footer">共有や印刷などのため、同一ネットワーク上の他のデバイスへのアクセスを許可します。</string>
<string name="always_on_vpn_error_notification_content">トンネル接続を開始できません。Mullvad VPNを使用する前に&lt;b&gt;%1$s&lt;/b&gt;のAlways-on VPNを無効にしてください。</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">この設定を有効にするには、上記のすべての&lt;b&gt;%1$s&lt;/b&gt;を無効にしてください。</string>
<string name="custom_dns_footer">1つ以上のDNSサーバーを追加するには有効にしてください。</string>
<string name="custom_dns_hint">IPを入力</string>
+ <string name="custom_list_error_list_exists">名前はすでに使用されています。</string>
+ <string name="custom_lists">カスタムリスト</string>
<string name="custom_port_dialog_placeholder">ポートを入力</string>
<string name="custom_port_dialog_remove">カスタムポートを削除</string>
<string name="custom_port_dialog_submit">ポートを設定</string>
<string name="custom_port_dialog_title">WireGuardカスタムポート</string>
<string name="custom_port_dialog_valid_ranges">有効な範囲: %1$s</string>
<string name="custom_tunnel_host_resolution_error">カスタムトンネルのホストを解決できません。設定を変更してみてください。</string>
+ <string name="delete">削除</string>
+ <string name="delete_list">リストを削除</string>
<string name="device_inactive_description">このデバイスを削除しました。再度接続するには、ログインし直す必要があります。</string>
<string name="device_inactive_title">デバイスが無効です</string>
<string name="device_inactive_unblock_warning">ログインに進むと、このデバイスのインターネットのブロックが解除されます。</string>
@@ -194,6 +199,7 @@
<string name="rented_only">レンタルサーバーのみ</string>
<string name="report_a_problem">問題を報告する</string>
<string name="reset_to_default_button">デフォルトにリセット</string>
+ <string name="save">保存</string>
<string name="search_placeholder">検索...</string>
<string name="secure_connection">セキュリティ保護された接続</string>
<string name="secured">セキュリティ保護されています</string>
diff --git a/android/lib/resource/src/main/res/values-ko/strings.xml b/android/lib/resource/src/main/res/values-ko/strings.xml
index 063628f691..7700ad87dc 100644
--- a/android/lib/resource/src/main/res/values-ko/strings.xml
+++ b/android/lib/resource/src/main/res/values-ko/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s이(가) 계정에 추가되었습니다.</string>
<string name="agree_and_continue">동의하고 계속하기</string>
<string name="all_applications">모든 애플리케이션</string>
+ <string name="all_locations">모든 위치</string>
<string name="all_providers">모든 제공업체</string>
<string name="allow_lan_footer">공유, 인쇄 등을 위해 동일한 네트워크의 다른 장치에 액세스할 수 있습니다.</string>
<string name="always_on_vpn_error_notification_content">터널 연결을 시작할 수 없습니다. Mullvad VPN을 사용하기 전에 &lt;b&gt;%1$s&lt;/b&gt;에 대한 상시 접속 VPN을 비활성화하세요.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">이 설정을 활성화하려면 위의 모든 &lt;b&gt;%1$s&lt;/b&gt;을(를) 비활성화하세요.</string>
<string name="custom_dns_footer">하나 이상의 DNS 서버를 추가하려면 활성화합니다.</string>
<string name="custom_dns_hint">IP 입력</string>
+ <string name="custom_list_error_list_exists">이미 사용 중인 이름입니다.</string>
+ <string name="custom_lists">사용자 지정 목록</string>
<string name="custom_port_dialog_placeholder">포트 입력</string>
<string name="custom_port_dialog_remove">사용자 지정 포트 제거</string>
<string name="custom_port_dialog_submit">포트 설정</string>
<string name="custom_port_dialog_title">WireGuard 사용자 지정 포트</string>
<string name="custom_port_dialog_valid_ranges">유효한 범위: %1$s</string>
<string name="custom_tunnel_host_resolution_error">사용자 지정 터널의 호스트를 확인할 수 없습니다. 설정을 변경해 보세요.</string>
+ <string name="delete">삭제</string>
+ <string name="delete_list">목록 삭제</string>
<string name="device_inactive_description">이 장치를 제거했습니다. 다시 연결하려면 다시 로그인해야 합니다.</string>
<string name="device_inactive_title">장치가 비활성 상태입니다.</string>
<string name="device_inactive_unblock_warning">로그인하면 이 장치에서 인터넷 차단이 해제됩니다.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">대여만</string>
<string name="report_a_problem">문제 신고</string>
<string name="reset_to_default_button">기본값으로 재설정</string>
+ <string name="save">저장</string>
<string name="search_placeholder">검색...</string>
<string name="secure_connection">보안 연결</string>
<string name="secured">안전함</string>
diff --git a/android/lib/resource/src/main/res/values-my/strings.xml b/android/lib/resource/src/main/res/values-my/strings.xml
index 9a3cf2ba40..34b27d3cf8 100644
--- a/android/lib/resource/src/main/res/values-my/strings.xml
+++ b/android/lib/resource/src/main/res/values-my/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">သင့် အကောင့်ထဲသို့ %1$s ကို ပေါင်းထည့်ထားပါသည်။</string>
<string name="agree_and_continue">သဘောတူပြီး ဆက်လုပ်ရန်</string>
<string name="all_applications">အပလီကေးရှင်း အားလုံး</string>
+ <string name="all_locations">တည်နေရာအာလုံး</string>
<string name="all_providers">ပံ့ပိုးသူအားလုံး</string>
<string name="allow_lan_footer">ဝေမျှရန်၊ ပရင့်ထုတ်ရန်စသည်တို့အတွက် တူညီသည့် ကွန်ရက်ရှိ အခြားစက်များကို ရယူသုံးစွဲခွင့်ပြုပေးပါသည်။</string>
<string name="always_on_vpn_error_notification_content">Tunnel ချိတ်ဆက်မှုကို စတင်၍ မရနိုင်ပါ။ Mullvad VPN ကို မသုံးမီ &lt;b&gt;%1$s&lt;/b&gt; အတွက် VPN အမြဲဖွင့်ထားမှုကို ပိတ်ပေးပါ။</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">ဤဆက်တင်ကို သက်ဝင်လုပ်ဆောင်ရန် အထက်ရှိ &lt;b&gt;%1$s&lt;/b&gt; အားလုံးကို ပိတ်ပါ။</string>
<string name="custom_dns_footer">အနည်းဆုံး DNS ဆာဗာတစ်ခုကို ပေါင်းထည့်ပါ။</string>
<string name="custom_dns_hint">IP ရိုက်ထည့်ရန်</string>
+ <string name="custom_list_error_list_exists">အမည်သည် ရှိနှင့်ပြီး ဖြစ်သည်။</string>
+ <string name="custom_lists">စိတ်ကြိုက်စာရင်းများ</string>
<string name="custom_port_dialog_placeholder">ပေါ့တ် ရိုက်ထည့်ရန်</string>
<string name="custom_port_dialog_remove">စိတ်ကြိုက် ပေါ့တ်ကို ဖယ်ရှားရန်</string>
<string name="custom_port_dialog_submit">ပေါ့တ် သတ်မှတ်ရန်</string>
<string name="custom_port_dialog_title">စိတ်ကြိုက် WireGuard ပေါ့တ်</string>
<string name="custom_port_dialog_valid_ranges">အကျုံးဝင်သည့် အပိုင်းအခြား- %1$s</string>
<string name="custom_tunnel_host_resolution_error">စိတ်ကြိုက်ပြုလုပ်ထားသည့် Tunnel ၏ Host ကို ဖြေရှင်း၍ မရနိုင်ပါ။ သင့်ဆက်တင်ကို ပြောင်းကြည့်ပါ။</string>
+ <string name="delete">ဖျက်ရန်</string>
+ <string name="delete_list">စာရင်းကို ဖျက်ရန်</string>
<string name="device_inactive_description">ဤစက်ကို ဖယ်ရှားပြီး ဖြစ်သည်။ ထပ်မံချိတ်ဆက်ရန်အတွက် ပြန်လည် ဝင်ရောက်ရန် လိုပါသည်။</string>
<string name="device_inactive_title">စက်သည် သက်ဝင်လုပ်ဆောင်မှု မရှိပါ</string>
<string name="device_inactive_unblock_warning">ဝင်ရောက်ရန်သွားခြင်းဖြင့် ဤစက်တွင် အင်တာနက်ကို ပိတ်ဆို့ထားမှုမှ ဖယ်ရှားပါလိမ့်မည်။</string>
@@ -194,6 +199,7 @@
<string name="rented_only">အငှားသီးသန့်</string>
<string name="report_a_problem">ပြဿနာ ရီပို့တ်လုပ်ရန်</string>
<string name="reset_to_default_button">ပုံသေသို့ ပြန်လည်သတ်မှတ်ရန်</string>
+ <string name="save">သိမ်းမည်</string>
<string name="search_placeholder">ရှာရန်...</string>
<string name="secure_connection">လုံခြုံသည့် ချိတ်ဆက်မှု</string>
<string name="secured">လုံခြုံပါသည်</string>
diff --git a/android/lib/resource/src/main/res/values-nb/strings.xml b/android/lib/resource/src/main/res/values-nb/strings.xml
index 5d9a283305..e227790588 100644
--- a/android/lib/resource/src/main/res/values-nb/strings.xml
+++ b/android/lib/resource/src/main/res/values-nb/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s ble lagt til kontoen din.</string>
<string name="agree_and_continue">Godta og fortsett</string>
<string name="all_applications">Alle applikasjoner</string>
+ <string name="all_locations">Alle steder</string>
<string name="all_providers">Alle leverandører</string>
<string name="allow_lan_footer">Gir tilgang til andre enheter på samme nettverk for deling, utskrift osv.</string>
<string name="always_on_vpn_error_notification_content">Kunne ikke starte tunneltilkobling. Deaktiver VPN som alltid er på, for &lt;b&gt;%1$s&lt;/b&gt; før du bruker Mullvad VPN.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Deaktiver alle &lt;b&gt;%1$s&lt;/b&gt; ovenfor for å aktivere denne innstillingen.</string>
<string name="custom_dns_footer">Aktiver for å legge til minst én DNS-server.</string>
<string name="custom_dns_hint">Skriv inn IP</string>
+ <string name="custom_list_error_list_exists">Navn allerede i bruk.</string>
+ <string name="custom_lists">Tilpassede lister</string>
<string name="custom_port_dialog_placeholder">Skriv inn port</string>
<string name="custom_port_dialog_remove">Fjern tilpasset port</string>
<string name="custom_port_dialog_submit">Konfigurer port</string>
<string name="custom_port_dialog_title">Tilpasset WireGuard-port</string>
<string name="custom_port_dialog_valid_ranges">Gyldige verdiområder: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Kunne ikke løse vert for egendefinert tunnel. Forsøk å endre innstillingene dine.</string>
+ <string name="delete">Slett</string>
+ <string name="delete_list">Slett liste</string>
<string name="device_inactive_description">Du har fjernet denne enheten. For å koble til igjen, må du logge inn på nytt.</string>
<string name="device_inactive_title">Enheten er inaktiv</string>
<string name="device_inactive_unblock_warning">Å gå til pålogging vil oppheve blokkeringen av internettet på denne enheten.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Kun leid</string>
<string name="report_a_problem">Rapporter et problem</string>
<string name="reset_to_default_button">Tilbakestill til standard</string>
+ <string name="save">Lagre</string>
<string name="search_placeholder">Søk etter ...</string>
<string name="secure_connection">SIKKER TILKOBLING</string>
<string name="secured">Sikret</string>
diff --git a/android/lib/resource/src/main/res/values-nl/strings.xml b/android/lib/resource/src/main/res/values-nl/strings.xml
index 63d878951f..eeae7d2718 100644
--- a/android/lib/resource/src/main/res/values-nl/strings.xml
+++ b/android/lib/resource/src/main/res/values-nl/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s is toegevoegd aan uw account.</string>
<string name="agree_and_continue">Akkoord en doorgaan</string>
<string name="all_applications">Alle toepassingen</string>
+ <string name="all_locations">Alle locaties</string>
<string name="all_providers">Alle aanbieders</string>
<string name="allow_lan_footer">Biedt toegang tot andere apparaten op hetzelfde netwerk voor delen, afdrukken en dergelijke</string>
<string name="always_on_vpn_error_notification_content">Kan de tunnelverbinding niet starten. Schakel Altijd-aan VPN uit voor &lt;b&gt;%1$s&lt;/b&gt; voordat u Mullvad VPN gebruikt.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Schakel alle &lt;b&gt;%1$s&lt;/b&gt; hierboven uit om deze instelling te activeren.</string>
<string name="custom_dns_footer">Schakel in om minimaal één DNS-server toe te voegen.</string>
<string name="custom_dns_hint">Voer IP-adres in</string>
+ <string name="custom_list_error_list_exists">Naam wordt al gebruikt.</string>
+ <string name="custom_lists">Aangepaste lijsten</string>
<string name="custom_port_dialog_placeholder">Voer poort in</string>
<string name="custom_port_dialog_remove">Aangepaste poort verwijderen</string>
<string name="custom_port_dialog_submit">Poort instellen</string>
<string name="custom_port_dialog_title">Aangepaste WireGuard-poort</string>
<string name="custom_port_dialog_valid_ranges">Geldige bereiken: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Kan host van aangepaste tunnel niet omzetten. Probeer uw instellingen te wijzigen.</string>
+ <string name="delete">Verwijderen</string>
+ <string name="delete_list">Lijst verwijderen</string>
<string name="device_inactive_description">U hebt dit apparaat verwijderd. U moet zich opnieuw aanmelden om het opnieuw te verbinden.</string>
<string name="device_inactive_title">Apparaat is niet actief</string>
<string name="device_inactive_unblock_warning">Als u naar aanmelden gaat, wordt het blokkeren van internet op dit apparaat opgeheven.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Alleen gehuurde</string>
<string name="report_a_problem">Een probleem rapporteren</string>
<string name="reset_to_default_button">Standaardwaarde herstellen</string>
+ <string name="save">Opslaan</string>
<string name="search_placeholder">Zoeken naar...</string>
<string name="secure_connection">BEVEILIGDE VERBINDING</string>
<string name="secured">Beveiligd</string>
diff --git a/android/lib/resource/src/main/res/values-pl/strings.xml b/android/lib/resource/src/main/res/values-pl/strings.xml
index aa1f500c88..c03157ab0b 100644
--- a/android/lib/resource/src/main/res/values-pl/strings.xml
+++ b/android/lib/resource/src/main/res/values-pl/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">Do Twojego konta dodano %1$s.</string>
<string name="agree_and_continue">Zaakceptuj i kontynuuj</string>
<string name="all_applications">Wszystkie aplikacje</string>
+ <string name="all_locations">Wszystkie lokalizacje</string>
<string name="all_providers">Wszyscy dostawcy</string>
<string name="allow_lan_footer">Umożliwia dostęp do innych urządzeń w tej samej sieci w celu udostępniania, drukowania itd.</string>
<string name="always_on_vpn_error_notification_content">Nie można uruchomić połączenia tunelowego. Przed rozpoczęciem użytkowania usługi Mullvad VPN wyłącz opcję „Zawsze włączony VPN” w &lt;b&gt;%1$s&lt;/b&gt;.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Aby aktywować to ustawienie, wyłącz powyżej wszystkie &lt;b&gt;%1$s&lt;/b&gt;.</string>
<string name="custom_dns_footer">Włącz, aby dodać co najmniej jeden serwer DNS.</string>
<string name="custom_dns_hint">Wprowadź adres IP</string>
+ <string name="custom_list_error_list_exists">Nazwa jest już zajęta.</string>
+ <string name="custom_lists">Listy niestandardowe</string>
<string name="custom_port_dialog_placeholder">Wprowadź port</string>
<string name="custom_port_dialog_remove">Usuń port niestandardowy</string>
<string name="custom_port_dialog_submit">Ustaw port</string>
<string name="custom_port_dialog_title">Niestandardowy port WireGuard</string>
<string name="custom_port_dialog_valid_ranges">Prawidłowe zakresy: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Nie można rozpoznać hosta tunelu niestandardowego. Spróbuj zmienić ustawienia.</string>
+ <string name="delete">Usuń</string>
+ <string name="delete_list">Usuń listę</string>
<string name="device_inactive_description">Urządzenie usunięto. Aby połączyć się ponownie, musisz się ponownie zalogować.</string>
<string name="device_inactive_title">Urządzenie nieaktywne</string>
<string name="device_inactive_unblock_warning">Przejście do logowania odblokuje Internet na tym urządzeniu.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Wyłącznie wynajmowane</string>
<string name="report_a_problem">Zgłoś problem</string>
<string name="reset_to_default_button">Przywróć domyślne</string>
+ <string name="save">Zapisz</string>
<string name="search_placeholder">Wyszukaj...</string>
<string name="secure_connection">BEZPIECZNE POŁĄCZENIE</string>
<string name="secured">Zabezpieczone</string>
diff --git a/android/lib/resource/src/main/res/values-pt/strings.xml b/android/lib/resource/src/main/res/values-pt/strings.xml
index fe7a1fcfe3..ddecdfde52 100644
--- a/android/lib/resource/src/main/res/values-pt/strings.xml
+++ b/android/lib/resource/src/main/res/values-pt/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s adicionado(s) à sua conta.</string>
<string name="agree_and_continue">Concordar e continuar</string>
<string name="all_applications">Todas as aplicações</string>
+ <string name="all_locations">Todas as localizações</string>
<string name="all_providers">Todos os fornecedores</string>
<string name="allow_lan_footer">Permite o acesso a outros dispositivos na mesma rede para partilha, impressão, etc.</string>
<string name="always_on_vpn_error_notification_content">Não foi possível iniciar a ligação de túnel. Desative a VPN sempre ligada para &lt;b&gt;%1$s&lt;/b&gt; antes de utilizar a Mullvad VPN.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Desative todos os &lt;b&gt;%1$s&lt;/b&gt; abaixo para ativar esta definição.</string>
<string name="custom_dns_footer">Ativar para adicionar pelo menos um servidor DNS.</string>
<string name="custom_dns_hint">Introduzir IP</string>
+ <string name="custom_list_error_list_exists">O nome já está a ser utilizado.</string>
+ <string name="custom_lists">Listas personalizadas</string>
<string name="custom_port_dialog_placeholder">Introduzir porta</string>
<string name="custom_port_dialog_remove">Remover porta personalizada</string>
<string name="custom_port_dialog_submit">Definir porta</string>
<string name="custom_port_dialog_title">Porta personalizada WireGuard</string>
<string name="custom_port_dialog_valid_ranges">Intervalos válidos: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Não foi possível resolver o anfitrião do túnel personalizado. Experimente alterar as suas definições.</string>
+ <string name="delete">Eliminar</string>
+ <string name="delete_list">Eliminar lista</string>
<string name="device_inactive_description">Removeu este dispositivo. Para voltar a ligar o dispositivo, terá de voltar a iniciar a sessão.</string>
<string name="device_inactive_title">O dispositivo está desativado</string>
<string name="device_inactive_unblock_warning">Ir para a ligação irá desbloquear a Internet neste dispositivo.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Apenas alugado</string>
<string name="report_a_problem">Reportar um problema</string>
<string name="reset_to_default_button">Repor para as predefinições</string>
+ <string name="save">Guardar</string>
<string name="search_placeholder">Pesquisar por...</string>
<string name="secure_connection">LIGAÇÃO SEGURA</string>
<string name="secured">Seguro</string>
diff --git a/android/lib/resource/src/main/res/values-ru/strings.xml b/android/lib/resource/src/main/res/values-ru/strings.xml
index 5f2ad8489c..088ad7625f 100644
--- a/android/lib/resource/src/main/res/values-ru/strings.xml
+++ b/android/lib/resource/src/main/res/values-ru/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">На учетную запись добавлено время: %1$s.</string>
<string name="agree_and_continue">Согласиться и продолжить</string>
<string name="all_applications">Все приложения</string>
+ <string name="all_locations">Все местоположения</string>
<string name="all_providers">Все провайдеры</string>
<string name="allow_lan_footer">Разрешить доступ к другим устройствам в той же сети для организации общего доступа, печати и т. д.</string>
<string name="always_on_vpn_error_notification_content">Не удалось запустить туннельное подключение. Перед использованием Mullvad VPN отключите опцию «Постоянная VPN» для приложения &lt;b&gt;%1$s&lt;/b&gt;.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Чтобы включить эту настройку, отключите все &lt;b&gt;%1$s&lt;/b&gt; выше.</string>
<string name="custom_dns_footer">Чтобы добавить как минимум один DNS-сервер, включите этот параметр.</string>
<string name="custom_dns_hint">Введите IP-адрес</string>
+ <string name="custom_list_error_list_exists">Такое название уже используется.</string>
+ <string name="custom_lists">Свои списки</string>
<string name="custom_port_dialog_placeholder">Введите порт</string>
<string name="custom_port_dialog_remove">Удалить пользовательский порт</string>
<string name="custom_port_dialog_submit">Установить порт</string>
<string name="custom_port_dialog_title">Пользовательский порт WireGuard</string>
<string name="custom_port_dialog_valid_ranges">Допустимые диапазоны: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Не удалось преобразовать имя узла пользовательского туннеля. Попробуйте изменить настройки.</string>
+ <string name="delete">Удалить</string>
+ <string name="delete_list">Удалить список</string>
<string name="device_inactive_description">Вы удалили это устройство. Чтобы снова подключиться, нужно будет выполнить вход.</string>
<string name="device_inactive_title">Устройство неактивно</string>
<string name="device_inactive_unblock_warning">Вход в профиль разблокирует Интернет на этом устройстве.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Только арендованные</string>
<string name="report_a_problem">Сообщение о проблеме</string>
<string name="reset_to_default_button">Восстановить значение по умолчанию</string>
+ <string name="save">Сохранить</string>
<string name="search_placeholder">Поиск...</string>
<string name="secure_connection">ЗАЩИЩЕННОЕ ПОДКЛЮЧЕНИЕ</string>
<string name="secured">Подключение защищено</string>
diff --git a/android/lib/resource/src/main/res/values-sv/strings.xml b/android/lib/resource/src/main/res/values-sv/strings.xml
index 0addc6598b..f5a5012025 100644
--- a/android/lib/resource/src/main/res/values-sv/strings.xml
+++ b/android/lib/resource/src/main/res/values-sv/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s har lagts till på ditt konto.</string>
<string name="agree_and_continue">Godkänn och fortsätt</string>
<string name="all_applications">Alla applikationer</string>
+ <string name="all_locations">Alla platser</string>
<string name="all_providers">Alla leverantörer</string>
<string name="allow_lan_footer">Tillåter åtkomst till andra enheter på samma nätverk för delning, utskrift osv.</string>
<string name="always_on_vpn_error_notification_content">Det går inte att starta tunnelanslutning. Aktivera VPN som alltid är på för &lt;b&gt;%1$s&lt;/b&gt; innan du använder Mullvad VPN.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Inaktivera alla &lt;b&gt;%1$s&lt;/b&gt; ovan för att aktivera inställningen.</string>
<string name="custom_dns_footer">Aktivera för att lägga till minst en DNS-server.</string>
<string name="custom_dns_hint">Ange IP</string>
+ <string name="custom_list_error_list_exists">Namnet används redan.</string>
+ <string name="custom_lists">Anpassade listor</string>
<string name="custom_port_dialog_placeholder">Ange port</string>
<string name="custom_port_dialog_remove">Ta bort anpassad port</string>
<string name="custom_port_dialog_submit">Ställ in port</string>
<string name="custom_port_dialog_title">Anpassad WireGuard-port</string>
<string name="custom_port_dialog_valid_ranges">Giltiga intervall: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Det går inte att lösa värd för anpassad tunnel. Försök att ändra inställningarna.</string>
+ <string name="delete">Ta bort</string>
+ <string name="delete_list">Ta bort lista</string>
<string name="device_inactive_description">Du har tagit bort den här enheten. Du måste logga in igen för att återansluta.</string>
<string name="device_inactive_title">Enheten är inaktiv</string>
<string name="device_inactive_unblock_warning">Om du loggar in tas blockering av internet bort på den här enheten.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Endast hyrd</string>
<string name="report_a_problem">Rapportera ett problem</string>
<string name="reset_to_default_button">Återställ till standard</string>
+ <string name="save">Spara</string>
<string name="search_placeholder">Sök efter …</string>
<string name="secure_connection">SÄKER ANSLUTNING</string>
<string name="secured">Skyddad</string>
diff --git a/android/lib/resource/src/main/res/values-th/strings.xml b/android/lib/resource/src/main/res/values-th/strings.xml
index fd0e73ffe1..935ca673e4 100644
--- a/android/lib/resource/src/main/res/values-th/strings.xml
+++ b/android/lib/resource/src/main/res/values-th/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s ถูกเพิ่มลงในบัญชีของคุณแล้ว</string>
<string name="agree_and_continue">ยอมรับและดำเนินการต่อ</string>
<string name="all_applications">แอปพลิเคชันทั้งหมด</string>
+ <string name="all_locations">ตำแหน่งที่ตั้งทั้งหมด</string>
<string name="all_providers">ผู้ให้บริการทั้งหมด</string>
<string name="allow_lan_footer">อนุญาตให้เข้าถึงอุปกรณ์อื่นๆ บนเครือข่ายเดียวกัน เพื่อแชร์ พิมพ์ ฯลฯ</string>
<string name="always_on_vpn_error_notification_content">ไม่สามารถเริ่มการเชื่อมต่ออุโมงค์ได้ โปรดปิดใช้งาน Always-on VPN เป็นเวลา &lt;b&gt;%1$s&lt;/b&gt; ก่อนที่จะใช้งาน Mullvad VPN</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">ปิดใช้งาน &lt;b&gt;%1$s&lt;/b&gt; ด้านบนทั้งหมด เพื่อเปิดใช้การตั้งค่านี้</string>
<string name="custom_dns_footer">เปิดเพื่อเพิ่มเซิร์ฟเวอร์ DNS อย่างน้อยหนึ่งรายการ</string>
<string name="custom_dns_hint">ป้อน IP</string>
+ <string name="custom_list_error_list_exists">ชื่อนี้ถูกใช้ไปแล้ว</string>
+ <string name="custom_lists">รายการกำหนดเอง</string>
<string name="custom_port_dialog_placeholder">ป้อนพอร์ต</string>
<string name="custom_port_dialog_remove">นำพอร์ตแบบกำหนดเองออก</string>
<string name="custom_port_dialog_submit">ตั้งค่าพอร์ต</string>
<string name="custom_port_dialog_title">พอร์ต WireGuard แบบกำหนดเอง</string>
<string name="custom_port_dialog_valid_ranges">ช่วงที่ใช้ได้: %1$s</string>
<string name="custom_tunnel_host_resolution_error">ไม่พบโฮสต์ของช่องทางแบบกำหนดเอง กรุณาลองเปลี่ยนการตั้งค่าของคุณ</string>
+ <string name="delete">ลบ</string>
+ <string name="delete_list">ลบรายการ</string>
<string name="device_inactive_description">คุณได้ลบอุปกรณ์เครื่องนี้แล้ว หากต้องการเชื่อมต่ออีกครั้ง คุณจะต้องเข้าสู่ระบบใหม่อีกครั้ง</string>
<string name="device_inactive_title">อุปกรณ์ไม่ได้ใช้งาน</string>
<string name="device_inactive_unblock_warning">การไปที่ส่วนเข้าสู่ระบบจะปลดบล็อกอินเทอร์เน็ตบนอุปกรณ์เครื่องนี้</string>
@@ -194,6 +199,7 @@
<string name="rented_only">เช่าเท่านั้น</string>
<string name="report_a_problem">รายงานปัญหา</string>
<string name="reset_to_default_button">รีเซ็ตเป็นค่าเริ่มต้น</string>
+ <string name="save">บันทึก</string>
<string name="search_placeholder">ค้นหา…</string>
<string name="secure_connection">การเชื่อมต่อที่ปลอดภัย</string>
<string name="secured">ปลอดภัย</string>
diff --git a/android/lib/resource/src/main/res/values-tr/strings.xml b/android/lib/resource/src/main/res/values-tr/strings.xml
index 120faf329c..4d3a0e4b45 100644
--- a/android/lib/resource/src/main/res/values-tr/strings.xml
+++ b/android/lib/resource/src/main/res/values-tr/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">Hesabınıza %1$s eklendi.</string>
<string name="agree_and_continue">Kabul et ve devam et</string>
<string name="all_applications">Tüm uygulamalar</string>
+ <string name="all_locations">Tüm konumlar</string>
<string name="all_providers">Tüm hizmet sağlayıcılar</string>
<string name="allow_lan_footer">Paylaşım, yazdırma gibi özellikler için aynı ağdaki diğer cihazlara erişim izni verir.</string>
<string name="always_on_vpn_error_notification_content">Tünel bağlantısı başlatılamıyor. Mullvad VPN\'i kullanmadan önce lütfen Her zaman açık VPN\'i &lt;b&gt;%1$s&lt;/b&gt; için devre dışı bırakın.</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">Bu ayarı etkinleştirmek için yukarıdaki &lt;b&gt;%1$s&lt;/b&gt; öğelerinin tümünü devre dışı bırakın.</string>
<string name="custom_dns_footer">En az bir DNS sunucusu eklemek için etkinleştirin.</string>
<string name="custom_dns_hint">IP\'yi girin</string>
+ <string name="custom_list_error_list_exists">İsim zaten kullanılıyor.</string>
+ <string name="custom_lists">Özel listeler</string>
<string name="custom_port_dialog_placeholder">Portu girin</string>
<string name="custom_port_dialog_remove">Özel portu kaldır</string>
<string name="custom_port_dialog_submit">Portu ayarla</string>
<string name="custom_port_dialog_title">WireGuard özel portu</string>
<string name="custom_port_dialog_valid_ranges">Geçerli aralıklar: %1$s</string>
<string name="custom_tunnel_host_resolution_error">Özel tünel ana bilgisayarı çözülemedi. Ayarlarınızı değiştirmeyi deneyin.</string>
+ <string name="delete">Sil</string>
+ <string name="delete_list">Listeyi sil</string>
<string name="device_inactive_description">Bu cihazı kaldırdın. Tekrar bağlanmak için yeniden giriş yapmanız gerekecek.</string>
<string name="device_inactive_title">Cihaz etkin değil</string>
<string name="device_inactive_unblock_warning">Giriş yapmak bu cihazdaki internet engelini kaldıracaktır.</string>
@@ -194,6 +199,7 @@
<string name="rented_only">Sadece kiralananlar</string>
<string name="report_a_problem">Bir sorun bildir</string>
<string name="reset_to_default_button">Varsayılana sıfırla</string>
+ <string name="save">Kaydet</string>
<string name="search_placeholder">Ara...</string>
<string name="secure_connection">GÜVENLİ BAĞLANTI</string>
<string name="secured">Güvenli</string>
diff --git a/android/lib/resource/src/main/res/values-zh-rCN/strings.xml b/android/lib/resource/src/main/res/values-zh-rCN/strings.xml
index 6fcf9acc4d..f9e3e30ea6 100644
--- a/android/lib/resource/src/main/res/values-zh-rCN/strings.xml
+++ b/android/lib/resource/src/main/res/values-zh-rCN/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s已添加到您的帐户中。</string>
<string name="agree_and_continue">同意并继续</string>
<string name="all_applications">所有应用程序</string>
+ <string name="all_locations">所有位置</string>
<string name="all_providers">所有提供商</string>
<string name="allow_lan_footer">允许访问同一网络上的其他设备,以进行共享、打印等</string>
<string name="always_on_vpn_error_notification_content">无法启动隧道连接。在使用 Mullvad VPN 之前,请为 &lt;b&gt;%1$s&lt;/b&gt; 禁用“始终开启的 VPN”。</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">禁用上方的所有 &lt;b&gt;%1$s&lt;/b&gt;以激活此设置。</string>
<string name="custom_dns_footer">启用以添加至少一个 DNS 服务器。</string>
<string name="custom_dns_hint">输入 IP</string>
+ <string name="custom_list_error_list_exists">名称已被占用。</string>
+ <string name="custom_lists">自定义列表</string>
<string name="custom_port_dialog_placeholder">输入端口</string>
<string name="custom_port_dialog_remove">移除自定义端口</string>
<string name="custom_port_dialog_submit">设置端口</string>
<string name="custom_port_dialog_title">WireGuard 自定义端口</string>
<string name="custom_port_dialog_valid_ranges">有效范围:%1$s</string>
<string name="custom_tunnel_host_resolution_error">无法解析自定义隧道的主机。请尝试更改您的设置。</string>
+ <string name="delete">删除</string>
+ <string name="delete_list">删除列表</string>
<string name="device_inactive_description">您已移除此设备。要重新连接,您需要重新登录。</string>
<string name="device_inactive_title">设备处于非活动状态</string>
<string name="device_inactive_unblock_warning">前往登录将在此设备上解除阻止互联网。</string>
@@ -194,6 +199,7 @@
<string name="rented_only">仅租用</string>
<string name="report_a_problem">报告问题</string>
<string name="reset_to_default_button">重置为默认值</string>
+ <string name="save">保存</string>
<string name="search_placeholder">搜索…</string>
<string name="secure_connection">安全连接</string>
<string name="secured">已受保护</string>
diff --git a/android/lib/resource/src/main/res/values-zh-rTW/strings.xml b/android/lib/resource/src/main/res/values-zh-rTW/strings.xml
index c7e5f7f137..a250e018e4 100644
--- a/android/lib/resource/src/main/res/values-zh-rTW/strings.xml
+++ b/android/lib/resource/src/main/res/values-zh-rTW/strings.xml
@@ -15,6 +15,7 @@
<string name="added_to_your_account">%1$s已新增至您的帳戶。</string>
<string name="agree_and_continue">同意並繼續</string>
<string name="all_applications">所有應用程式</string>
+ <string name="all_locations">所有位置</string>
<string name="all_providers">所有供應商</string>
<string name="allow_lan_footer">允許存取同一網路上的其他裝置,以進行分享、列印等。</string>
<string name="always_on_vpn_error_notification_content">無法啟動通道連線。在使用 Mullvad VPN 之前,請先為 &lt;b&gt;%1$s&lt;/b&gt; 停用「始終啟用 VPN」。</string>
@@ -68,12 +69,16 @@
<string name="custom_dns_disable_mode_subtitle">停用上方所有 &lt;b&gt;%1$s&lt;/b&gt;以啟動此設定。</string>
<string name="custom_dns_footer">啟用以新增至少一個 DNS 伺服器。</string>
<string name="custom_dns_hint">輸入 IP</string>
+ <string name="custom_list_error_list_exists">名稱已在別處使用。</string>
+ <string name="custom_lists">自訂清單</string>
<string name="custom_port_dialog_placeholder">輸入連接埠</string>
<string name="custom_port_dialog_remove">移除自訂連接埠</string>
<string name="custom_port_dialog_submit">設定連接埠</string>
<string name="custom_port_dialog_title">WireGuard 自訂連接埠</string>
<string name="custom_port_dialog_valid_ranges">有效範圍:%1$s</string>
<string name="custom_tunnel_host_resolution_error">無法解析自訂通道的主機。請嘗試變更您的設定。</string>
+ <string name="delete">刪除</string>
+ <string name="delete_list">刪除清單</string>
<string name="device_inactive_description">您已移除此裝置。若要重新連線,您需要重新登入。</string>
<string name="device_inactive_title">裝置處於非活動狀態</string>
<string name="device_inactive_unblock_warning">若前往登入,則會在此裝置上解除對網際網路的封鎖。</string>
@@ -194,6 +199,7 @@
<string name="rented_only">僅租用</string>
<string name="report_a_problem">回報問題</string>
<string name="reset_to_default_button">重設為預設值</string>
+ <string name="save">儲存</string>
<string name="search_placeholder">搜尋…</string>
<string name="secure_connection">安全連線</string>
<string name="secured">安全</string>
diff --git a/android/lib/resource/src/main/res/values/plurals.xml b/android/lib/resource/src/main/res/values/plurals.xml
index 455d42c1f2..cd913ffa05 100644
--- a/android/lib/resource/src/main/res/values/plurals.xml
+++ b/android/lib/resource/src/main/res/values/plurals.xml
@@ -48,4 +48,8 @@
<item quantity="one">%d month</item>
<item quantity="other">%d months</item>
</plurals>
+ <plurals name="number_of_locations">
+ <item quantity="one">%d location</item>
+ <item quantity="other">%d locations</item>
+ </plurals>
</resources>
diff --git a/android/lib/resource/src/main/res/values/strings.xml b/android/lib/resource/src/main/res/values/strings.xml
index 4400250dbc..88c38adc7f 100644
--- a/android/lib/resource/src/main/res/values/strings.xml
+++ b/android/lib/resource/src/main/res/values/strings.xml
@@ -282,4 +282,39 @@
<string name="split_tunneling_disabled_description">Split tunneling is disabled.</string>
<string name="auto_connect_legacy">Auto-connect (legacy)</string>
<string name="auto_connect_footer_legacy"><![CDATA[Please use the <b>Always-on</b> system setting instead by following the guide in <b>%s</b> above.]]></string>
+ <string name="custom_lists">Custom lists</string>
+ <string name="all_locations">All locations</string>
+ <string name="edit_lists">Edit lists</string>
+ <string name="create_new_list">Create new list</string>
+ <string name="create">Create</string>
+ <string name="no_locations_found">No locations found</string>
+ <string name="add_locations">Add locations</string>
+ <string name="save">Save</string>
+ <string name="edit_custom_lists">Edit custom lists</string>
+ <string name="delete_list">Delete list</string>
+ <string name="list_name">List name</string>
+ <string name="locations">Locations</string>
+ <string name="edit_locations">Edit locations</string>
+ <string name="delete_custom_list_confirmation_description">
+ Delete \"%s\"?
+ </string>
+ <string name="custom_list_error_list_exists">Name is already taken.</string>
+ <string name="update_list_name">Update list name</string>
+ <string name="no_custom_lists_available">No custom lists available</string>
+ <string name="to_create_a_custom_list">To create a custom list press the \"︙\"</string>
+ <string name="new_list">New list</string>
+ <string name="to_add_locations_to_a_list">To add locations to a list, press the \"︙\" or long press on a country, city, or server.</string>
+ <string name="edit_list">Edit list</string>
+ <string name="delete">Delete</string>
+ <string name="delete_custom_list_message">\"%s\" was deleted</string>
+ <string name="undo">Undo</string>
+ <string name="discard_changes">Discard changes?</string>
+ <string name="discard">Discard</string>
+ <string name="add_location_to_list">Add %s to list</string>
+ <string name="location_was_added_to_list">%s was added to \"%s\"</string>
+ <string name="location_added">%s (added)</string>
+ <string name="edit_name">Edit name</string>
+ <string name="name_was_changed_to">Name was changed to %s</string>
+ <string name="locations_were_changed_for">Locations were changed for \"%s\"</string>
+ <string name="not_found">Not found</string>
</resources>
diff --git a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/Theme.kt b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/Theme.kt
index 85d45c4d2b..69096ceccb 100644
--- a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/Theme.kt
+++ b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/Theme.kt
@@ -33,6 +33,12 @@ import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_onSurfaceVariant
import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_onTertiaryContainer
import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_primary
import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_secondaryContainer
+import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_surfaceContainer
+import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_surfaceContainerHigh
+import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_surfaceContainerHighest
+import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_surfaceContainerLow
+import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_surfaceContainerLowest
+import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_surfaceTint
import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_surfaceVariant
import net.mullvad.mullvadvpn.lib.theme.color.md_theme_dark_tertiaryContainer
import net.mullvad.mullvadvpn.lib.theme.dimensions.Dimensions
@@ -89,6 +95,12 @@ private val darkColorScheme =
// surfaceTint = md_theme_dark_surfaceTint,
outlineVariant = Color.Transparent, // Used by divider,
// scrim = md_theme_dark_scrim,
+ surfaceContainerHighest = md_theme_dark_surfaceContainerHighest,
+ surfaceContainerHigh = md_theme_dark_surfaceContainerHigh,
+ surfaceContainerLow = md_theme_dark_surfaceContainerLow,
+ surfaceContainerLowest = md_theme_dark_surfaceContainerLowest,
+ surfaceContainer = md_theme_dark_surfaceContainer,
+ surfaceTint = md_theme_dark_surfaceTint
)
val Shapes =
diff --git a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/Color.kt b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/Color.kt
index 82f924ebe0..01959b7934 100644
--- a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/Color.kt
+++ b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/Color.kt
@@ -21,6 +21,7 @@ const val AlphaDescription = 0.6f
const val AlphaDisconnectButton = 0.6f
const val AlphaChevron = 0.6f
const val AlphaScrollbar = 0.6f
+const val Alpha60 = 0.6f
const val AlphaTopBar = 0.8f
const val AlphaInvisible = 0f
diff --git a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/ColorTokens.kt b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/ColorTokens.kt
index 413a37f93e..1915cc911a 100644
--- a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/ColorTokens.kt
+++ b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/ColorTokens.kt
@@ -61,6 +61,11 @@ internal val md_theme_dark_outline = Color(0xFF8D9199) // Generated
internal val md_theme_dark_inverseOnSurface = Color(0xFFFFFFFF) // MullvadWhite
internal val md_theme_dark_inverseSurface = Color(0xFFFFFFFF) // MullvadWhite
internal val md_theme_dark_inversePrimary = Color(0xFF0561A3) // Generated
-internal val md_theme_dark_surfaceTint = Color(0xFF9FCAFF) // Generated
+internal val md_theme_dark_surfaceTint = Color(0xFF233953) // Custom list disabled
internal val md_theme_dark_outlineVariant = Color(0xFF43474E) // Generated
internal val md_theme_dark_scrim = Color(0xFF000000) // Generated
+internal val md_theme_dark_surfaceContainerHighest = Color(0xFF234161) // Relay list depth 0
+internal val md_theme_dark_surfaceContainerHigh = Color(0xFF1F3A57) // Relay list depth 1
+internal val md_theme_dark_surfaceContainerLow = Color(0xFF1C344E) // Relay list depth 2
+internal val md_theme_dark_surfaceContainerLowest = Color(0xFF1B314A) // Relay list depth 3
+internal val md_theme_dark_surfaceContainer = Color(0xFF192638) // Alert Blue
diff --git a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt
index ef6b04146e..2763033a30 100644
--- a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt
+++ b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt
@@ -16,8 +16,10 @@ data class Dimensions(
val cellEndPadding: Dp = 16.dp,
val cellFooterTopPadding: Dp = 6.dp,
val cellHeight: Dp = 56.dp,
+ val cellHeightTwoRows: Dp = 72.dp,
val cellLabelVerticalPadding: Dp = 14.dp,
val cellStartPadding: Dp = 22.dp,
+ val cellStartPaddingInteractive: Dp = 14.dp,
val cellTopPadding: Dp = 6.dp,
val cellVerticalSpacing: Dp = 14.dp,
val checkBoxSize: Dp = 24.dp,
@@ -36,7 +38,8 @@ data class Dimensions(
val customPortBoxMinWidth: Dp = 80.dp,
val deleteIconSize: Dp = 24.dp,
val dialogIconHeight: Dp = 44.dp,
- val dialogIconSize: Dp = 48.dp,
+ val dropdownMenuVerticalPadding: Dp = 8.dp, // Used to remove padding from dropdown menu
+ val dropdownMenuBorder: Dp = 1.dp,
val expandableCellChevronSize: Dp = 30.dp,
val filterTittlePadding: Dp = 4.dp,
val iconFailSuccessTopMargin: Dp = 30.dp,
@@ -61,6 +64,7 @@ data class Dimensions(
val progressIndicatorSize: Dp = 48.dp,
val relayCircleSize: Dp = 16.dp,
val relayRowPadding: Dp = 50.dp,
+ val relayRowPaddingExtra: Dp = 66.dp,
val screenVerticalMargin: Dp = 22.dp,
val searchFieldHeight: Dp = 42.dp,
val searchFieldHorizontalPadding: Dp = 22.dp,
diff --git a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/shape/Shape.kt b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/shape/Shape.kt
index 501cb72946..aa2f40782c 100644
--- a/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/shape/Shape.kt
+++ b/android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/shape/Shape.kt
@@ -11,3 +11,9 @@ val Shapes.chipShape: Shape
get() {
return RoundedCornerShape(8.dp)
}
+
+val Shapes.fabShape: Shape
+ @Composable
+ get() {
+ return RoundedCornerShape(16.dp)
+ }