Use same dialog style to confirm conference info removal

This commit is contained in:
Sylvain Berfini 2022-09-06 10:21:38 +02:00
parent 60067c259b
commit 9d9c58e7f7

View file

@ -80,29 +80,13 @@ class ScheduledConferencesFragment : MasterFragment<ConferencesScheduledFragment
override fun onLeftToRightSwipe(viewHolder: RecyclerView.ViewHolder) {}
override fun onRightToLeftSwipe(viewHolder: RecyclerView.ViewHolder) {
val viewModel = DialogViewModel(getString(R.string.conference_scheduled_delete_one_dialog))
val dialog: Dialog = DialogUtils.getDialog(requireContext(), viewModel)
val index = viewHolder.bindingAdapterPosition
if (index < 0 || index >= adapter.currentList.size) {
Log.e("[Scheduled Conferences] Index is out of bound, can't delete conference info")
} else {
viewModel.showCancelButton {
adapter.notifyItemChanged(index)
dialog.dismiss()
}
viewModel.showDeleteButton(
{
val deletedConfInfo = adapter.currentList[index]
listViewModel.deleteConferenceInfo(deletedConfInfo)
dialog.dismiss()
},
getString(R.string.dialog_delete)
)
showConfInfoDeleteConfirmationDialog(deletedConfInfo, index)
}
dialog.show()
}
}
RecyclerViewSwipeUtils(ItemTouchHelper.LEFT, swipeConfiguration, swipeListener)
@ -152,6 +136,25 @@ class ScheduledConferencesFragment : MasterFragment<ConferencesScheduledFragment
viewLifecycleOwner
) {
it.consume { data ->
showConfInfoDeleteConfirmationDialog(data, -1)
}
}
binding.setNewConferenceClickListener {
navigateToConferenceScheduling()
}
}
override fun deleteItems(indexesOfItemToDelete: ArrayList<Int>) {
val list = ArrayList<ScheduledConferenceData>()
for (index in indexesOfItemToDelete) {
val conferenceData = adapter.currentList[index]
list.add(conferenceData)
}
listViewModel.deleteConferencesInfo(list)
}
private fun showConfInfoDeleteConfirmationDialog(data: ScheduledConferenceData, index: Int) {
val dialogViewModel =
DialogViewModel(AppUtils.getString(R.string.conference_scheduled_delete_one_dialog))
deleteConferenceInfoDialog =
@ -159,6 +162,9 @@ class ScheduledConferencesFragment : MasterFragment<ConferencesScheduledFragment
dialogViewModel.showCancelButton(
{
if (index != -1) {
adapter.notifyItemChanged(index)
}
deleteConferenceInfoDialog?.dismiss()
},
getString(R.string.dialog_cancel)
@ -176,18 +182,3 @@ class ScheduledConferencesFragment : MasterFragment<ConferencesScheduledFragment
deleteConferenceInfoDialog?.show()
}
}
binding.setNewConferenceClickListener {
navigateToConferenceScheduling()
}
}
override fun deleteItems(indexesOfItemToDelete: ArrayList<Int>) {
val list = ArrayList<ScheduledConferenceData>()
for (index in indexesOfItemToDelete) {
val conferenceData = adapter.currentList[index]
list.add(conferenceData)
}
listViewModel.deleteConferencesInfo(list)
}
}