From 318d41a9fcb269768eeb80ce08b28c0964d11040 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 4 Jul 2022 13:55:36 +0200 Subject: [PATCH] Added conference subject to address when copying it into clipboard --- .../conference/adapters/ScheduledConferencesAdapter.kt | 9 ++++----- .../main/conference/data/ScheduledConferenceData.kt | 9 +++++++++ .../conference/fragments/ScheduledConferencesFragment.kt | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/conference/adapters/ScheduledConferencesAdapter.kt b/app/src/main/java/org/linphone/activities/main/conference/adapters/ScheduledConferencesAdapter.kt index b9a2e3470..e65b88e92 100644 --- a/app/src/main/java/org/linphone/activities/main/conference/adapters/ScheduledConferencesAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/conference/adapters/ScheduledConferencesAdapter.kt @@ -31,7 +31,6 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import org.linphone.R import org.linphone.activities.main.conference.data.ScheduledConferenceData -import org.linphone.core.Address import org.linphone.databinding.ConferenceScheduleCellBinding import org.linphone.databinding.ConferenceScheduleListHeaderBinding import org.linphone.utils.Event @@ -42,8 +41,8 @@ class ScheduledConferencesAdapter( private val viewLifecycleOwner: LifecycleOwner ) : ListAdapter(ConferenceInfoDiffCallback()), HeaderAdapter { - val copyAddressToClipboardEvent: MutableLiveData> by lazy { - MutableLiveData>() + val copyAddressToClipboardEvent: MutableLiveData> by lazy { + MutableLiveData>() } val joinConferenceEvent: MutableLiveData>> by lazy { @@ -108,8 +107,8 @@ class ScheduledConferencesAdapter( lifecycleOwner = viewLifecycleOwner setCopyAddressClickListener { - val address = conferenceData.conferenceInfo.uri - if (address != null) { + val address = conferenceData.getAddressAsString() + if (address.isNotEmpty()) { copyAddressToClipboardEvent.value = Event(address) } } diff --git a/app/src/main/java/org/linphone/activities/main/conference/data/ScheduledConferenceData.kt b/app/src/main/java/org/linphone/activities/main/conference/data/ScheduledConferenceData.kt index f1d2e75cb..8023ac04f 100644 --- a/app/src/main/java/org/linphone/activities/main/conference/data/ScheduledConferenceData.kt +++ b/app/src/main/java/org/linphone/activities/main/conference/data/ScheduledConferenceData.kt @@ -99,6 +99,15 @@ class ScheduledConferenceData(val conferenceInfo: ConferenceInfo) { computeBackgroundResId() } + fun getAddressAsString(): String { + val address = conferenceInfo.uri?.clone() + if (address != null) { + address.displayName = conferenceInfo.subject + return address.asString() + } + return "" + } + private fun computeBackgroundResId() { backgroundResId.value = if (isFinished.value == true) { if (expanded.value == true) { diff --git a/app/src/main/java/org/linphone/activities/main/conference/fragments/ScheduledConferencesFragment.kt b/app/src/main/java/org/linphone/activities/main/conference/fragments/ScheduledConferencesFragment.kt index f1c07c523..eab5477d7 100644 --- a/app/src/main/java/org/linphone/activities/main/conference/fragments/ScheduledConferencesFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/conference/fragments/ScheduledConferencesFragment.kt @@ -83,7 +83,7 @@ class ScheduledConferencesFragment : GenericFragment val clipboard = requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager - val clip = ClipData.newPlainText("Conference address", address.asStringUriOnly()) + val clip = ClipData.newPlainText("Conference address", address) clipboard.setPrimaryClip(clip) (activity as MainActivity).showSnackBar(R.string.conference_schedule_address_copied_to_clipboard)