mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-21 13:48:11 +00:00
Added copy to clipboard in call history list
This commit is contained in:
parent
8b446e2de0
commit
8d74b8f133
5 changed files with 88 additions and 5 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,6 +52,19 @@
|
|||
app:layout_constraintTop_toBottomOf="@id/top_bar"
|
||||
app:layout_constraintBottom_toBottomOf="parent" />
|
||||
|
||||
<include
|
||||
android:id="@+id/green_toast"
|
||||
android:visibility="gone"
|
||||
layout="@layout/toast_green"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
app:layout_constraintTop_toTopOf="@id/background"
|
||||
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/bottom_nav_bar"
|
||||
android:name="org.linphone.ui.main.fragment.BottomNavBarFragment"
|
||||
|
|
|
|||
|
|
@ -52,6 +52,19 @@
|
|||
app:layout_constraintTop_toBottomOf="@id/top_bar"
|
||||
app:layout_constraintBottom_toTopOf="@id/bottom_nav_bar" />
|
||||
|
||||
<include
|
||||
android:id="@+id/green_toast"
|
||||
android:visibility="gone"
|
||||
layout="@layout/toast_green"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
app:layout_constraintTop_toTopOf="@id/background"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/bottom_nav_bar"
|
||||
android:name="org.linphone.ui.main.fragment.BottomNavBarFragment"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue