From 8cf401f7abfc019f3e5c855f06e79b2822db6c64 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 17 Jun 2020 11:38:53 +0200 Subject: [PATCH] Show confirmation dialog before removing contact from details fragment --- .../fragments/DetailContactFragment.kt | 23 +++++++++++++++++-- app/src/main/res/values/strings.xml | 1 + 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/contact/fragments/DetailContactFragment.kt b/app/src/main/java/org/linphone/activities/main/contact/fragments/DetailContactFragment.kt index d3f95ba43..862277832 100644 --- a/app/src/main/java/org/linphone/activities/main/contact/fragments/DetailContactFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/contact/fragments/DetailContactFragment.kt @@ -19,6 +19,7 @@ */ package org.linphone.activities.main.contact.fragments +import android.app.Dialog import android.content.Intent import android.net.Uri import android.os.Bundle @@ -34,9 +35,11 @@ import org.linphone.R import org.linphone.activities.main.MainActivity import org.linphone.activities.main.contact.viewmodels.ContactViewModel import org.linphone.activities.main.contact.viewmodels.ContactViewModelFactory +import org.linphone.activities.main.viewmodels.DialogViewModel import org.linphone.activities.main.viewmodels.SharedMainViewModel import org.linphone.core.tools.Log import org.linphone.databinding.ContactDetailFragmentBinding +import org.linphone.utils.DialogUtils class DetailContactFragment : Fragment() { private lateinit var binding: ContactDetailFragmentBinding @@ -117,8 +120,7 @@ class DetailContactFragment : Fragment() { } binding.setDeleteClickListener { - viewModel.deleteContact() - findNavController().navigateUp() + confirmContactRemoval() } viewModel.onErrorEvent.observe(viewLifecycleOwner, Observer { @@ -128,6 +130,23 @@ class DetailContactFragment : Fragment() { }) } + private fun confirmContactRemoval() { + val dialogViewModel = DialogViewModel(getString(R.string.contact_confirm_removal_dialog)) + val dialog: Dialog = DialogUtils.getDialog(requireContext(), dialogViewModel) + + dialogViewModel.showCancelButton { + dialog.dismiss() + } + + dialogViewModel.showDeleteButton({ + viewModel.deleteContact() + dialog.dismiss() + findNavController().navigateUp() + }, getString(R.string.dialog_delete)) + + dialog.show() + } + private fun sendSms(number: String) { val smsIntent = Intent(Intent.ACTION_SENDTO) smsIntent.putExtra("address", number) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4f64b9526..e93ec66c8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -94,6 +94,7 @@ Organization Select a contact or create a new one Write Contacts permission denied, can\'t edit contact + Do you want to delete this contact?\nIt will also be removed from your device addressbook Enter a number or an address