diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt
index 80e754d8..8650d636 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ViewContactActivity.kt
@@ -2,6 +2,7 @@ package com.simplemobiletools.contacts.activities
import android.content.Intent
import android.graphics.drawable.ColorDrawable
+import android.net.Uri
import android.os.Bundle
import android.provider.ContactsContract
import android.view.Menu
@@ -49,13 +50,18 @@ class ViewContactActivity : ContactActivity() {
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu_view_contact, menu)
+ menu.apply {
+ findItem(R.id.open_with).isVisible = contact?.source != SMT_PRIVATE
+ }
return true
}
+
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.edit -> editContact(contact!!)
R.id.share -> shareContact()
+ R.id.open_with -> openWith()
R.id.delete -> deleteContact()
else -> return super.onOptionsItemSelected(item)
}
@@ -151,6 +157,17 @@ class ViewContactActivity : ContactActivity() {
setupContactSource()
}
+ private fun openWith() {
+ val lookupKey = ContactsHelper(this).getContactLookupKey(contact?.id.toString())
+ val uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey)
+
+ Intent().apply {
+ action = ContactsContract.QuickContact.ACTION_QUICK_CONTACT
+ data = uri
+ startActivity(this)
+ }
+ }
+
private fun setupFavorite() {
contact_toggle_favorite.apply {
beVisible()
diff --git a/app/src/main/res/menu/menu_view_contact.xml b/app/src/main/res/menu/menu_view_contact.xml
index 4da28f74..a4436f7f 100644
--- a/app/src/main/res/menu/menu_view_contact.xml
+++ b/app/src/main/res/menu/menu_view_contact.xml
@@ -11,6 +11,10 @@
android:icon="@drawable/ic_share"
android:title="@string/share"
app:showAsAction="ifRoom"/>
+