diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt index e2cd8243a..a41d91392 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -169,6 +169,7 @@ import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.AudioUtils import com.nextcloud.talk.utils.CapabilitiesUtil +import com.nextcloud.talk.utils.CapabilitiesUtil.hasSpreedFeatureCapability import com.nextcloud.talk.utils.CapabilitiesUtil.retentionOfEventRooms import com.nextcloud.talk.utils.CapabilitiesUtil.retentionOfInstantMeetingRoom import com.nextcloud.talk.utils.CapabilitiesUtil.retentionOfSIPRoom @@ -668,7 +669,11 @@ class ChatActivity : } } - if (currentConversation?.objectType == ConversationEnums.ObjectType.EVENT) { + if (currentConversation?.objectType == ConversationEnums.ObjectType.EVENT && hasSpreedFeatureCapability( + conversationUser?.capabilities!!.spreedCapability!!, + SpreedFeatures.UNBIND_CONVERSATION + ) + ) { val eventEndTimeStamp = currentConversation?.objectId?.split("#")[1]?.toLong() val currentTimeStamp = (System.currentTimeMillis() / 1000).toLong() val retentionPeriod = retentionOfEventRooms(spreedCapabilities) @@ -678,7 +683,11 @@ class ChatActivity : } } - if (currentConversation?.objectType == ConversationEnums.ObjectType.PHONE) { + if (currentConversation?.objectType == ConversationEnums.ObjectType.PHONE && hasSpreedFeatureCapability( + conversationUser?.capabilities!!.spreedCapability!!, + SpreedFeatures.UNBIND_CONVERSATION + ) + ) { val retentionPeriod = retentionOfSIPRoom(spreedCapabilities) val systemMessage = currentConversation?.lastMessage?.systemMessageType if (retentionPeriod != 0 && ( @@ -690,7 +699,11 @@ class ChatActivity : } } - if (currentConversation?.objectType == ConversationEnums.ObjectType.INSTANT_MEETING) { + if (currentConversation?.objectType == ConversationEnums.ObjectType.INSTANT_MEETING && hasSpreedFeatureCapability( + conversationUser?.capabilities!!.spreedCapability!!, + SpreedFeatures.UNBIND_CONVERSATION + ) + ) { val retentionPeriod = retentionOfInstantMeetingRoom(spreedCapabilities) val systemMessage = currentConversation?.lastMessage?.systemMessageType if (retentionPeriod != 0 && ( @@ -1232,7 +1245,7 @@ class ChatActivity : } } - fun deleteConversationDialog(context: Context) { + fun deleteConversationDialog(context: Context) { val dialogBuilder = MaterialAlertDialogBuilder(context) .setIcon( viewThemeUtils.dialog diff --git a/app/src/main/java/com/nextcloud/talk/chat/viewmodels/ChatViewModel.kt b/app/src/main/java/com/nextcloud/talk/chat/viewmodels/ChatViewModel.kt index d9e38e59b..4da2f4f18 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/viewmodels/ChatViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/viewmodels/ChatViewModel.kt @@ -808,7 +808,7 @@ class ChatViewModel @Inject constructor( } } - fun unbindRoom(credentials: String, baseUrl: String, roomToken: String) { + fun unbindRoom(credentials: String, baseUrl: String, roomToken: String) { viewModelScope.launch { try { val response = chatNetworkDataSource.unbindRoom(credentials, baseUrl, roomToken) 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 1c5bc67ac..d27608b56 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.kt @@ -449,7 +449,7 @@ object ApiUtils { return "$baseUrl$OCS_API_VERSION/cloud/users/search/by-phone" } - fun getUrlForUnbindingRoom(baseUrl: String, roomToken: String): String { + fun getUrlForUnbindingRoom(baseUrl: String, roomToken: String): String { return "$baseUrl/ocs/v2.php/apps/spreed/api/v4/room/$roomToken/object" } 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 2bbeb8a7f..ef0f85f1e 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/CapabilitiesUtil.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/CapabilitiesUtil.kt @@ -57,7 +57,8 @@ enum class SpreedFeatures(val value: String) { BAN_V1("ban-v1"), EDIT_MESSAGES_NOTE_TO_SELF("edit-messages-note-to-self"), ARCHIVE_CONVERSATIONS("archived-conversations-v2"), - CONVERSATION_CREATION_ALL("conversation-creation-all") + CONVERSATION_CREATION_ALL("conversation-creation-all"), + UNBIND_CONVERSATION("unbind-conversation") } @Suppress("TooManyFunctions") diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5d261e45f..c280c3415 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -521,7 +521,7 @@ How to translate with transifex: leaked to other services You are not allowed to start a call You need to promote a new moderator before you can leave the conversation - Room was retained successfully + Room is retained successfully Share Send to