mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-06-05 21:59:27 +02:00
add an Open With menu button to contacts
This commit is contained in:
@ -2,6 +2,7 @@ package com.simplemobiletools.contacts.activities
|
|||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.graphics.drawable.ColorDrawable
|
import android.graphics.drawable.ColorDrawable
|
||||||
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.ContactsContract
|
import android.provider.ContactsContract
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
@ -49,13 +50,18 @@ class ViewContactActivity : ContactActivity() {
|
|||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
menuInflater.inflate(R.menu.menu_view_contact, menu)
|
menuInflater.inflate(R.menu.menu_view_contact, menu)
|
||||||
|
menu.apply {
|
||||||
|
findItem(R.id.open_with).isVisible = contact?.source != SMT_PRIVATE
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
R.id.edit -> editContact(contact!!)
|
R.id.edit -> editContact(contact!!)
|
||||||
R.id.share -> shareContact()
|
R.id.share -> shareContact()
|
||||||
|
R.id.open_with -> openWith()
|
||||||
R.id.delete -> deleteContact()
|
R.id.delete -> deleteContact()
|
||||||
else -> return super.onOptionsItemSelected(item)
|
else -> return super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
@ -151,6 +157,17 @@ class ViewContactActivity : ContactActivity() {
|
|||||||
setupContactSource()
|
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() {
|
private fun setupFavorite() {
|
||||||
contact_toggle_favorite.apply {
|
contact_toggle_favorite.apply {
|
||||||
beVisible()
|
beVisible()
|
||||||
|
@ -11,6 +11,10 @@
|
|||||||
android:icon="@drawable/ic_share"
|
android:icon="@drawable/ic_share"
|
||||||
android:title="@string/share"
|
android:title="@string/share"
|
||||||
app:showAsAction="ifRoom"/>
|
app:showAsAction="ifRoom"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/open_with"
|
||||||
|
android:title="@string/open_with"
|
||||||
|
app:showAsAction="never"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/delete"
|
android:id="@+id/delete"
|
||||||
android:icon="@drawable/ic_delete"
|
android:icon="@drawable/ic_delete"
|
||||||
|
Reference in New Issue
Block a user