Show confirmation dialog before removing contact from details fragment

This commit is contained in:
Sylvain Berfini 2020-06-17 11:38:53 +02:00
parent fd3f3a076e
commit 8cf401f7ab
2 changed files with 22 additions and 2 deletions

View file

@ -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)

View file

@ -94,6 +94,7 @@
<string name="contact_organization">Organization</string>
<string name="contact_choose_existing_or_new_to_add_number">Select a contact or create a new one</string>
<string name="contact_editor_write_permission_denied">Write Contacts permission denied, can\'t edit contact</string>
<string name="contact_confirm_removal_dialog">Do you want to delete this contact?\nIt will also be removed from your device addressbook</string>
<!-- Dialer -->
<string name="dialer_address_bar_hint">Enter a number or an address</string>