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!