summaryrefslogtreecommitdiffhomepage
path: root/android/lib
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2023-01-10 15:58:10 +0100
committerAlbin <albin@mullvad.net>2023-01-10 15:58:10 +0100
commit7ea38a3881b92b17658a5be4f0e627601212db6c (patch)
tree96c12212b3f95c7ea588099aec7cb5fdb22942ed /android/lib
parentfee3b5804555b3287c9c59aecd3682f118735ba8 (diff)
parent57008a509342f547f5e56ef781a7f2e8a18298c0 (diff)
downloadmullvadvpn-7ea38a3881b92b17658a5be4f0e627601212db6c.tar.xz
mullvadvpn-7ea38a3881b92b17658a5be4f0e627601212db6c.zip
Merge branch 'add-instrumented-tests-using-mocked-api'
Diffstat (limited to 'android/lib')
-rw-r--r--android/lib/build.gradle.kts0
-rw-r--r--android/lib/endpoint/build.gradle.kts28
-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
8 files changed, 85 insertions, 0 deletions
diff --git a/android/lib/build.gradle.kts b/android/lib/build.gradle.kts
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/android/lib/build.gradle.kts
diff --git a/android/lib/endpoint/build.gradle.kts b/android/lib/endpoint/build.gradle.kts
new file mode 100644
index 0000000000..d289749704
--- /dev/null
+++ b/android/lib/endpoint/build.gradle.kts
@@ -0,0 +1,28 @@
+plugins {
+ id(Dependencies.Plugin.androidLibraryId)
+ id(Dependencies.Plugin.kotlinAndroidId)
+ id(Dependencies.Plugin.kotlinParcelizeId)
+}
+
+android {
+ namespace = "net.mullvad.mullvadvpn.lib.endpoint"
+ compileSdk = Versions.Android.compileSdkVersion
+
+ defaultConfig {
+ minSdk = Versions.Android.minSdkVersion
+ targetSdk = Versions.Android.targetSdkVersion
+ }
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+
+ kotlinOptions {
+ jvmTarget = Versions.jvmTarget
+ }
+}
+
+dependencies {
+ implementation(Dependencies.Kotlin.stdlib)
+}
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
+}