From 8db0b67ce9ba4a5e56c04c1bea3a738eacb176cf Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Thu, 9 Dec 2021 10:07:54 +0530 Subject: Refactor coroutine testing setup (#1583) * coroutine-utils: init * coroutine-utils-testing: init * format-common: switch over to using DispatcherProvider * Convert Binds method to an extension function * Add Dispatcher module --- .../src/main/kotlin/dev/msfjarvis/aps/data/passfile/PasswordEntry.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'format-common/src/main') diff --git a/format-common/src/main/kotlin/dev/msfjarvis/aps/data/passfile/PasswordEntry.kt b/format-common/src/main/kotlin/dev/msfjarvis/aps/data/passfile/PasswordEntry.kt index 408069a2..81398b45 100644 --- a/format-common/src/main/kotlin/dev/msfjarvis/aps/data/passfile/PasswordEntry.kt +++ b/format-common/src/main/kotlin/dev/msfjarvis/aps/data/passfile/PasswordEntry.kt @@ -9,6 +9,7 @@ import com.github.michaelbull.result.mapBoth import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject +import dev.msfjarvis.aps.util.coroutines.DispatcherProvider import dev.msfjarvis.aps.util.time.UserClock import dev.msfjarvis.aps.util.totp.Otp import dev.msfjarvis.aps.util.totp.TotpFinder @@ -32,6 +33,8 @@ constructor( clock: UserClock, /** [TotpFinder] implementation to extract data from a TOTP URI */ totpFinder: TotpFinder, + /** Instance of [DispatcherProvider] to select an IO dispatcher for emitting TOTP values. */ + dispatcherProvider: DispatcherProvider, /** * A cancellable [CoroutineScope] inside which we constantly emit new TOTP values as time elapses */ @@ -81,7 +84,7 @@ constructor( username = findUsername() totpSecret = totpFinder.findSecret(content) if (totpSecret != null) { - scope.launch { + scope.launch(dispatcherProvider.io()) { val digits = totpFinder.findDigits(content) val totpPeriod = totpFinder.findPeriod(content) val totpAlgorithm = totpFinder.findAlgorithm(content) -- cgit v1.2.3