From 78efe78d4b062ed29989bc2dec3c75829addb71f Mon Sep 17 00:00:00 2001 From: James Magahern Date: Sun, 10 Dec 2023 23:59:34 -0800 Subject: [PATCH] Implement auto mark as read for conversations --- app/src/main/AndroidManifest.xml | 1 + .../kordophonedroid/ui/messagelist/MessageListScreen.kt | 1 + .../kordophonedroid/ui/messagelist/MessageListViewModel.kt | 4 ++++ .../net/buzzert/kordophone/backend/server/APIInterface.kt | 3 +++ .../buzzert/kordophone/backend/server/ChatRepository.kt | 7 +++++++ 5 files changed, 16 insertions(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b7a30fc..d79d35c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,7 @@ android:theme="@style/Theme.KordophoneDroid" android:name=".KordophoneApplication" android:networkSecurityConfig="@xml/network_security_config" + android:usesCleartextTraffic="true" tools:targetApi="31"> + + @POST("/markConversation") + suspend fun markConversation(@Query("guid") conversationGUID: String): Response } class ResponseDecodeError(val response: ResponseBody): Exception(response.string()) diff --git a/backend/src/main/java/net/buzzert/kordophone/backend/server/ChatRepository.kt b/backend/src/main/java/net/buzzert/kordophone/backend/server/ChatRepository.kt index c5d7da7..a164904 100644 --- a/backend/src/main/java/net/buzzert/kordophone/backend/server/ChatRepository.kt +++ b/backend/src/main/java/net/buzzert/kordophone/backend/server/ChatRepository.kt @@ -169,6 +169,13 @@ class ChatRepository( _errorEncounteredChannel.emit(Error.ConnectionError(e)) } + suspend fun markConversationAsRead(conversation: Conversation) = try { + apiInterface.markConversation(conversation.guid) + } catch (e: java.lang.Exception) { + // Don't report via the channel, but log it. + Log.e(REPO_LOG, "Error marking conversation as read: ${e.message}") + } + fun close() { database.close() }