diff options
| author | Albin <albin@mullvad.net> | 2023-01-10 15:58:10 +0100 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2023-01-10 15:58:10 +0100 |
| commit | 7ea38a3881b92b17658a5be4f0e627601212db6c (patch) | |
| tree | 96c12212b3f95c7ea588099aec7cb5fdb22942ed /android/lib | |
| parent | fee3b5804555b3287c9c59aecd3682f118735ba8 (diff) | |
| parent | 57008a509342f547f5e56ef781a7f2e8a18298c0 (diff) | |
| download | mullvadvpn-7ea38a3881b92b17658a5be4f0e627601212db6c.tar.xz mullvadvpn-7ea38a3881b92b17658a5be4f0e627601212db6c.zip | |
Merge branch 'add-instrumented-tests-using-mocked-api'
Diffstat (limited to 'android/lib')
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 +} |
