diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt
index 6d908d167..2689a63d0 100644
--- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt
@@ -29,6 +29,7 @@ import androidx.core.view.doOnPreDraw
import androidx.navigation.fragment.findNavController
import androidx.navigation.navGraphViewModels
import androidx.recyclerview.widget.LinearLayoutManager
+import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R
import org.linphone.databinding.ContactsListFragmentBinding
import org.linphone.ui.main.contacts.adapter.ContactsListAdapter
@@ -118,9 +119,26 @@ class ContactsListFragment : GenericFragment() {
private fun configureAdapter(adapter: ContactsListAdapter) {
adapter.contactLongClickedEvent.observe(viewLifecycleOwner) {
it.consume { model ->
- val modalBottomSheet = ContactsListMenuDialogFragment(model.friend) {
+ val modalBottomSheet = ContactsListMenuDialogFragment(model.friend.starred, {
adapter.resetSelection()
- }
+ }, {
+ // onFavourite
+ coreContext.postOnCoreThread {
+ model.friend.edit()
+ model.friend.starred = !model.friend.starred
+ model.friend.done()
+ coreContext.contactsManager.notifyContactsListChanged()
+ }
+ }, {
+ // onShare
+ // TODO
+ }, {
+ // onDelete
+ coreContext.postOnCoreThread {
+ model.friend.remove()
+ coreContext.contactsManager.notifyContactsListChanged()
+ }
+ })
modalBottomSheet.show(parentFragmentManager, ContactsListMenuDialogFragment.TAG)
}
}
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 368356314..383ee77e4 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
@@ -25,12 +25,14 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
-import org.linphone.core.Friend
import org.linphone.databinding.ContactsListLongPressMenuBinding
class ContactsListMenuDialogFragment(
- private val friend: Friend,
- private val onDismiss: (() -> Unit)? = null
+ val isFavourite: Boolean,
+ private val onDismiss: (() -> Unit)? = null,
+ private val onFavourite: (() -> Unit)? = null,
+ private val onShare: (() -> Unit)? = null,
+ private val onDelete: (() -> Unit)? = null
) : BottomSheetDialogFragment() {
companion object {
const val TAG = "ContactsListMenuDialogFragment"
@@ -52,24 +54,20 @@ class ContactsListMenuDialogFragment(
savedInstanceState: Bundle?
): View {
val view = ContactsListLongPressMenuBinding.inflate(layoutInflater)
+ view.isFavourite = isFavourite
view.setFavoriteClickListener {
- // TODO
+ onFavourite?.invoke()
dismiss()
}
view.setShareClickListener {
- // TODO
- dismiss()
- }
-
- view.setInviteClickListener {
- // TODO
+ onShare?.invoke()
dismiss()
}
view.setDeleteClickListener {
- // TODO
+ onDelete?.invoke()
dismiss()
}
diff --git a/app/src/main/res/drawable/not_favourite.xml b/app/src/main/res/drawable/not_favourite.xml
index 44db34b4b..3094b68a6 100644
--- a/app/src/main/res/drawable/not_favourite.xml
+++ b/app/src/main/res/drawable/not_favourite.xml
@@ -1,13 +1,13 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
diff --git a/app/src/main/res/layout/contacts_list_long_press_menu.xml b/app/src/main/res/layout/contacts_list_long_press_menu.xml
index 31b2147ec..877d74115 100644
--- a/app/src/main/res/layout/contacts_list_long_press_menu.xml
+++ b/app/src/main/res/layout/contacts_list_long_press_menu.xml
@@ -51,20 +51,6 @@
android:background="@color/gray_2"
android:layout_marginBottom="1dp"
android:drawableStart="@drawable/share"
- app:layout_constraintBottom_toTopOf="@id/invite"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintEnd_toEndOf="parent" />
-
-