@@ -4,12 +4,15 @@ import android.content.Context
4
4
import dagger.hilt.android.qualifiers.ApplicationContext
5
5
import kotlinx.coroutines.CoroutineScope
6
6
import kotlinx.coroutines.Dispatchers
7
+ import kotlinx.coroutines.ExperimentalCoroutinesApi
7
8
import kotlinx.coroutines.flow.collectLatest
8
9
import kotlinx.coroutines.flow.distinctUntilChanged
9
10
import kotlinx.coroutines.flow.filterNotNull
10
11
import kotlinx.coroutines.flow.first
12
+ import kotlinx.coroutines.flow.flatMapLatest
11
13
import kotlinx.coroutines.flow.map
12
14
import kotlinx.coroutines.flow.onStart
15
+ import kotlinx.coroutines.flow.take
13
16
import kotlinx.coroutines.launch
14
17
import network.loki.messenger.R
15
18
import network.loki.messenger.libsession_util.ReadableGroupInfoConfig
@@ -57,6 +60,7 @@ private const val TAG = "ConfigToDatabaseSync"
57
60
*
58
61
* @see ConfigUploader For upload config system data into swarm automagically.
59
62
*/
63
+ @OptIn(ExperimentalCoroutinesApi ::class )
60
64
class ConfigToDatabaseSync @Inject constructor(
61
65
@param:ApplicationContext private val context : Context ,
62
66
private val configFactory : ConfigFactoryProtocol ,
@@ -80,7 +84,10 @@ class ConfigToDatabaseSync @Inject constructor(
80
84
init {
81
85
// Sync conversations from config -> database
82
86
scope.launch {
83
- conversationRepository.conversationListAddressesFlow
87
+ preferences.watchLocalNumber()
88
+ .filterNotNull()
89
+ .take(1 )
90
+ .flatMapLatest { conversationRepository.conversationListAddressesFlow }
84
91
.map { addresses ->
85
92
addresses to configFactory.withUserConfigs { it.convoInfoVolatile.all() }
86
93
}
0 commit comments