diff --git a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt
index 6e360c924..77e9707df 100644
--- a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt
@@ -19,12 +19,16 @@
*/
package org.linphone.ui.main.calls.fragment
+import android.content.ClipData
+import android.content.ClipboardManager
+import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.animation.Animation
import android.view.animation.AnimationUtils
+import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import androidx.navigation.navGraphViewModels
import androidx.recyclerview.widget.LinearLayoutManager
@@ -35,6 +39,7 @@ import org.linphone.ui.main.calls.adapter.CallsListAdapter
import org.linphone.ui.main.calls.viewmodel.CallsListViewModel
import org.linphone.ui.main.fragment.GenericFragment
import org.linphone.utils.Event
+import org.linphone.utils.slideInToastFromTopForDuration
class CallsListFragment : GenericFragment() {
@@ -76,9 +81,13 @@ class CallsListFragment : GenericFragment() {
adapter.callLogLongClickedEvent.observe(viewLifecycleOwner) {
it.consume { model ->
- val modalBottomSheet = CallsListMenuDialogFragment(model.callLog) {
+ val modalBottomSheet = CallsListMenuDialogFragment({
+ // onDismiss
adapter.resetSelection()
- }
+ }, {
+ // onCopyNumberOrAddressToClipboard
+ copyNumberOrAddressToClipboard(model.displayedAddress)
+ })
modalBottomSheet.show(parentFragmentManager, CallsListMenuDialogFragment.TAG)
}
}
@@ -111,4 +120,16 @@ class CallsListFragment : GenericFragment() {
}
}
}
+
+ private fun copyNumberOrAddressToClipboard(value: String) {
+ val clipboard = requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
+ val label = "SIP address"
+ clipboard.setPrimaryClip(ClipData.newPlainText(label, value))
+
+ binding.greenToast.message = "Numéro copié dans le presse-papier"
+ binding.greenToast.icon = R.drawable.check
+
+ val target = binding.greenToast.root
+ target.slideInToastFromTopForDuration(binding.root as ViewGroup, lifecycleScope)
+ }
}
diff --git a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListMenuDialogFragment.kt b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListMenuDialogFragment.kt
index 6614e2173..cd0ebafc3 100644
--- a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListMenuDialogFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListMenuDialogFragment.kt
@@ -25,12 +25,11 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
-import org.linphone.core.CallLog
import org.linphone.databinding.CallsListLongPressMenuBinding
class CallsListMenuDialogFragment(
- private val calLog: CallLog,
- private val onDismiss: (() -> Unit)? = null
+ private val onDismiss: (() -> Unit)? = null,
+ private val onCopyNumberOrAddressToClipboard: (() -> Unit)? = null
) : BottomSheetDialogFragment() {
companion object {
const val TAG = "CallsListMenuDialogFragment"
@@ -52,6 +51,22 @@ class CallsListMenuDialogFragment(
savedInstanceState: Bundle?
): View {
val view = CallsListLongPressMenuBinding.inflate(layoutInflater)
+
+ view.setCopyNumberClickListener {
+ onCopyNumberOrAddressToClipboard?.invoke()
+ dismiss()
+ }
+
+ view.setDeleteClickListener {
+ // TODO
+ dismiss()
+ }
+
+ view.setNewContactClickListener {
+ // TODO
+ dismiss()
+ }
+
return view.root
}
}
diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListMenuDialogFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListMenuDialogFragment.kt
index 525234e7d..368356314 100644
--- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListMenuDialogFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListMenuDialogFragment.kt
@@ -52,6 +52,27 @@ class ContactsListMenuDialogFragment(
savedInstanceState: Bundle?
): View {
val view = ContactsListLongPressMenuBinding.inflate(layoutInflater)
+
+ view.setFavoriteClickListener {
+ // TODO
+ dismiss()
+ }
+
+ view.setShareClickListener {
+ // TODO
+ dismiss()
+ }
+
+ view.setInviteClickListener {
+ // TODO
+ dismiss()
+ }
+
+ view.setDeleteClickListener {
+ // TODO
+ dismiss()
+ }
+
return view.root
}
}
diff --git a/app/src/main/res/layout-land/calls_list_fragment.xml b/app/src/main/res/layout-land/calls_list_fragment.xml
index c066cd384..637cadbd7 100644
--- a/app/src/main/res/layout-land/calls_list_fragment.xml
+++ b/app/src/main/res/layout-land/calls_list_fragment.xml
@@ -52,6 +52,19 @@
app:layout_constraintTop_toBottomOf="@id/top_bar"
app:layout_constraintBottom_toBottomOf="parent" />
+
+
+
+