mirror of
https://github.com/Yubico/yubioath-flutter.git
synced 2024-12-23 10:11:52 +03:00
Merge PR #1203.
This commit is contained in:
commit
5f78b0952f
@ -62,6 +62,7 @@ import io.flutter.plugin.common.MethodChannel
|
|||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.serialization.encodeToString
|
import kotlinx.serialization.encodeToString
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
|
import java.io.IOException
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
@ -554,8 +555,17 @@ class OathManager(
|
|||||||
NULL
|
NULL
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun requestRefresh() =
|
private suspend fun requestRefresh() {
|
||||||
|
|
||||||
|
val clearCodes = {
|
||||||
|
val currentCredentials = oathViewModel.credentials.value
|
||||||
|
oathViewModel.updateCredentials(currentCredentials?.associate {
|
||||||
|
it.credential to null
|
||||||
|
} ?: emptyMap())
|
||||||
|
}
|
||||||
|
|
||||||
appViewModel.connectedYubiKey.value?.let { usbYubiKeyDevice ->
|
appViewModel.connectedYubiKey.value?.let { usbYubiKeyDevice ->
|
||||||
|
try {
|
||||||
useOathSessionUsb(usbYubiKeyDevice) { session ->
|
useOathSessionUsb(usbYubiKeyDevice) { session ->
|
||||||
try {
|
try {
|
||||||
oathViewModel.updateCredentials(calculateOathCodes(session))
|
oathViewModel.updateCredentials(calculateOathCodes(session))
|
||||||
@ -576,7 +586,16 @@ class OathManager(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (ioException: IOException) {
|
||||||
|
logger.error("IOException when accessing USB device: ", ioException)
|
||||||
|
clearCodes()
|
||||||
|
} catch (illegalStateException: IllegalStateException) {
|
||||||
|
logger.error("IllegalStateException when accessing USB device: ", illegalStateException)
|
||||||
|
clearCodes()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private suspend fun calculate(credentialId: String): String =
|
private suspend fun calculate(credentialId: String): String =
|
||||||
useOathSession(OathActionDescription.CalculateCode) { session ->
|
useOathSession(OathActionDescription.CalculateCode) { session ->
|
||||||
|
Loading…
Reference in New Issue
Block a user