Skip to content

Commit

Permalink
Merge branch 'account-expiry-time-not-updated-after-redeeming-voucher…
Browse files Browse the repository at this point in the history
…-droid-429'
  • Loading branch information
albin-mullvad committed Nov 15, 2023
2 parents f630f1a + 64f3900 commit 3348ee8
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class ServiceEndpoint(
val locationInfoCache = LocationInfoCache(this)
val relayListListener = RelayListListener(this)
val splitTunneling = SplitTunneling(SplitTunnelingPersistence(context), this)
val voucherRedeemer = VoucherRedeemer(this)
val voucherRedeemer = VoucherRedeemer(this, accountCache)

private val deviceRepositoryBackend = DaemonDeviceDataSource(this)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,16 @@ import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.ClosedReceiveChannelException
import kotlinx.coroutines.channels.actor
import kotlinx.coroutines.channels.trySendBlocking
import net.mullvad.mullvadvpn.lib.common.util.parseAsDateTime
import net.mullvad.mullvadvpn.lib.ipc.Event
import net.mullvad.mullvadvpn.lib.ipc.Request
import net.mullvad.mullvadvpn.model.AccountExpiry
import net.mullvad.mullvadvpn.model.VoucherSubmissionResult

class VoucherRedeemer(private val endpoint: ServiceEndpoint) {
class VoucherRedeemer(
private val endpoint: ServiceEndpoint,
private val accountCache: AccountCache
) {
private val daemon
get() = endpoint.intermittentDaemon

Expand All @@ -31,6 +37,15 @@ class VoucherRedeemer(private val endpoint: ServiceEndpoint) {
for (voucher in channel) {
val result = daemon.await().submitVoucher(voucher)

// Let AccountCache know about the new expiry
if (result is VoucherSubmissionResult.Ok) {
val newExpiry = result.submission.newExpiry.parseAsDateTime()
if (newExpiry != null) {
accountCache.onAccountExpiryChange.notify(
AccountExpiry.Available(newExpiry)
)
}
}
endpoint.sendEvent(Event.VoucherSubmissionResult(voucher, result))
}
} catch (exception: ClosedReceiveChannelException) {
Expand Down

0 comments on commit 3348ee8

Please sign in to comment.