summaryrefslogtreecommitdiffhomepage
path: root/android/lib
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-06-13 16:37:23 +0200
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-06-14 13:27:05 +0200
commit7dd2345f65acb9fe9a9b57809603db3a65417a8b (patch)
tree1ed1918cb8742f470b5d7182f6ef92c7ee0ed97e /android/lib
parente80e9ee68559fcd32747c28a829e70d2121e9344 (diff)
downloadmullvadvpn-7dd2345f65acb9fe9a9b57809603db3a65417a8b.tar.xz
mullvadvpn-7dd2345f65acb9fe9a9b57809603db3a65417a8b.zip
Add ui for api access method functionality
Diffstat (limited to 'android/lib')
-rw-r--r--android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/CommonListExtensions.kt4
-rw-r--r--android/lib/resource/src/main/res/values/strings.xml39
-rw-r--r--android/lib/resource/src/main/res/values/strings_non_translatable.xml2
-rw-r--r--android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/color/Color.kt11
-rw-r--r--android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/dimensions/Dimensions.kt1
5 files changed, 57 insertions, 0 deletions
diff --git a/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/CommonListExtensions.kt b/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/CommonListExtensions.kt
new file mode 100644
index 0000000000..d613cf7463
--- /dev/null
+++ b/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/CommonListExtensions.kt
@@ -0,0 +1,4 @@
+package net.mullvad.mullvadvpn.lib.common.util
+
+inline fun <T, reified E : T> List<T>.getFirstInstanceOrNull(): E? =
+ this.filterIsInstance<E>().firstOrNull()
diff --git a/android/lib/resource/src/main/res/values/strings.xml b/android/lib/resource/src/main/res/values/strings.xml
index 72b256b1cc..f7fafc72ff 100644
--- a/android/lib/resource/src/main/res/values/strings.xml
+++ b/android/lib/resource/src/main/res/values/strings.xml
@@ -346,4 +346,43 @@
<string name="settings_patch_success">Import successful, overrides active</string>
<string name="overrides_cleared">Overrides cleared</string>
<string name="unsecured_vpn_permission_error">Unsecured (No VPN permission)</string>
+ <string name="settings_api_access">API access</string>
+ <string name="add">Add</string>
+ <string name="api_access_description">Manage and add custom methods to access the Mullvad API.</string>
+ <string name="current_method">Current: %s</string>
+ <string name="api_access_method_info_first_line">The app needs to communicate with a Mullvad API server to log you in, fetch server lists, and other critical operations.</string>
+ <string name="api_access_method_info_second_line">On some networks, where various types of censorship are being used, the API servers might not be directly reachable.</string>
+ <string name="api_access_method_info_third_line">This feature allows you to circumvent that censorship by adding custom ways to access the API via proxies and similar methods.</string>
+ <string name="api_access_method_info_fourth_line">The \"Current\" method represent which method the app is using to reach the API.</string>
+ <string name="edit_method">Edit method</string>
+ <string name="add_method">Add method</string>
+ <string name="name">Name</string>
+ <string name="this_field_is_required">This field is required</string>
+ <string name="type">Type</string>
+ <string name="server">Server</string>
+ <string name="please_enter_a_valid_ip_address">Please enter a valid IPv4 or IPv6 address</string>
+ <string name="please_enter_a_valid_remote_server_port">Please enter a valid remote server port</string>
+ <string name="password_optional">Password (optional)</string>
+ <string name="cipher">Cipher</string>
+ <string name="authentication">Authentication</string>
+ <string name="username">Username</string>
+ <string name="password">Password</string>
+ <string name="transport_protocol">Transport protocol</string>
+ <string name="test_method">Test method</string>
+ <string name="api_reachable">API reachable</string>
+ <string name="api_unreachable">API unreachable</string>
+ <string name="testing_name">Testing %s...</string>
+ <string name="testing">Testing...</string>
+ <string name="verifying_api_method">Verifying API method...</string>
+ <string name="api_reachable_adding_method">API reachable, adding method...</string>
+ <string name="api_unreachable_save_anyway">API unreachable, save method anyway?</string>
+ <string name="adding_method">Adding method...</string>
+ <string name="enable_method">Enable method</string>
+ <string name="use_method">Use method</string>
+ <string name="delete_method">Delete method</string>
+ <string name="at_least_on_method_needs_to_enabled">At least one method needs to be enabled</string>
+ <string name="this_is_already_set_as_current">This is already set as current</string>
+ <string name="delete_method_question">Delete method?</string>
+ <string name="failed_to_set_current_test_error">Failed to set to current - API not reachable</string>
+ <string name="failed_to_set_current_unknown_error">Failed to set to current - Unknown reason</string>
</resources>
diff --git a/android/lib/resource/src/main/res/values/strings_non_translatable.xml b/android/lib/resource/src/main/res/values/strings_non_translatable.xml
index 0b29d112b2..110e112e99 100644
--- a/android/lib/resource/src/main/res/values/strings_non_translatable.xml
+++ b/android/lib/resource/src/main/res/values/strings_non_translatable.xml
@@ -9,6 +9,8 @@
<string name="lockdown_url" translatable="false">https://mullvad.net/l/android-lockdown</string>
<string name="split_tunneling" translatable="false">Split tunneling</string>
<string name="wireguard" translatable="false">WireGuard</string>
+ <string name="socks5_remote">SOCKS5</string>
+ <string name="shadowsocks">Shadowsocks</string>
<string name="local_network_sharing_ip_ranges">
<![CDATA[<ul><li>10.0.0.0/8</li><li>172.16.0.0/12</li><li>192.168.0.0/16</li><li>169.254.0.0/16</li><li>fe80::/10</li><li>fc00::/7</li></ul>]]>
</string>
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 01959b7934..343e41dc1a 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
@@ -2,6 +2,8 @@ package net.mullvad.mullvadvpn.lib.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.MenuDefaults
+import androidx.compose.material3.MenuItemColors
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
@@ -33,3 +35,12 @@ val ColorScheme.onVariant: Color
val ColorScheme.selected: Color
@Composable get() = MaterialTheme.colorScheme.surface
+
+val menuItemColors: MenuItemColors
+ @Composable
+ get() =
+ MenuDefaults.itemColors()
+ .copy(
+ leadingIconColor = MaterialTheme.colorScheme.onSurface,
+ textColor = MaterialTheme.colorScheme.onSurface,
+ )
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 2763033a30..ef3564951f 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
@@ -42,6 +42,7 @@ data class Dimensions(
val dropdownMenuBorder: Dp = 1.dp,
val expandableCellChevronSize: Dp = 30.dp,
val filterTittlePadding: Dp = 4.dp,
+ val formTextFieldMinHeight: Dp = 72.dp,
val iconFailSuccessTopMargin: Dp = 30.dp,
val iconHeight: Dp = 44.dp,
val indentedCellStartPadding: Dp = 38.dp,