diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 440b683b..69fd7dd9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -170,6 +170,12 @@
+
+
+
+
+
+
) {
ContactsAdapter(this, contacts, null, LOCATION_INSERT_OR_EDIT, null, existing_contact_list, existing_contact_fastscroller) {
val contact = it as Contact
+ val phoneNumber = getPhoneNumberFromIntent(intent) ?: ""
+ val email = getEmailFromIntent(intent) ?: ""
+
Intent(applicationContext, EditContactActivity::class.java).apply {
data = getContactPublicUri(contact)
action = ADD_NEW_CONTACT_NUMBER
- putExtra(KEY_PHONE, getPhoneNumberFromIntent(intent))
+
+ if (phoneNumber.isNotEmpty()) {
+ putExtra(KEY_PHONE, phoneNumber)
+ }
+
+ if (email.isNotEmpty()) {
+ putExtra(KEY_EMAIL, email)
+ }
+
putExtra(IS_PRIVATE, contact.isPrivate())
startActivityForResult(this, START_EDIT_ACTIVITY)
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SimpleActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SimpleActivity.kt
index 0ff042c7..0f8dd845 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SimpleActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SimpleActivity.kt
@@ -3,11 +3,13 @@ package com.simplemobiletools.contacts.pro.activities
import android.annotation.TargetApi
import android.content.ContentValues
import android.content.Intent
+import android.net.Uri
import android.os.Build
import android.telecom.TelecomManager
import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.extensions.toast
import com.simplemobiletools.contacts.pro.R
+import com.simplemobiletools.contacts.pro.helpers.KEY_MAILTO
import com.simplemobiletools.contacts.pro.helpers.KEY_PHONE
import com.simplemobiletools.contacts.pro.helpers.REQUEST_CODE_SET_DEFAULT_DIALER
@@ -53,6 +55,14 @@ open class SimpleActivity : BaseSimpleActivity() {
return null
}
+ protected fun getEmailFromIntent(intent: Intent): String? {
+ return if (intent.dataString?.startsWith("$KEY_MAILTO:") == true) {
+ Uri.decode(intent.dataString!!.substringAfter("$KEY_MAILTO:").trim())
+ } else {
+ null
+ }
+ }
+
@TargetApi(Build.VERSION_CODES.M)
protected fun launchSetDefaultDialerIntent() {
Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER).putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, packageName).apply {
diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt
index 81978f54..c7072406 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt
@@ -66,7 +66,7 @@ fun Context.editContact(contact: Contact) {
fun Context.sendEmailIntent(recipient: String) {
Intent(Intent.ACTION_SENDTO).apply {
- data = Uri.fromParts("mailto", recipient, null)
+ data = Uri.fromParts(KEY_MAILTO, recipient, null)
if (resolveActivity(packageManager) != null) {
startActivity(this)
} else {
diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt
index 91edd52d..1a122b0f 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt
@@ -31,6 +31,7 @@ const val REQUEST_CODE_SET_DEFAULT_DIALER = 1
const val KEY_PHONE = "phone"
const val KEY_NAME = "name"
const val KEY_EMAIL = "email"
+const val KEY_MAILTO = "mailto"
const val LOCATION_CONTACTS_TAB = 0
const val LOCATION_FAVORITES_TAB = 1