diff --git a/app/src/main/java/io/xxlabs/messenger/data/room/dao/RequestsDao.kt b/app/src/main/java/io/xxlabs/messenger/data/room/dao/RequestsDao.kt index add64887956a79f92de3186295ebcb409cbdae68..20b67752185ee27741d2a216f186fb6137e82797 100644 --- a/app/src/main/java/io/xxlabs/messenger/data/room/dao/RequestsDao.kt +++ b/app/src/main/java/io/xxlabs/messenger/data/room/dao/RequestsDao.kt @@ -21,6 +21,9 @@ interface RequestsDao { @Query("SELECT * FROM Requests WHERE requestId IN (SELECT userId FROM Contacts)") fun getContactRequests(): Flow<List<RequestData>> + @Query("SELECT * FROM Requests WHERE requestId IN (SELECT userId FROM Contacts)") + fun getContactRequestsOnce(): List<RequestData> + @Query("SELECT * FROM Requests WHERE requestId IN (SELECT groupId FROM Groups)") fun getGroupInvitations(): Flow<List<RequestData>> diff --git a/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt b/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt index e30a49ec10a6e5ddb133b9a4b899f107f3f26074..b94bb691eba5b4aad49af1dc9e54d6d87a26b376 100644 --- a/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt +++ b/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt @@ -8,6 +8,7 @@ import kotlinx.coroutines.flow.Flow interface LocalRequestsDataSource { val unreadCount: Flow<Int> + suspend fun getContactRequestsOnce(): List<RequestData> suspend fun getContactRequests(): Flow<List<RequestData>> suspend fun getGroupInvitations(): Flow<List<RequestData>> suspend fun getRequest(requestId: ByteArray): RequestData? diff --git a/app/src/main/java/io/xxlabs/messenger/requests/data/RequestsDatabase.kt b/app/src/main/java/io/xxlabs/messenger/requests/data/RequestsDatabase.kt index 71643ddee64be1dc029ce403211557573d00ee28..47a36b5f2d9c5434b816f2b500c8223b11b7934c 100644 --- a/app/src/main/java/io/xxlabs/messenger/requests/data/RequestsDatabase.kt +++ b/app/src/main/java/io/xxlabs/messenger/requests/data/RequestsDatabase.kt @@ -52,6 +52,9 @@ class RequestsDatabase @Inject constructor( } } + override suspend fun getContactRequestsOnce(): List<RequestData> = + requestsDao.getContactRequestsOnce() + override suspend fun getContactRequests(): Flow<List<RequestData>> = requestsDao.getContactRequests() .stateIn(scope, SharingStarted.Eagerly, listOf())