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 8951c6f0c..62d67e4f2 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -582,8 +582,8 @@ class ChatActivity : participantPermissions = ParticipantPermissions(spreedCapabilities, currentConversation!!) invalidateOptionsMenu() - checkShowCallButtons() isEventConversation() + checkShowCallButtons() checkLobbyState() updateRoomTimerHandler() } else { @@ -616,8 +616,8 @@ class ChatActivity : loadAvatarForStatusBar() setupSwipeToReply() setActionBarTitle() - checkShowCallButtons() isEventConversation() + checkShowCallButtons() checkLobbyState() if (currentConversation?.type == ConversationEnums.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL && currentConversation?.status == "dnd" @@ -2877,17 +2877,19 @@ class ChatActivity : super.onCreateOptionsMenu(menu) menuInflater.inflate(R.menu.menu_conversation, menu) + if (currentConversation?.objectType == ConversationEnums.ObjectType.EVENT) { + eventConversationMenuItem = menu.findItem(R.id.conversation_event) + } else { + menu.removeItem(R.id.conversation_event) + } + if (conversationUser?.userId == "?") { menu.removeItem(R.id.conversation_info) } else { loadAvatarForStatusBar() setActionBarTitle() } - if (currentConversation?.objectType == ConversationEnums.ObjectType.EVENT) { - eventConversationMenuItem = menu.findItem(R.id.conversation_event) - } else { - menu.removeItem(R.id.conversation_event) - } + return true } @@ -2983,6 +2985,7 @@ class ChatActivity : 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 unarchiveConversation = popupView.findViewById<TextView>(R.id.unarchive_conversation) val popupWindow = PopupWindow( popupView, @@ -3033,22 +3036,52 @@ class ChatActivity : } if (meetingStatus == context.resources.getString(R.string.nc_meeting_ended) && - ( - Participant.ParticipantType.MODERATOR == currentConversation?.participantType || + (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() + if (currentConversation?.hasArchived == false) { + unarchiveConversation.visibility = View.GONE + archiveConversation.visibility = View.VISIBLE + archiveConversation.setOnClickListener { + this.lifecycleScope.launch { + conversationInfoViewModel.archiveConversation(conversationUser!!, currentConversation?.token!!) + Snackbar.make( + binding.root, + String.format( + context.resources.getString(R.string.archived_conversation), + currentConversation?.displayName + ), + Snackbar.LENGTH_LONG + ).show() + } + popupWindow.dismiss() } - popupWindow.dismiss() + } else { + unarchiveConversation.visibility = View.VISIBLE + archiveConversation.visibility = View.GONE + unarchiveConversation.setOnClickListener { + this.lifecycleScope.launch { + conversationInfoViewModel.unarchiveConversation( + conversationUser!!, + currentConversation?.token!! + ) + Snackbar.make( + binding.root, + String.format( + context.resources.getString(R.string.unarchived_conversation), + currentConversation?.displayName + ), + Snackbar.LENGTH_LONG + ).show() + } + popupWindow.dismiss() + } + } } else { archiveConversation.visibility = View.GONE + unarchiveConversation.visibility = View.GONE } } diff --git a/app/src/main/res/drawable/baseline_calendar_today_24.xml b/app/src/main/res/drawable/baseline_calendar_today_24.xml new file mode 100644 index 000000000..5a569b829 --- /dev/null +++ b/app/src/main/res/drawable/baseline_calendar_today_24.xml @@ -0,0 +1,19 @@ +<!-- + ~ Nextcloud Talk - Android Client + ~ + ~ SPDX-FileCopyrightText: 2025 Sowjanya Kota <sowjanya.kch@gmail.com> + ~ SPDX-License-Identifier: GPL-3.0-or-later + --> + +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:height="20dp" + android:tint="#000000" + android:viewportHeight="24" + android:viewportWidth="24" + android:width="20dp"> + + <path android:fillColor="@android:color/white" + android:pathData="M20,3h-1L19,1h-2v2L7,3L7,1L5,1v2L4,3c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,5c0,-1.1 -0.9,-2 -2,-2zM20,21L4,21L4,8h16v13z"/> + +</vector> diff --git a/app/src/main/res/drawable/calendar_clock.xml b/app/src/main/res/drawable/calendar_clock.xml deleted file mode 100644 index fddc4d044..000000000 --- a/app/src/main/res/drawable/calendar_clock.xml +++ /dev/null @@ -1,16 +0,0 @@ -<!-- - ~ Nextcloud Talk - Android Client - ~ - ~ SPDX-FileCopyrightText: 2025 Sowjanya Kota <sowjanya.kch@gmail.com> - ~ SPDX-License-Identifier: GPL-3.0-or-later - --> - -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path - android:fillColor="#FF000000" - android:pathData="M15,13H16.5V15.82L18.94,17.23L18.19,18.53L15,16.69V13M19,8H5V19H9.67C9.24,18.09 9,17.07 9,16A7,7 0,0 1,16 9C17.07,9 18.09,9.24 19,9.67V8M5,21C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H6V1H8V3H16V1H18V3H19A2,2 0,0 1,21 5V11.1C22.24,12.36 23,14.09 23,16A7,7 0,0 1,16 23C14.09,23 12.36,22.24 11.1,21H5M16,11.15A4.85,4.85 0,0 0,11.15 16C11.15,18.68 13.32,20.85 16,20.85A4.85,4.85 0,0 0,20.85 16C20.85,13.32 18.68,11.15 16,11.15Z"/> -</vector> diff --git a/app/src/main/res/layout/item_event_schedule.xml b/app/src/main/res/layout/item_event_schedule.xml index addb2536c..502fd1122 100644 --- a/app/src/main/res/layout/item_event_schedule.xml +++ b/app/src/main/res/layout/item_event_schedule.xml @@ -46,4 +46,12 @@ android:text="@string/archive_conversation" android:visibility = "gone" android:paddingTop="16dp"/> + + <TextView + android:id="@+id/unarchive_conversation" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/unarchive_conversation" + android:visibility = "gone" + android:paddingTop="16dp"/> </LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/menu/menu_conversation.xml b/app/src/main/res/menu/menu_conversation.xml index ffcd29932..c7830b0dc 100644 --- a/app/src/main/res/menu/menu_conversation.xml +++ b/app/src/main/res/menu/menu_conversation.xml @@ -10,7 +10,7 @@ <item android:id="@+id/conversation_event" - android:icon="@drawable/calendar_clock" + android:icon="@drawable/baseline_calendar_today_24" android:orderInCategory="0" android:title="@string/nc_event_conversation_menu" app:showAsAction="ifRoom">