summaryrefslogtreecommitdiffhomepage
path: root/android/lib/ipc
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-11-16 11:08:21 +0100
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-11-16 11:08:21 +0100
commit04c6609948a770aed30491c66c4c6d779bc71c92 (patch)
tree4184b4e7a8c8ebfe8c4273e9f472779ee8f7bae9 /android/lib/ipc
parent67710f3e2ef57ecbe60c1bcb444ab047f11f79a5 (diff)
parentc8c896bc00b6b23ffaaf3a8708f03efb3ab3a0f2 (diff)
downloadmullvadvpn-04c6609948a770aed30491c66c4c6d779bc71c92.tar.xz
mullvadvpn-04c6609948a770aed30491c66c4c6d779bc71c92.zip
Merge branch 'google-play-in-app-purchases-droid-277'
Diffstat (limited to 'android/lib/ipc')
-rw-r--r--android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Event.kt9
-rw-r--r--android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/MessageHandler.kt14
-rw-r--r--android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Request.kt5
3 files changed, 26 insertions, 2 deletions
diff --git a/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Event.kt b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Event.kt
index c5ede20327..e1079807f1 100644
--- a/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Event.kt
+++ b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Event.kt
@@ -5,16 +5,16 @@ import kotlinx.parcelize.Parcelize
import net.mullvad.mullvadvpn.model.AccountCreationResult
import net.mullvad.mullvadvpn.model.AccountExpiry
import net.mullvad.mullvadvpn.model.AccountHistory
-import net.mullvad.mullvadvpn.model.AppVersionInfo
import net.mullvad.mullvadvpn.model.DeviceListEvent
import net.mullvad.mullvadvpn.model.DeviceState
import net.mullvad.mullvadvpn.model.GeoIpLocation
import net.mullvad.mullvadvpn.model.LoginResult
+import net.mullvad.mullvadvpn.model.PlayPurchaseInitResult
+import net.mullvad.mullvadvpn.model.PlayPurchaseVerifyResult
import net.mullvad.mullvadvpn.model.RelayList
import net.mullvad.mullvadvpn.model.RemoveDeviceResult
import net.mullvad.mullvadvpn.model.Settings
import net.mullvad.mullvadvpn.model.TunnelState
-import net.mullvad.mullvadvpn.model.VoucherSubmissionResult
// Events that can be sent from the service
sealed class Event : Message.EventMessage() {
@@ -61,6 +61,11 @@ sealed class Event : Message.EventMessage() {
val result: net.mullvad.mullvadvpn.model.VoucherSubmissionResult
) : Event()
+ @Parcelize data class PlayPurchaseInitResultEvent(val result: PlayPurchaseInitResult) : Event()
+
+ @Parcelize
+ data class PlayPurchaseVerifyResultEvent(val result: PlayPurchaseVerifyResult) : Event()
+
@Parcelize object VpnPermissionRequest : Event()
companion object {
diff --git a/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/MessageHandler.kt b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/MessageHandler.kt
new file mode 100644
index 0000000000..04de35e3bd
--- /dev/null
+++ b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/MessageHandler.kt
@@ -0,0 +1,14 @@
+package net.mullvad.mullvadvpn.lib.ipc
+
+import kotlin.reflect.KClass
+import kotlinx.coroutines.flow.Flow
+
+interface MessageHandler {
+ fun <R : Event> events(klass: KClass<R>): Flow<R>
+
+ fun trySendRequest(request: Request): Boolean
+}
+
+inline fun <reified R : Event> MessageHandler.events(): Flow<R> {
+ return this.events(R::class)
+}
diff --git a/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Request.kt b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Request.kt
index 38237e84b3..b73010785a 100644
--- a/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Request.kt
+++ b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Request.kt
@@ -9,6 +9,7 @@ import net.mullvad.mullvadvpn.model.DnsOptions
import net.mullvad.mullvadvpn.model.GeographicLocationConstraint
import net.mullvad.mullvadvpn.model.ObfuscationSettings
import net.mullvad.mullvadvpn.model.Ownership
+import net.mullvad.mullvadvpn.model.PlayPurchase
import net.mullvad.mullvadvpn.model.Providers
import net.mullvad.mullvadvpn.model.QuantumResistantState
import net.mullvad.mullvadvpn.model.WireguardConstraints
@@ -83,6 +84,10 @@ sealed class Request : Message.RequestMessage() {
@Parcelize data class SubmitVoucher(val voucher: String) : Request()
+ @Parcelize data object InitPlayPurchase : Request()
+
+ @Parcelize data class VerifyPlayPurchase(val playPurchase: PlayPurchase) : Request()
+
@Parcelize data class UnregisterListener(val listenerId: Int) : Request()
@Parcelize data class VpnPermissionResponse(val isGranted: Boolean) : Request()