From 799d10870807365b95ff44bab3ab7d6e3fa43fc7 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 20 May 2025 17:09:10 +0200 Subject: [PATCH] add repo and repo implementation Signed-off-by: sowjanyakch --- .../conversations/ConversationsRepository.kt | 5 +++++ .../ConversationsRepositoryImpl.kt | 18 ++++++++++++++++++ .../java/com/nextcloud/talk/utils/ApiUtils.kt | 4 ++++ .../nextcloud/talk/utils/CapabilitiesUtil.kt | 3 ++- app/src/main/res/values/strings.xml | 3 +++ 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepository.kt b/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepository.kt index 74366ed6e..bda3839d5 100644 --- a/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepository.kt +++ b/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepository.kt @@ -53,4 +53,9 @@ interface ConversationsRepository { suspend fun markConversationAsSensitive(credentials: String, baseUrl: String, roomToken: String): GenericOverall suspend fun markConversationAsInsensitive(credentials: String, baseUrl: String, roomToken: String): GenericOverall + + suspend fun markConversationAsImportant(credentials: String, baseUrl: String, roomToken: String): GenericOverall + + suspend fun markConversationAsUnImportant(credentials: String, baseUrl: String, roomToken: String): GenericOverall } + diff --git a/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepositoryImpl.kt b/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepositoryImpl.kt index 8b06228a9..f46469f70 100644 --- a/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepositoryImpl.kt +++ b/app/src/main/java/com/nextcloud/talk/repositories/conversations/ConversationsRepositoryImpl.kt @@ -139,6 +139,24 @@ class ConversationsRepositoryImpl( return coroutineApi.markConversationAsInsensitive(credentials, url) } + override suspend fun markConversationAsImportant( + credentials: String, + baseUrl: String, + roomToken: String + ): GenericOverall { + val url = ApiUtils.getUrlForImportantConversation(baseUrl, roomToken) + return coroutineApi.markConversationAsImportant(credentials, url) + } + + override suspend fun markConversationAsUnImportant( + credentials: String, + baseUrl: String, + roomToken: String + ): GenericOverall { + val url = ApiUtils.getUrlForImportantConversation(baseUrl, roomToken) + return coroutineApi.markConversationAsUnimportant(credentials, url) + } + override suspend fun banActor( credentials: String, url: String, diff --git a/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.kt index bc5903acc..fe258be3c 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.kt @@ -205,6 +205,10 @@ object ApiUtils { return getUrlForParticipants(version, baseUrl, token) + "/active" } + fun getUrlForImportantConversation(baseUrl: String, roomToken: String): String { + return "$baseUrl$OCS_API_VERSION/apps/spreed/api/v4/room/$roomToken/important" + } + @JvmStatic fun getUrlForParticipantsSelf(version: Int, baseUrl: String?, token: String?): String { return getUrlForParticipants(version, baseUrl, token) + "/self" diff --git a/app/src/main/java/com/nextcloud/talk/utils/CapabilitiesUtil.kt b/app/src/main/java/com/nextcloud/talk/utils/CapabilitiesUtil.kt index e27bd75bf..329787ac1 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/CapabilitiesUtil.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/CapabilitiesUtil.kt @@ -59,7 +59,8 @@ enum class SpreedFeatures(val value: String) { ARCHIVE_CONVERSATIONS("archived-conversations-v2"), CONVERSATION_CREATION_ALL("conversation-creation-all"), UNBIND_CONVERSATION("unbind-conversation"), - SENSITIVE_CONVERSATIONS("sensitive-conversations") + SENSITIVE_CONVERSATIONS("sensitive-conversations"), + IMPORTANT_CONVERSATIONS("important-conversations") } @Suppress("TooManyFunctions") diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2be132c4f..b292ac92f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -242,6 +242,8 @@ How to translate with transifex: All messages were deleted Conversation marked as sensitive Conversation unmarked as sensitive + Conversation marked as important + Conversation unmarked as important Rename conversation Rename Delete conversation @@ -350,6 +352,7 @@ How to translate with transifex: Sensitive conversation Message preview will be disabled in conversation list and notifications Important conversation + Ignore Do not disturb Notifications in this conversation will override Do Not Disturb settings OK, all done!