1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 05:47:05 +09:00

DROID-2738 Sync status | Status caching logic (#1483)

This commit is contained in:
Konstantin Ivanov 2024-08-19 14:14:54 +02:00 committed by GitHub
parent 25ec9bd98a
commit 642bfdceae
Signed by: github
GPG key ID: B5690EEEBB952194
34 changed files with 304 additions and 270 deletions

View file

@ -1,19 +0,0 @@
package com.anytypeio.anytype.data.auth.status
import com.anytypeio.anytype.core_models.Id
import com.anytypeio.anytype.core_models.multiplayer.P2PStatusUpdate
import com.anytypeio.anytype.domain.workspace.P2PStatusChannel
import kotlinx.coroutines.flow.Flow
interface P2PStatusRemoteChannel {
fun observe(activeSpaceId: Id): Flow<P2PStatusUpdate>
}
class P2PStatusDataChannel(
private val channel: P2PStatusRemoteChannel
) : P2PStatusChannel {
override fun observe(activeSpaceId: Id): Flow<P2PStatusUpdate> {
return channel.observe(activeSpaceId)
}
}

View file

@ -1,19 +1,14 @@
package com.anytypeio.anytype.data.auth.status
import com.anytypeio.anytype.core_models.Id
import com.anytypeio.anytype.core_models.multiplayer.P2PStatusUpdate
import com.anytypeio.anytype.core_models.multiplayer.SpaceSyncUpdate
import com.anytypeio.anytype.domain.workspace.SpaceSyncStatusChannel
import com.anytypeio.anytype.domain.workspace.SyncAndP2PStatusChannel
import kotlinx.coroutines.flow.Flow
interface SpaceStatusRemoteChannel {
fun observe(activeSpaceId: String): Flow<SpaceSyncUpdate>
}
class SyncAndP2PStatusDataChannel(
private val store: SyncAndP2PStatusEventsStore
) : SyncAndP2PStatusChannel {
class SpaceStatusDataChannel(
private val channel: SpaceStatusRemoteChannel
) : SpaceSyncStatusChannel {
override fun observe(activeSpaceId: Id): Flow<SpaceSyncUpdate> {
return channel.observe(activeSpaceId)
}
override fun p2pStatus(): Flow<Map<String, P2PStatusUpdate>> = store.p2pStatus
override fun syncStatus(): Flow<Map<String, SpaceSyncUpdate>> = store.syncStatus
}

View file

@ -0,0 +1,13 @@
package com.anytypeio.anytype.data.auth.status
import com.anytypeio.anytype.core_models.multiplayer.P2PStatusUpdate
import com.anytypeio.anytype.core_models.multiplayer.SpaceSyncUpdate
import kotlinx.coroutines.flow.Flow
interface SyncAndP2PStatusEventsStore {
val p2pStatus: Flow<Map<String, P2PStatusUpdate>>
val syncStatus: Flow<Map<String, SpaceSyncUpdate>>
fun start()
fun stop()
}