diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt index b5bc3492..df213ace 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt @@ -164,36 +164,21 @@ class EditContactActivity : ContactActivity() { } val action = intent.action - if ((contact!!.id == 0 && intent.extras != null && action == Intent.ACTION_INSERT) || action == ADD_NEW_CONTACT_NUMBER) { - val phone = intent.extras.get(KEY_PHONE) - if (phone != null) { - val phoneNumber = phone.toString() + if (((contact!!.id == 0 && action == Intent.ACTION_INSERT) || action == ADD_NEW_CONTACT_NUMBER) && intent.extras != null) { + val phoneNumber = getPhoneNumberFromIntent(intent) + if (phoneNumber != null) { contact!!.phoneNumbers.add(PhoneNumber(phoneNumber, DEFAULT_PHONE_NUMBER_TYPE, "", phoneNumber.normalizeNumber())) if (phoneNumber.isNotEmpty() && action == ADD_NEW_CONTACT_NUMBER) { highlightLastPhoneNumber = true } - } else { - // sample contact number from Google Contacts: - // data: [data1=+123 456 789 mimetype=vnd.android.cursor.item/phone_v2 _id=-1 data2=0] - val data = intent.extras.get("data") - if (data != null) { - val contentValues = (data as? ArrayList)?.firstOrNull() as? ContentValues - if (contentValues != null && contentValues.containsKey("data1")) { - val phoneNumber = contentValues.getAsString("data1") - contact!!.phoneNumbers.add(PhoneNumber(phoneNumber, DEFAULT_PHONE_NUMBER_TYPE, "", phoneNumber.normalizeNumber())) - if (phoneNumber.isNotEmpty() && action == ADD_NEW_CONTACT_NUMBER) { - highlightLastPhoneNumber = true - } - } - } } - val firstName = intent.extras.get(KEY_NAME) + val firstName = intent.extras!!.get(KEY_NAME) if (firstName != null) { contact!!.firstName = firstName.toString() } - val data = intent.extras.getParcelableArrayList("data") + val data = intent.extras!!.getParcelableArrayList("data") if (data != null) { parseIntentData(data) } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt index 1b0f8da8..1fbcf274 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/InsertOrEditContactActivity.kt @@ -45,7 +45,7 @@ class InsertOrEditContactActivity : SimpleActivity() { Intent().apply { action = Intent.ACTION_INSERT data = ContactsContract.Contacts.CONTENT_URI - putExtra(KEY_PHONE, intent.getStringExtra(KEY_PHONE)) + putExtra(KEY_PHONE, getPhoneNumberFromIntent(intent)) if (resolveActivity(packageManager) != null) { startActivityForResult(this, START_INSERT_ACTIVITY) } else { @@ -62,7 +62,7 @@ class InsertOrEditContactActivity : SimpleActivity() { Intent(applicationContext, EditContactActivity::class.java).apply { data = getContactPublicUri(it as Contact) action = ADD_NEW_CONTACT_NUMBER - putExtra(KEY_PHONE, intent.getStringExtra(KEY_PHONE)) + putExtra(KEY_PHONE, getPhoneNumberFromIntent(intent)) startActivityForResult(this, START_EDIT_ACTIVITY) } }.apply { 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 cff6e0a3..26858bb3 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 @@ -1,7 +1,10 @@ package com.simplemobiletools.contacts.pro.activities +import android.content.ContentValues +import android.content.Intent import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.contacts.pro.R +import com.simplemobiletools.contacts.pro.helpers.KEY_PHONE open class SimpleActivity : BaseSimpleActivity() { override fun getAppIconIDs() = arrayListOf( @@ -27,4 +30,21 @@ open class SimpleActivity : BaseSimpleActivity() { ) override fun getAppLauncherName() = getString(R.string.app_launcher_name) + + protected fun getPhoneNumberFromIntent(intent: Intent): String? { + if (intent.extras?.containsKey(KEY_PHONE) == true) { + return intent.getStringExtra(KEY_PHONE) + } else if (intent.extras?.containsKey("data") == true) { + // sample contact number from Google Contacts: + // data: [data1=+123 456 789 mimetype=vnd.android.cursor.item/phone_v2 _id=-1 data2=0] + val data = intent.extras!!.get("data") + if (data != null) { + val contentValues = (data as? ArrayList)?.firstOrNull() as? ContentValues + if (contentValues != null && contentValues.containsKey("data1")) { + return contentValues.getAsString("data1") + } + } + } + return null + } }