From ee166494bc7a2f31a10f8639a51b9d8f5fb6bd86 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 5 Apr 2021 21:19:43 +0200 Subject: [PATCH] properly handle intents on Android 11+ --- .../dialer/activities/DialpadActivity.kt | 6 +----- .../dialer/adapters/RecentCallsAdapter.kt | 13 +++++-------- .../simplemobiletools/dialer/extensions/Activity.kt | 10 +++------- .../dialer/fragments/ContactsFragment.kt | 6 +----- 4 files changed, 10 insertions(+), 25 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt index ba8f08bc..0fb4ac44 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/DialpadActivity.kt @@ -123,11 +123,7 @@ class DialpadActivity : SimpleActivity() { action = Intent.ACTION_INSERT_OR_EDIT type = "vnd.android.cursor.item/contact" putExtra(KEY_PHONE, dialpad_input.value) - if (resolveActivity(packageManager) != null) { - startActivity(this) - } else { - toast(R.string.no_app_found) - } + launchActivityIntent(this) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/RecentCallsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/RecentCallsAdapter.kt index 8009cbaf..e9222da9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/RecentCallsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/adapters/RecentCallsAdapter.kt @@ -27,8 +27,10 @@ import com.simplemobiletools.dialer.models.RecentCall import kotlinx.android.synthetic.main.item_recent_call.view.* import java.util.* -class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList, recyclerView: MyRecyclerView, val refreshItemsListener: RefreshItemsListener?, - itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) { +class RecentCallsAdapter( + activity: SimpleActivity, var recentCalls: ArrayList, recyclerView: MyRecyclerView, val refreshItemsListener: RefreshItemsListener?, + itemClick: (Any) -> Unit +) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) { private lateinit var outgoingCallIcon: Drawable private lateinit var incomingCallIcon: Drawable @@ -167,12 +169,7 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList 1000000 && contact.contactId > 1000000 && contact.rawId == contact.contactId && - (isPackageInstalled(simpleContacts) || isPackageInstalled(simpleContactsDebug))) { + (isPackageInstalled(simpleContacts) || isPackageInstalled(simpleContactsDebug)) + ) { Intent().apply { action = Intent.ACTION_VIEW putExtra(CONTACT_ID, contact.rawId) putExtra(IS_PRIVATE, true) `package` = if (isPackageInstalled(simpleContacts)) simpleContacts else simpleContactsDebug setDataAndType(ContactsContract.Contacts.CONTENT_LOOKUP_URI, "vnd.android.cursor.dir/person") - if (resolveActivity(packageManager) != null) { - startActivity(this) - } else { - toast(R.string.no_app_found) - } + launchActivityIntent(this) } } else { ensureBackgroundThread { diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt index ec9a760a..edd3554a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/ContactsFragment.kt @@ -166,11 +166,7 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag Intent().apply { action = Intent.ACTION_INSERT data = ContactsContract.Contacts.CONTENT_URI - if (resolveActivity(context.packageManager) != null) { - context.startActivity(this) - } else { - context.toast(R.string.no_app_found) - } + context.launchActivityIntent(this) } } }