@@ -32,6 +32,7 @@ import com.infomaniak.core.login.crossapp.internal.ChannelMessageHandler
32
32
import com.infomaniak.core.login.crossapp.internal.DisposableMessage
33
33
import com.infomaniak.core.login.crossapp.internal.certificates.AppCertificateChecker
34
34
import com.infomaniak.core.login.crossapp.internal.deviceid.SharedDeviceIdManager
35
+ import com.infomaniak.lib.core.room.UserDatabase
35
36
import com.infomaniak.lib.core.utils.SentryLog
36
37
import kotlinx.coroutines.CoroutineScope
37
38
import kotlinx.coroutines.Dispatchers
@@ -40,6 +41,7 @@ import kotlinx.coroutines.awaitAll
40
41
import kotlinx.coroutines.awaitCancellation
41
42
import kotlinx.coroutines.channels.Channel
42
43
import kotlinx.coroutines.flow.SharedFlow
44
+ import kotlinx.coroutines.flow.first
43
45
import kotlinx.coroutines.invoke
44
46
import kotlinx.serialization.ExperimentalSerializationApi
45
47
import kotlinx.serialization.decodeFromByteArray
@@ -69,10 +71,16 @@ internal class CrossAppLoginImpl(
69
71
}.awaitAll()
70
72
}
71
73
72
- return lists.flatten().groupBy { it.email }.map { (_, externalAccounts) ->
73
- val account = externalAccounts.firstOrNull { it.isCurrentlySelectedInAnApp } ? : externalAccounts.first()
74
- account.copy(tokens = externalAccounts.flatMapTo(mutableSetOf ()) { it.tokens })
75
- }.sortedBy { it.isCurrentlySelectedInAnApp } // false comes before true, so selected accounts will be last in the list.
74
+ val alreadyConnectedEmails = UserDatabase ().userDao().allUsers.first().map { it.email }
75
+
76
+ return lists.flatten()
77
+ .filter { it.email !in alreadyConnectedEmails }
78
+ .groupBy { it.email }
79
+ .map { (_, externalAccounts) ->
80
+ val account = externalAccounts.firstOrNull { it.isCurrentlySelectedInAnApp } ? : externalAccounts.first()
81
+ account.copy(tokens = externalAccounts.flatMapTo(mutableSetOf ()) { it.tokens })
82
+ }
83
+ .sortedBy { it.isCurrentlySelectedInAnApp } // false comes before true, so selected accounts will be last in the list.
76
84
}
77
85
78
86
@ExperimentalUuidApi
0 commit comments