diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-06-17 16:06:50 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-06-19 10:50:21 +0200 |
| commit | f31afd8ee3861d50d02a099afbbf181338072276 (patch) | |
| tree | 75ca652b057235d8af85e59a47f606f4799bcdb3 /android/lib/payment/src/main | |
| parent | 88c5d622d797faf99528f79a0907b101fa8f4cae (diff) | |
| download | mullvadvpn-f31afd8ee3861d50d02a099afbbf181338072276.tar.xz mullvadvpn-f31afd8ee3861d50d02a099afbbf181338072276.zip | |
Replace retry with exponential backoff with arrow schedule
Also clean up the code related to play purchase verification
Diffstat (limited to 'android/lib/payment/src/main')
3 files changed, 11 insertions, 14 deletions
diff --git a/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/PaymentRepository.kt b/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/PaymentRepository.kt index 73fd0c061d..0f076eab74 100644 --- a/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/PaymentRepository.kt +++ b/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/PaymentRepository.kt @@ -1,10 +1,12 @@ package net.mullvad.mullvadvpn.lib.payment import android.app.Activity +import arrow.core.Either import kotlinx.coroutines.flow.Flow import net.mullvad.mullvadvpn.lib.payment.model.PaymentAvailability import net.mullvad.mullvadvpn.lib.payment.model.ProductId import net.mullvad.mullvadvpn.lib.payment.model.PurchaseResult +import net.mullvad.mullvadvpn.lib.payment.model.VerificationError import net.mullvad.mullvadvpn.lib.payment.model.VerificationResult interface PaymentRepository { @@ -14,7 +16,7 @@ interface PaymentRepository { activityProvider: () -> Activity ): Flow<PurchaseResult> - fun verifyPurchases(): Flow<VerificationResult> + suspend fun verifyPurchases(): Either<VerificationError, VerificationResult> fun queryPaymentAvailability(): Flow<PaymentAvailability> } diff --git a/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/model/VerificationError.kt b/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/model/VerificationError.kt new file mode 100644 index 0000000000..51cf8d1d28 --- /dev/null +++ b/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/model/VerificationError.kt @@ -0,0 +1,7 @@ +package net.mullvad.mullvadvpn.lib.payment.model + +sealed interface VerificationError { + data class BillingError(val exception: Throwable) : VerificationError + + data object PlayVerificationError : VerificationError +} diff --git a/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/model/VerificationResult.kt b/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/model/VerificationResult.kt index 725ea0af68..8cf971194d 100644 --- a/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/model/VerificationResult.kt +++ b/android/lib/payment/src/main/kotlin/net/mullvad/mullvadvpn/lib/payment/model/VerificationResult.kt @@ -1,19 +1,7 @@ package net.mullvad.mullvadvpn.lib.payment.model -sealed interface VerificationResult { - data object FetchingUnfinishedPurchases : VerificationResult - - data object VerificationStarted : VerificationResult - - // No verification was needed as there is no purchases to verify +interface VerificationResult { data object NothingToVerify : VerificationResult data object Success : VerificationResult - - // Generic error, add more cases as needed - sealed interface Error : VerificationResult { - data class BillingError(val exception: Throwable?) : Error - - data class VerificationError(val exception: Throwable?) : Error - } } |
