adding the call confirmation dialog

This commit is contained in:
tibbi
2018-08-03 11:58:53 +02:00
parent 4ec77d685e
commit 828c3337cc
24 changed files with 89 additions and 1 deletions

View File

@ -0,0 +1,30 @@
package com.simplemobiletools.contacts.dialogs
import android.support.v7.app.AlertDialog
import android.view.animation.AnimationUtils
import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.extensions.setupDialogStuff
import com.simplemobiletools.contacts.R
import com.simplemobiletools.contacts.models.Contact
import kotlinx.android.synthetic.main.dialog_call_confirmation.view.*
class CallConfirmationDialog(val activity: BaseSimpleActivity, val contact: Contact, private val callback: () -> Unit) {
private var view = activity.layoutInflater.inflate(R.layout.dialog_call_confirmation, null)
init {
AlertDialog.Builder(activity)
.setNegativeButton(R.string.cancel, null)
.create().apply {
val title = String.format(activity.getString(R.string.call_person), contact.getFullName())
activity.setupDialogStuff(view, this, titleText = title) {
view.call_confirm_phone.apply {
startAnimation(AnimationUtils.loadAnimation(activity, R.anim.pulsing_animation))
setOnClickListener {
callback.invoke()
dismiss()
}
}
}
}
}
}

View File

@ -14,6 +14,7 @@ import com.simplemobiletools.commons.models.RadioItem
import com.simplemobiletools.contacts.BuildConfig
import com.simplemobiletools.contacts.R
import com.simplemobiletools.contacts.activities.SimpleActivity
import com.simplemobiletools.contacts.dialogs.CallConfirmationDialog
import com.simplemobiletools.contacts.helpers.ContactsHelper
import com.simplemobiletools.contacts.helpers.SMT_PRIVATE
import com.simplemobiletools.contacts.helpers.VcfExporter
@ -36,6 +37,16 @@ fun SimpleActivity.startCallIntent(recipient: String) {
}
fun SimpleActivity.tryStartCall(contact: Contact) {
if (config.showCallConfirmation) {
CallConfirmationDialog(this, contact) {
startCall(contact)
}
} else {
startCall(contact)
}
}
fun SimpleActivity.startCall(contact: Contact) {
val numbers = contact.phoneNumbers
if (numbers.size == 1) {
startCallIntent(numbers.first().value)