diff options
7 files changed, 58 insertions, 8 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..d380a5932d --- /dev/null +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseInitResult.kt @@ -0,0 +1,12 @@ +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..7fd3997112 --- /dev/null +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/PlayPurchaseVerifyResult.kt @@ -0,0 +1,11 @@ +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/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs index ceb50ca2b2..8f661d981a 100644 --- a/mullvad-daemon/src/lib.rs +++ b/mullvad-daemon/src/lib.rs @@ -179,13 +179,11 @@ pub enum Error { #[error(display = "Failed to set exclusion group")] GroupIdError(#[error(source)] io::Error), - // TODO - //#[cfg(target_os = "android")] + #[cfg(target_os = "android")] #[error(display = "Failed to initialize play purchase")] InitPlayPurchase(#[error(source)] device::Error), - // TODO - //#[cfg(target_os = "android")] + #[cfg(target_os = "android")] #[error(display = "Failed to verify play purchase")] VerifyPlayPurchase(#[error(source)] device::Error), } @@ -338,12 +336,10 @@ pub enum DaemonCommand { #[cfg(target_os = "android")] BypassSocket(RawFd, oneshot::Sender<()>), /// Initialize a google play purchase through the API. - ///TODO - //#[cfg(target_os = "android")] + #[cfg(target_os = "android")] InitPlayPurchase(ResponseTx<PlayPurchasePaymentToken, Error>), /// Verify that a google play payment was successful through the API. - ///TODO - //#[cfg(target_os = "android")] + #[cfg(target_os = "android")] VerifyPlayPurchase(ResponseTx<(), Error>, PlayPurchase), } diff --git a/mullvad-jni/src/classes.rs b/mullvad-jni/src/classes.rs index 88b5f6d938..56de8919db 100644 --- a/mullvad-jni/src/classes.rs +++ b/mullvad-jni/src/classes.rs @@ -33,6 +33,11 @@ pub const CLASSES: &[&str] = &[ "net/mullvad/mullvadvpn/model/LocationConstraint$Location", "net/mullvad/mullvadvpn/model/LocationConstraint$CustomList", "net/mullvad/mullvadvpn/model/ObfuscationSettings", + "net/mullvad/mullvadvpn/model/PlayPurchase", + "net/mullvad/mullvadvpn/model/PlayPurchaseInitError", + "net/mullvad/mullvadvpn/model/PlayPurchaseInitResult", + "net/mullvad/mullvadvpn/model/PlayPurchaseVerifyError", + "net/mullvad/mullvadvpn/model/PlayPurchaseVerifyResult", "net/mullvad/mullvadvpn/model/PublicKey", "net/mullvad/mullvadvpn/model/QuantumResistantState", "net/mullvad/mullvadvpn/model/Port", |
