summaryrefslogtreecommitdiffhomepage
path: root/android/lib/endpoint/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/lib/endpoint/src')
-rw-r--r--android/lib/endpoint/src/debug/kotlin/net/mullvad/mullvadvpn/lib/endpoint/CustomApiEndpointConfiguration.kt10
-rw-r--r--android/lib/endpoint/src/main/AndroidManifest.xml1
-rw-r--r--android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpoint.kt13
-rw-r--r--android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpointConfiguration.kt7
-rw-r--r--android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpointIntentExtensions.kt18
-rw-r--r--android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/DefaultApiEndpointConfiguration.kt8
6 files changed, 57 insertions, 0 deletions
diff --git a/android/lib/endpoint/src/debug/kotlin/net/mullvad/mullvadvpn/lib/endpoint/CustomApiEndpointConfiguration.kt b/android/lib/endpoint/src/debug/kotlin/net/mullvad/mullvadvpn/lib/endpoint/CustomApiEndpointConfiguration.kt
new file mode 100644
index 0000000000..b3a00c809c
--- /dev/null
+++ b/android/lib/endpoint/src/debug/kotlin/net/mullvad/mullvadvpn/lib/endpoint/CustomApiEndpointConfiguration.kt
@@ -0,0 +1,10 @@
+package net.mullvad.mullvadvpn.lib.endpoint
+
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+data class CustomApiEndpointConfiguration(
+ val apiEndpoint: ApiEndpoint
+) : ApiEndpointConfiguration {
+ override fun apiEndpoint() = apiEndpoint
+}
diff --git a/android/lib/endpoint/src/main/AndroidManifest.xml b/android/lib/endpoint/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..cc947c5679
--- /dev/null
+++ b/android/lib/endpoint/src/main/AndroidManifest.xml
@@ -0,0 +1 @@
+<manifest />
diff --git a/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpoint.kt b/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpoint.kt
new file mode 100644
index 0000000000..7325e3f61b
--- /dev/null
+++ b/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpoint.kt
@@ -0,0 +1,13 @@
+package net.mullvad.mullvadvpn.lib.endpoint
+
+import android.os.Parcelable
+import java.net.InetSocketAddress
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+data class ApiEndpoint(
+ val address: InetSocketAddress,
+ val disableAddressCache: Boolean,
+ val disableTls: Boolean,
+ val forceDirectConnection: Boolean
+) : Parcelable
diff --git a/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpointConfiguration.kt b/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpointConfiguration.kt
new file mode 100644
index 0000000000..164a9fffa7
--- /dev/null
+++ b/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpointConfiguration.kt
@@ -0,0 +1,7 @@
+package net.mullvad.mullvadvpn.lib.endpoint
+
+import android.os.Parcelable
+
+interface ApiEndpointConfiguration : Parcelable {
+ fun apiEndpoint(): ApiEndpoint?
+}
diff --git a/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpointIntentExtensions.kt b/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpointIntentExtensions.kt
new file mode 100644
index 0000000000..cf2f2fb0dd
--- /dev/null
+++ b/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/ApiEndpointIntentExtensions.kt
@@ -0,0 +1,18 @@
+package net.mullvad.mullvadvpn.lib.endpoint
+
+import android.content.Intent
+import android.os.Build
+
+private const val OVERRIDE_API_EXTRA_NAME = "override_api"
+
+fun Intent.putApiEndpointConfigurationExtra(apiEndpointConfiguration: ApiEndpointConfiguration) {
+ putExtra(OVERRIDE_API_EXTRA_NAME, apiEndpointConfiguration)
+}
+
+fun Intent.getApiEndpointConfigurationExtras(): ApiEndpointConfiguration? {
+ return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ getParcelableExtra(OVERRIDE_API_EXTRA_NAME, ApiEndpointConfiguration::class.java)
+ } else {
+ getParcelableExtra(OVERRIDE_API_EXTRA_NAME)
+ }
+}
diff --git a/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/DefaultApiEndpointConfiguration.kt b/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/DefaultApiEndpointConfiguration.kt
new file mode 100644
index 0000000000..90b9bc7896
--- /dev/null
+++ b/android/lib/endpoint/src/main/kotlin/net/mullvad/mullvadvpn/lib/endpoint/DefaultApiEndpointConfiguration.kt
@@ -0,0 +1,8 @@
+package net.mullvad.mullvadvpn.lib.endpoint
+
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+class DefaultApiEndpointConfiguration : ApiEndpointConfiguration {
+ override fun apiEndpoint(): ApiEndpoint? = null
+}