From 13b25b918d1559fae43a7efe4f4854c24e380d69 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 3 Nov 2020 22:24:17 +0100 Subject: [PATCH] allow dialing phone numbers of conversation recipiends --- .../adapters/ConversationsAdapter.kt | 19 ++++++++++++++++++- app/src/main/res/menu/cab_conversations.xml | 5 +++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt index 0713b7aa..a5ab8207 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -2,6 +2,7 @@ package com.simplemobiletools.smsmessenger.adapters import android.content.Intent import android.graphics.Typeface +import android.net.Uri import android.text.TextUtils import android.util.TypedValue import android.view.Menu @@ -37,8 +38,9 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis override fun prepareActionMode(menu: Menu) { menu.apply { - findItem(R.id.cab_add_number_to_contact).isVisible = isOneItemSelected() && getSelectedItems().firstOrNull()?.isGroupConversation == false findItem(R.id.cab_block_number).isVisible = isNougatPlus() + findItem(R.id.cab_add_number_to_contact).isVisible = isOneItemSelected() && getSelectedItems().firstOrNull()?.isGroupConversation == false + findItem(R.id.cab_dial_number).isVisible = isOneItemSelected() && getSelectedItems().firstOrNull()?.isGroupConversation == false findItem(R.id.cab_copy_number).isVisible = isOneItemSelected() && getSelectedItems().firstOrNull()?.isGroupConversation == false } } @@ -51,6 +53,7 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis when (id) { R.id.cab_add_number_to_contact -> addNumberToContact() R.id.cab_block_number -> askConfirmBlock() + R.id.cab_dial_number -> dialNumber() R.id.cab_copy_number -> copyNumberToClipboard() R.id.cab_select_all -> selectAll() R.id.cab_delete -> askConfirmDelete() @@ -112,6 +115,20 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis } } + private fun dialNumber() { + val conversation = getSelectedItems().firstOrNull() ?: return + Intent(Intent.ACTION_DIAL).apply { + data = Uri.fromParts("tel", conversation.phoneNumber, null) + + if (resolveActivity(activity.packageManager) != null) { + activity.startActivity(this) + finishActMode() + } else { + activity.toast(R.string.no_app_found) + } + } + } + private fun copyNumberToClipboard() { val conversation = getSelectedItems().firstOrNull() ?: return activity.copyToClipboard(conversation.phoneNumber) diff --git a/app/src/main/res/menu/cab_conversations.xml b/app/src/main/res/menu/cab_conversations.xml index 8085dcde..a870e35c 100644 --- a/app/src/main/res/menu/cab_conversations.xml +++ b/app/src/main/res/menu/cab_conversations.xml @@ -11,6 +11,11 @@ android:icon="@drawable/ic_minus_circle_vector" android:title="@string/block_number" app:showAsAction="ifRoom" /> +