diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-06-13 16:37:23 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-06-14 13:27:05 +0200 |
| commit | 7dd2345f65acb9fe9a9b57809603db3a65417a8b (patch) | |
| tree | 1ed1918cb8742f470b5d7182f6ef92c7ee0ed97e /android/lib | |
| parent | e80e9ee68559fcd32747c28a829e70d2121e9344 (diff) | |
| download | mullvadvpn-7dd2345f65acb9fe9a9b57809603db3a65417a8b.tar.xz mullvadvpn-7dd2345f65acb9fe9a9b57809603db3a65417a8b.zip | |
Add ui for api access method functionality
Diffstat (limited to 'android/lib')
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, |
