summaryrefslogtreecommitdiffhomepage
path: root/android/app/src
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2024-07-29 16:57:35 +0200
committerDavid Göransson <david.goransson@mullvad.net>2024-07-29 16:58:22 +0200
commitbd2a625f7e7b6ca83aa637971214fb5c51aff6dc (patch)
treeceaac240f4928a3e64994d145903ab6e65320865 /android/app/src
parent514a5c9ec009a5bd00f979f719772beeb48b7ca6 (diff)
downloadmullvadvpn-bd2a625f7e7b6ca83aa637971214fb5c51aff6dc.tar.xz
mullvadvpn-bd2a625f7e7b6ca83aa637971214fb5c51aff6dc.zip
Allow error on getVersionInfo
Diffstat (limited to 'android/app/src')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoRepository.kt28
1 files changed, 22 insertions, 6 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoRepository.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoRepository.kt
index 63ce64cd06..edf5dba131 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoRepository.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AppVersionInfoRepository.kt
@@ -1,17 +1,33 @@
package net.mullvad.mullvadvpn.ui.serviceconnection
-import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.SharingStarted.Companion.WhileSubscribed
+import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.stateIn
import net.mullvad.mullvadvpn.lib.daemon.grpc.ManagementService
import net.mullvad.mullvadvpn.lib.model.BuildVersion
import net.mullvad.mullvadvpn.ui.VersionInfo
class AppVersionInfoRepository(
private val buildVersion: BuildVersion,
- private val managementService: ManagementService
+ private val managementService: ManagementService,
+ private val dispatcher: CoroutineDispatcher = Dispatchers.IO
) {
- fun versionInfo(): Flow<VersionInfo> =
- managementService.versionInfo.map { appVersionInfo ->
- VersionInfo(currentVersion = buildVersion.name, isSupported = appVersionInfo.supported)
- }
+ fun versionInfo(): StateFlow<VersionInfo> =
+ managementService.versionInfo
+ .map { appVersionInfo ->
+ VersionInfo(
+ currentVersion = buildVersion.name,
+ isSupported = appVersionInfo.supported
+ )
+ }
+ .stateIn(
+ CoroutineScope(dispatcher),
+ WhileSubscribed(),
+ // By default we assume we are supported
+ VersionInfo(currentVersion = buildVersion.name, isSupported = true)
+ )
}