Skip to content

Commit f0e1f23

Browse files
chore(chat): Move mark as read/unread to repository structure
AI-assistant: Claude Code v2.1.117 (Claude Sonnet 4.6) Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
1 parent 998db69 commit f0e1f23

3 files changed

Lines changed: 14 additions & 4 deletions

File tree

app/src/main/java/com/nextcloud/talk/conversationlist/viewmodels/ConversationsListViewModel.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import androidx.lifecycle.MutableLiveData
1313
import androidx.lifecycle.ViewModel
1414
import androidx.lifecycle.viewModelScope
1515
import com.nextcloud.talk.R
16-
import com.nextcloud.talk.api.NcApiCoroutines
1716
import com.nextcloud.talk.arbitrarystorage.ArbitraryStorageManager
1817
import com.nextcloud.talk.contacts.ContactsRepository
1918
import com.nextcloud.talk.conversationlist.data.OfflineConversationsRepository
@@ -29,6 +28,7 @@ import com.nextcloud.talk.models.json.conversations.ConversationEnums
2928
import com.nextcloud.talk.models.json.converters.EnumActorTypeConverter
3029
import com.nextcloud.talk.models.json.participants.Participant
3130
import com.nextcloud.talk.openconversations.data.OpenConversationsRepository
31+
import com.nextcloud.talk.repositories.conversations.ConversationsRepository
3232
import com.nextcloud.talk.repositories.unifiedsearch.UnifiedSearchRepository
3333
import com.nextcloud.talk.threadsoverview.data.ThreadsRepository
3434
import com.nextcloud.talk.ui.dialog.FilterConversationFragment.Companion.ARCHIVE
@@ -76,7 +76,7 @@ class ConversationsListViewModel @Inject constructor(
7676
private val invitationsRepository: InvitationsRepository,
7777
private val arbitraryStorageManager: ArbitraryStorageManager,
7878
var userManager: UserManager,
79-
private val ncApiCoroutines: NcApiCoroutines
79+
private val conversationsRepository: ConversationsRepository
8080
) : ViewModel() {
8181

8282
private val _currentUser = currentUserProvider.currentUser.blockingGet()
@@ -584,7 +584,7 @@ class ConversationsListViewModel @Inject constructor(
584584
viewModelScope.launch {
585585
try {
586586
withContext(Dispatchers.IO) {
587-
withRetry(1) { ncApiCoroutines.setChatReadMarker(credentials, url, messageId) }
587+
withRetry(1) { conversationsRepository.markConversationAsRead(credentials, url, messageId) }
588588
}
589589
_readUnreadState.value = ConversationReadUnreadUiState.Success(conversation.displayName, true)
590590
} catch (e: Exception) {
@@ -603,7 +603,7 @@ class ConversationsListViewModel @Inject constructor(
603603
viewModelScope.launch {
604604
try {
605605
withContext(Dispatchers.IO) {
606-
withRetry(1) { ncApiCoroutines.markRoomAsUnread(credentials, url) }
606+
withRetry(1) { conversationsRepository.markConversationAsUnread(credentials, url) }
607607
}
608608
_readUnreadState.value = ConversationReadUnreadUiState.Success(conversation.displayName, false)
609609
} catch (e: Exception) {

app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepository.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,8 @@ interface ConversationsRepository {
5454
suspend fun markConversationAsImportant(credentials: String, baseUrl: String, roomToken: String): GenericOverall
5555

5656
suspend fun markConversationAsUnImportant(credentials: String, baseUrl: String, roomToken: String): GenericOverall
57+
58+
suspend fun markConversationAsRead(credentials: String, url: String, messageId: Int?): GenericOverall
59+
60+
suspend fun markConversationAsUnread(credentials: String, url: String): GenericOverall
5761
}

app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepositoryImpl.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,12 @@ class ConversationsRepositoryImpl(private val api: NcApi, private val coroutineA
147147
override suspend fun unbanActor(credentials: String, url: String): GenericOverall =
148148
coroutineApi.unbanActor(credentials, url)
149149

150+
override suspend fun markConversationAsRead(credentials: String, url: String, messageId: Int?): GenericOverall =
151+
coroutineApi.setChatReadMarker(credentials, url, messageId)
152+
153+
override suspend fun markConversationAsUnread(credentials: String, url: String): GenericOverall =
154+
coroutineApi.markRoomAsUnread(credentials, url)
155+
150156
companion object {
151157
const val STATUS_CODE_OK = 200
152158
}

0 commit comments

Comments
 (0)