Updated share icon behavior in meeting info + added new item in popup menu

This commit is contained in:
Sylvain Berfini 2023-11-16 10:36:29 +01:00
parent 5cc8407077
commit 57eb506bdf
3 changed files with 58 additions and 5 deletions

View file

@ -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)

View file

@ -9,6 +9,9 @@
<variable
name="deleteClickListener"
type="View.OnClickListener" />
<variable
name="createCalendarEventListener"
type="View.OnClickListener" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
@ -17,20 +20,46 @@
android:background="@drawable/shape_round_popup_menu_background">
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{deleteClickListener}"
style="@style/default_text_style"
android:id="@+id/export_as_calendar"
android:onClick="@{createCalendarEventListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:layout_marginTop="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:text="@string/meeting_info_export_as_calendar_event"
android:textSize="14sp"
android:textColor="@color/gray_main2_500"
android:drawableStart="@drawable/calendar_blank"
android:drawablePadding="5dp"
app:drawableTint="@color/gray_main2_500"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/delete_meeting"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/delete_meeting"
android:onClick="@{deleteClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginBottom="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:text="@string/meeting_info_delete"
android:textSize="14sp"
android:textColor="@color/red_danger_500"
android:drawableStart="@drawable/trash_simple"
android:drawablePadding="5dp"
app:drawableTint="@color/red_danger_500"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toBottomOf="@id/export_as_calendar"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -119,6 +119,7 @@
<string name="toast_assistant_qr_code_invalid">Invalid QR code!</string>
<string name="toast_sip_address_copied_to_clipboard">SIP address copied into clipboard</string>
<string name="toast_meeting_address_copied_to_clipboard">Meeting address copied into clipboard</string>
<string name="toast_phone_number_copied_to_clipboard">Number copied into clipboard</string>
<string name="toast_call_history_deleted">History has been deleted</string>
<string name="toast_alert_low_wifi_signal">Low Wi-Fi signal!</string>
@ -410,6 +411,7 @@
<string name="meeting_info_join_title">Join the meeting now</string>
<string name="meeting_info_organizer_label">Organizer</string>
<string name="meeting_info_delete">Delete meeting</string>
<string name="meeting_info_export_as_calendar_event">Create calendar event</string>
<string name="meeting_info_deleted_toast">Meeting has been deleted</string>
<string name="meeting_schedule_description_title">Description</string>