pinned message in messages history draft

This commit is contained in:
2025-03-27 12:16:26 +03:00
parent f66123ba94
commit 9aa85d40c6
24 changed files with 330 additions and 84 deletions
@@ -47,6 +47,16 @@ interface MessagesUseCase {
title: String?
): Flow<State<Int>>
fun pin(
peerId: Int,
messageId: Int?,
conversationMessageId: Int?
): Flow<State<VkMessage>>
fun unpin(
peerId: Int
): Flow<State<Int>>
suspend fun storeMessage(message: VkMessage)
suspend fun storeMessages(messages: List<VkMessage>)
}
@@ -108,6 +108,30 @@ class MessagesUseCaseImpl(
emit(newState)
}
override fun pin(
peerId: Int,
messageId: Int?,
conversationMessageId: Int?
): Flow<State<VkMessage>> = flow {
emit(State.Loading)
val newState = repository.pin(
peerId = peerId,
messageId = messageId,
conversationMessageId = conversationMessageId
).mapToState()
emit(newState)
}
override fun unpin(peerId: Int): Flow<State<Int>> = flow {
emit(State.Loading)
val newState = repository.unpin(peerId = peerId).mapToState()
emit(newState)
}
override suspend fun storeMessage(message: VkMessage) {
repository.storeMessages(listOf(message))
}