archive conversation

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2025-04-09 18:48:11 +02:00 committed by Marcel Hibbe
parent b128c5a8ea
commit 44065ae946
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
3 changed files with 36 additions and 0 deletions

View File

@ -225,6 +225,8 @@ import java.util.concurrent.ExecutionException
import javax.inject.Inject
import kotlin.math.roundToInt
import androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia
import com.nextcloud.talk.conversationinfo.viewmodel.ConversationInfoViewModel
import com.nextcloud.talk.models.json.participants.Participant
@AutoInjector(NextcloudTalkApplication::class)
class ChatActivity :
@ -262,6 +264,8 @@ class ChatActivity :
lateinit var networkMonitor: NetworkMonitor
lateinit var chatViewModel: ChatViewModel
lateinit var conversationInfoViewModel: ConversationInfoViewModel
lateinit var messageInputViewModel: MessageInputViewModel
private val startSelectContactForResult = registerForActivityResult(
@ -427,6 +431,8 @@ class ChatActivity :
chatViewModel = ViewModelProvider(this, viewModelFactory)[ChatViewModel::class.java]
conversationInfoViewModel = ViewModelProvider(this, viewModelFactory)[ConversationInfoViewModel::class.java]
val urlForChatting = ApiUtils.getUrlForChat(chatApiVersion, conversationUser?.baseUrl, roomToken)
val credentials = ApiUtils.getCredentials(conversationUser!!.username, conversationUser!!.token)
chatViewModel.initData(
@ -2976,6 +2982,7 @@ class ChatActivity :
val titleTextView = popupView.findViewById<TextView>(R.id.event_scheduled)
val subtitleTextView = popupView.findViewById<TextView>(R.id.meetingTime)
val deleteConversation = popupView.findViewById<TextView>(R.id.delete_conversation)
val archiveConversation = popupView.findViewById<TextView>(R.id.archive_conversation)
val popupWindow = PopupWindow(
popupView,
@ -3019,10 +3026,30 @@ class ChatActivity :
dialog.getButton(AlertDialog.BUTTON_POSITIVE),
dialog.getButton(AlertDialog.BUTTON_NEGATIVE)
)
popupWindow.dismiss()
}
} else {
deleteConversation.visibility = View.GONE
}
if (meetingStatus == context.resources.getString(R.string.nc_meeting_ended) &&
(
Participant.ParticipantType.MODERATOR == currentConversation?.participantType ||
Participant.ParticipantType.OWNER == currentConversation?.participantType
) &&
currentConversation?.hasArchived == false
) {
archiveConversation.visibility = View.VISIBLE
archiveConversation.setOnClickListener {
this.lifecycleScope.launch {
conversationInfoViewModel.archiveConversation(conversationUser!!, currentConversation?.token!!)
Snackbar.make(binding.root, R.string.conversation_archived, Snackbar.LENGTH_LONG).show()
}
popupWindow.dismiss()
}
} else {
archiveConversation.visibility = View.GONE
}
}
private fun deleteConversation(conversation: ConversationModel) {

View File

@ -38,4 +38,12 @@
android:textColor="@android:color/holo_red_dark"
android:visibility = "gone"
android:paddingTop="16dp"/>
<TextView
android:id="@+id/archive_conversation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/archive_conversation"
android:visibility = "gone"
android:paddingTop="16dp"/>
</LinearLayout>

View File

@ -850,4 +850,5 @@ How to translate with transifex:
<string name="no_conversations_archived">No archived conversations</string>
<string name="archived_conversation">Archived %1$s</string>
<string name="unarchived_conversation">Unarchived %1$s</string>
<string name="conversation_archived">Conversation is archived</string>
</resources>