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"/> + +