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