From 57eb506bdf568cf92469201a7bf1b4172797c623 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 16 Nov 2023 10:36:29 +0100 Subject: [PATCH] Updated share icon behavior in meeting info + added new item in popup menu --- .../main/meetings/fragment/MeetingFragment.kt | 26 ++++++++++++-- .../main/res/layout/meeting_popup_menu.xml | 35 +++++++++++++++++-- app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 58 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt index a1479a1eb..a17110f1b 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt @@ -20,6 +20,9 @@ package org.linphone.ui.main.meetings.fragment import android.content.ActivityNotFoundException +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context import android.content.Intent import android.os.Bundle import android.provider.CalendarContract @@ -93,8 +96,7 @@ class MeetingFragment : GenericFragment() { } binding.setShareClickListener { - Log.i("$TAG Sharing conference info as Google Calendar event") - shareMeetingInfoAsCalendarEvent() + copyMeetingAddressIntoClipboard(uri) } binding.setMenuClickListener { @@ -159,12 +161,32 @@ class MeetingFragment : GenericFragment() { popupWindow.dismiss() } + popupView.setCreateCalendarEventListener { + shareMeetingInfoAsCalendarEvent() + popupWindow.dismiss() + } + // Elevation is for showing a shadow around the popup popupWindow.elevation = 20f popupWindow.showAsDropDown(binding.menu, 0, 0, Gravity.BOTTOM) } + private fun copyMeetingAddressIntoClipboard(meetingSipUri: String) { + Log.i("$TAG Copying conference SIP URI [$meetingSipUri] into clipboard") + + val clipboard = requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + val label = "Meeting SIP address" + clipboard.setPrimaryClip(ClipData.newPlainText(label, meetingSipUri)) + + (requireActivity() as MainActivity).showGreenToast( + getString(R.string.toast_meeting_address_copied_to_clipboard), + R.drawable.check + ) + } + private fun shareMeetingInfoAsCalendarEvent() { + Log.i("$TAG Sharing conference info as Google Calendar event") + val intent = Intent(Intent.ACTION_EDIT) intent.type = "vnd.android.cursor.item/event" intent.putExtra(CalendarContract.Events.TITLE, viewModel.subject.value) diff --git a/app/src/main/res/layout/meeting_popup_menu.xml b/app/src/main/res/layout/meeting_popup_menu.xml index 40a7d86b5..8f3e1d5a0 100644 --- a/app/src/main/res/layout/meeting_popup_menu.xml +++ b/app/src/main/res/layout/meeting_popup_menu.xml @@ -9,6 +9,9 @@ + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e1fc7896e..905e49fed 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -119,6 +119,7 @@ Invalid QR code! SIP address copied into clipboard + Meeting address copied into clipboard Number copied into clipboard History has been deleted Low Wi-Fi signal! @@ -410,6 +411,7 @@ Join the meeting now Organizer Delete meeting + Create calendar event Meeting has been deleted Description