diff options
| author | Jonathan <jonathan@mullvad.net> | 2023-10-16 19:44:21 +0200 |
|---|---|---|
| committer | Jonathan <jonathan@mullvad.net> | 2023-10-16 19:44:21 +0200 |
| commit | 9ea790f2e6ac363f59fceec5ae5a25aad6af06f4 (patch) | |
| tree | 677680bd9b3fbb1156c7396ace8d57f97141001a /android | |
| parent | d32b6f81ceb8c383588678e8fbabe613fbac4142 (diff) | |
| parent | bf6d46a8274106150986665373bbb2127d72b83c (diff) | |
| download | mullvadvpn-9ea790f2e6ac363f59fceec5ae5a25aad6af06f4.tar.xz mullvadvpn-9ea790f2e6ac363f59fceec5ae5a25aad6af06f4.zip | |
Merge branch 'feature-api-android-inapp-purchases'
Diffstat (limited to 'android')
6 files changed, 64 insertions, 0 deletions
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchase.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchase.kt new file mode 100644 index 0000000000..8ae46a07a9 --- /dev/null +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchase.kt @@ -0,0 +1,6 @@ +package net.mullvad.mullvadvpn.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize data class PlayPurchase(val productId: String, val purchaseToken: String) : Parcelable diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseInitError.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseInitError.kt new file mode 100644 index 0000000000..39aebabbe2 --- /dev/null +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseInitError.kt @@ -0,0 +1,10 @@ +package net.mullvad.mullvadvpn.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +enum class PlayPurchaseInitError : Parcelable { + // TODO: Add more errors here. + OtherError +} diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseInitResult.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseInitResult.kt new file mode 100644 index 0000000000..41407474af --- /dev/null +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseInitResult.kt @@ -0,0 +1,10 @@ +package net.mullvad.mullvadvpn.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +sealed class PlayPurchaseInitResult : Parcelable { + @Parcelize data class Ok(val obfuscatedId: String) : PlayPurchaseInitResult() + + @Parcelize data class Error(val error: PlayPurchaseInitError) : PlayPurchaseInitResult() +} diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseVerifyError.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseVerifyError.kt new file mode 100644 index 0000000000..b0434c22f9 --- /dev/null +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseVerifyError.kt @@ -0,0 +1,10 @@ +package net.mullvad.mullvadvpn.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +enum class PlayPurchaseVerifyError : Parcelable { + // TODO: Add more errors here. + OtherError +} diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseVerifyResult.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseVerifyResult.kt new file mode 100644 index 0000000000..7c5ee4d953 --- /dev/null +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseVerifyResult.kt @@ -0,0 +1,10 @@ +package net.mullvad.mullvadvpn.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +sealed class PlayPurchaseVerifyResult : Parcelable { + @Parcelize data object Ok : PlayPurchaseVerifyResult() + + @Parcelize data class Error(val error: PlayPurchaseVerifyError) : PlayPurchaseVerifyResult() +} diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt index 6fa03978f7..ceb95a48b7 100644 --- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt +++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt @@ -14,6 +14,9 @@ import net.mullvad.mullvadvpn.model.GeoIpLocation import net.mullvad.mullvadvpn.model.GetAccountDataResult import net.mullvad.mullvadvpn.model.LoginResult import net.mullvad.mullvadvpn.model.ObfuscationSettings +import net.mullvad.mullvadvpn.model.PlayPurchase +import net.mullvad.mullvadvpn.model.PlayPurchaseInitResult +import net.mullvad.mullvadvpn.model.PlayPurchaseVerifyResult import net.mullvad.mullvadvpn.model.QuantumResistantState import net.mullvad.mullvadvpn.model.RelayList import net.mullvad.mullvadvpn.model.RelaySettingsUpdate @@ -171,6 +174,14 @@ class MullvadDaemon( return submitVoucher(daemonInterfaceAddress, voucher) } + fun initPlayPurchase(): PlayPurchaseInitResult { + return initPlayPurchase(daemonInterfaceAddress) + } + + fun verifyPlayPurchase(playPurchase: PlayPurchase): PlayPurchaseVerifyResult { + return verifyPlayPurchase(daemonInterfaceAddress, playPurchase) + } + fun updateRelaySettings(update: RelaySettingsUpdate) { updateRelaySettings(daemonInterfaceAddress, update) } @@ -271,6 +282,13 @@ class MullvadDaemon( voucher: String ): VoucherSubmissionResult + private external fun initPlayPurchase(daemonInterfaceAddress: Long): PlayPurchaseInitResult + + private external fun verifyPlayPurchase( + daemonInterfaceAddress: Long, + playPurchase: PlayPurchase, + ): PlayPurchaseVerifyResult + private external fun updateRelaySettings( daemonInterfaceAddress: Long, update: RelaySettingsUpdate |
