PM-14433 update flow type to nullable so we can handle gracefully and avoid crash (#4263)

Co-authored-by: Dave Severns <149429124+dseverns-livefront@users.noreply.github.com>
This commit is contained in:
Patrick Honkonen 2024-11-08 13:23:39 -05:00 committed by GitHub
parent 96c6b9c214
commit b6dfc3d17b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 3 additions and 1 deletions

View file

@ -17,6 +17,7 @@ import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.filterNotNull
import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.merge
@ -124,6 +125,7 @@ class VaultDiskSourceImpl(
override fun getDomains(userId: String): Flow<SyncResponseJson.Domains> = override fun getDomains(userId: String): Flow<SyncResponseJson.Domains> =
domainsDao domainsDao
.getDomains(userId) .getDomains(userId)
.filterNotNull()
.map { entity -> .map { entity ->
withContext(dispatcherManager.default) { withContext(dispatcherManager.default) {
json.decodeFromString<SyncResponseJson.Domains>(entity.domainsJson) json.decodeFromString<SyncResponseJson.Domains>(entity.domainsJson)

View file

@ -25,7 +25,7 @@ interface DomainsDao {
@Query("SELECT * FROM domains WHERE user_id = :userId") @Query("SELECT * FROM domains WHERE user_id = :userId")
fun getDomains( fun getDomains(
userId: String, userId: String,
): Flow<DomainsEntity> ): Flow<DomainsEntity?>
/** /**
* Inserts domains into the database. * Inserts domains into the database.