diff --git a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt
index 21de3d37fe..c6928a5595 100644
--- a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt
+++ b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt
@@ -820,6 +820,7 @@ class ConversationInfoActivity :
binding.archiveConversationTextHint.text = resources.getString(R.string.unarchive_hint)
}
}
+ viewModel.getRoom(conversationUser, conversationToken)
}
if (conversation!!.hasArchived) {
diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt
index 1485a0018e..ae3e4242c4 100644
--- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt
+++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt
@@ -455,8 +455,20 @@ class ConversationsListActivity :
newItems.add(i)
}
}
+
+ val archiveFilterOn = filterState[FilterConversationFragment.ARCHIVE] ?: false
+ if (archiveFilterOn && newItems.isEmpty()) {
+ binding.noArchivedConversationLayout.visibility = View.VISIBLE
+ } else {
+ binding.noArchivedConversationLayout.visibility = View.GONE
+ }
+
adapter!!.updateDataSet(newItems, true)
setFilterableItems(newItems)
+ if (archiveFilterOn) {
+ // Never a notification from archived conversations
+ binding.newMentionPopupBubble.visibility = View.GONE
+ }
updateFilterConversationButtonColor()
}
diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt
index 3149e153b9..8bf06bf703 100644
--- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt
+++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt
@@ -26,6 +26,7 @@ import com.nextcloud.talk.api.NcApi
import com.nextcloud.talk.api.NcApiCoroutines
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.conversation.RenameConversationDialogFragment
+import com.nextcloud.talk.conversationinfo.viewmodel.ConversationInfoViewModel
import com.nextcloud.talk.conversationlist.ConversationsListActivity
import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.databinding.DialogConversationOperationsBinding
@@ -68,6 +69,9 @@ class ConversationsListBottomDialog(
@Inject
lateinit var viewThemeUtils: ViewThemeUtils
+ @Inject
+ lateinit var conversationInfoViewModel: ConversationInfoViewModel
+
@Inject
lateinit var userManager: UserManager
@@ -189,6 +193,16 @@ class ConversationsListBottomDialog(
dismiss()
}
+ binding.conversationArchiveText.text = if (conversation.hasArchived) {
+ this.activity.resources.getString(R.string.unarchive_conversation)
+ } else {
+ this.activity.resources.getString(R.string.archive_conversation)
+ }
+
+ binding.conversationArchive.setOnClickListener {
+ handleArchiving()
+ }
+
binding.conversationOperationRename.setOnClickListener {
renameConversation()
}
@@ -202,6 +216,33 @@ class ConversationsListBottomDialog(
}
}
+ private fun handleArchiving() {
+ val currentUser = userManager.currentUser.blockingGet()
+ val token = conversation.token
+ lifecycleScope.launch {
+ if (conversation.hasArchived) {
+ conversationInfoViewModel.unarchiveConversation(currentUser, token)
+ activity.showSnackbar(
+ String.format(
+ context.resources.getString(R.string.unarchived_conversation),
+ conversation.displayName
+ )
+ )
+ dismiss()
+ } else {
+ conversationInfoViewModel.archiveConversation(currentUser, token)
+ activity.showSnackbar(
+ String.format(
+ context.resources.getString(R.string.archived_conversation),
+ conversation.displayName
+ )
+ )
+ dismiss()
+ }
+ }
+ activity.fetchRooms()
+ }
+
@Suppress("Detekt.TooGenericExceptionCaught")
@SuppressLint("StringFormatInvalid", "TooGenericExceptionCaught")
private fun addConversationToFavorites() {
diff --git a/app/src/main/res/layout/activity_conversation_info.xml b/app/src/main/res/layout/activity_conversation_info.xml
index f1c830ca33..9da666b8bf 100644
--- a/app/src/main/res/layout/activity_conversation_info.xml
+++ b/app/src/main/res/layout/activity_conversation_info.xml
@@ -410,7 +410,6 @@
android:orientation="horizontal"
android:background="?android:attr/selectableItemBackground">
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ tools:visibility="gone">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
%1$s is out of office today
Replacement:
Resend
+ No conversations archived
+ Archived %1$s
+ Unarchived %1$s