From 2ef56c0cbbec0889c835184bcf986b003c4f7da6 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 16 Aug 2023 14:23:07 +0200 Subject: [PATCH] Added delete call log + started top dots menu --- .../ui/main/calls/adapter/CallsListAdapter.kt | 5 +++++ .../main/calls/fragment/CallsListFragment.kt | 8 ++++++++ .../fragment/CallsListMenuDialogFragment.kt | 5 +++-- .../ui/main/calls/model/CallLogModel.kt | 7 +++++++ .../res/layout-land/calls_list_fragment.xml | 19 ++++++++++++++++++- .../main/res/layout/calls_list_fragment.xml | 19 ++++++++++++++++++- 6 files changed, 59 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/calls/adapter/CallsListAdapter.kt b/app/src/main/java/org/linphone/ui/main/calls/adapter/CallsListAdapter.kt index a74a1eee1..22ecf5dd8 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/adapter/CallsListAdapter.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/adapter/CallsListAdapter.kt @@ -49,6 +49,11 @@ class CallsListAdapter( selectedAdapterPosition = -1 } + fun deleteSelection() { + notifyItemRemoved(selectedAdapterPosition) + selectedAdapterPosition = -1 + } + inner class ViewHolder( val binding: CallListCellBinding ) : RecyclerView.ViewHolder(binding.root) { 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 77e9707df..a8716fa4a 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 @@ -87,6 +87,10 @@ class CallsListFragment : GenericFragment() { }, { // onCopyNumberOrAddressToClipboard copyNumberOrAddressToClipboard(model.displayedAddress) + }, { + // onDeleteCallLog + model.delete() + adapter.deleteSelection() }) modalBottomSheet.show(parentFragmentManager, CallsListMenuDialogFragment.TAG) } @@ -119,6 +123,10 @@ class CallsListFragment : GenericFragment() { listViewModel.applyFilter(filter) } } + + binding.setMenuClickListener { + // TODO show popup menu with delete all history button + } } private fun copyNumberOrAddressToClipboard(value: String) { 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 cd0ebafc3..b54ffb2ac 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 @@ -29,7 +29,8 @@ import org.linphone.databinding.CallsListLongPressMenuBinding class CallsListMenuDialogFragment( private val onDismiss: (() -> Unit)? = null, - private val onCopyNumberOrAddressToClipboard: (() -> Unit)? = null + private val onCopyNumberOrAddressToClipboard: (() -> Unit)? = null, + private val onDeleteCallLog: (() -> Unit)? = null ) : BottomSheetDialogFragment() { companion object { const val TAG = "CallsListMenuDialogFragment" @@ -58,7 +59,7 @@ class CallsListMenuDialogFragment( } view.setDeleteClickListener { - // TODO + onDeleteCallLog?.invoke() dismiss() } diff --git a/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt b/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt index 698969d06..5defbeb76 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt @@ -43,4 +43,11 @@ class CallLogModel(val callLog: CallLog) { avatarModel = ContactAvatarModel(fakeFriend) } } + + fun delete() { + // UI thread + coreContext.postOnCoreThread { core -> + core.removeCallLog(callLog) + } + } } 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 637cadbd7..33a56e599 100644 --- a/app/src/main/res/layout-land/calls_list_fragment.xml +++ b/app/src/main/res/layout-land/calls_list_fragment.xml @@ -11,6 +11,9 @@ + @@ -26,10 +29,24 @@ android:name="org.linphone.ui.main.fragment.TopBarFragment" android:layout_width="0dp" android:layout_height="@dimen/top_search_bar_height" + android:layout_marginEnd="9dp" bind:layout="@layout/top_search_bar" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toEndOf="@id/bottom_nav_bar" - app:layout_constraintEnd_toEndOf="parent"/> + app:layout_constraintEnd_toStartOf="@id/menu"/> + + + @@ -26,10 +29,24 @@ android:name="org.linphone.ui.main.fragment.TopBarFragment" android:layout_width="0dp" android:layout_height="@dimen/top_search_bar_height" + android:layout_marginEnd="9dp" bind:layout="@layout/top_search_bar" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toEndOf="parent"/> + app:layout_constraintEnd_toStartOf="@id/menu"/> + +