From 41114e5f2c0e8b86f1f0f09e4d10c369fa928e97 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Mon, 18 Oct 2021 15:45:20 +0200 Subject: [PATCH 1/5] Added calling contact in conversation (#230) --- .../smsmessenger/activities/ThreadActivity.kt | 18 ++++++++++++++++++ app/src/main/res/menu/menu_thread.xml | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index d40ac05d..437df63a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -2,6 +2,7 @@ package com.simplemobiletools.smsmessenger.activities import android.annotation.SuppressLint import android.app.Activity +import android.content.ActivityNotFoundException import android.content.Intent import android.graphics.BitmapFactory import android.graphics.drawable.Drawable @@ -143,6 +144,7 @@ class ThreadActivity : SimpleActivity() { menu.apply { findItem(R.id.delete).isVisible = threadItems.isNotEmpty() findItem(R.id.block_number).isVisible = isNougatPlus() + findItem(R.id.dial_number).isVisible = participants.size == 1 } updateMenuItemColors(menu) @@ -157,6 +159,7 @@ class ThreadActivity : SimpleActivity() { when (item.itemId) { R.id.block_number -> blockNumber() R.id.delete -> askConfirmDelete() + R.id.dial_number -> dialNumber() R.id.manage_people -> managePeople() R.id.mark_as_unread -> markAsUnread() else -> return super.onOptionsItemSelected(item) @@ -488,6 +491,21 @@ class ThreadActivity : SimpleActivity() { } } + private fun dialNumber() { + val phoneNumber = participants.first().phoneNumbers.first() + Intent(Intent.ACTION_DIAL).apply { + data = Uri.fromParts("tel", phoneNumber, null) + + try { + startActivity(this) + } catch (e: ActivityNotFoundException) { + toast(R.string.no_app_found) + } catch (e: Exception) { + showErrorToast(e) + } + } + } + private fun managePeople() { if (thread_add_contacts.isVisible()) { hideKeyboard() diff --git a/app/src/main/res/menu/menu_thread.xml b/app/src/main/res/menu/menu_thread.xml index dd4d0bd2..ae5ec9cf 100644 --- a/app/src/main/res/menu/menu_thread.xml +++ b/app/src/main/res/menu/menu_thread.xml @@ -11,6 +11,11 @@ android:icon="@drawable/ic_add_person_vector" android:title="@string/add_person" app:showAsAction="ifRoom" /> + Date: Mon, 18 Oct 2021 18:19:26 +0200 Subject: [PATCH 2/5] Dialing number refactor --- .../smsmessenger/activities/ThreadActivity.kt | 12 +---------- .../adapters/ConversationsAdapter.kt | 13 +----------- .../smsmessenger/extensions/Context.kt | 21 ++++++++++++++----- 3 files changed, 18 insertions(+), 28 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index 437df63a..7dc03292 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -493,17 +493,7 @@ class ThreadActivity : SimpleActivity() { private fun dialNumber() { val phoneNumber = participants.first().phoneNumbers.first() - Intent(Intent.ACTION_DIAL).apply { - data = Uri.fromParts("tel", phoneNumber, null) - - try { - startActivity(this) - } catch (e: ActivityNotFoundException) { - toast(R.string.no_app_found) - } catch (e: Exception) { - showErrorToast(e) - } - } + dialNumber(phoneNumber) } private fun managePeople() { 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 40e0eb26..ae52fca1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -129,18 +129,7 @@ class ConversationsAdapter( private fun dialNumber() { val conversation = getSelectedItems().firstOrNull() ?: return - Intent(Intent.ACTION_DIAL).apply { - data = Uri.fromParts("tel", conversation.phoneNumber, null) - - try { - activity.startActivity(this) - finishActMode() - } catch (e: ActivityNotFoundException) { - activity.toast(R.string.no_app_found) - } catch (e: Exception) { - activity.showErrorToast(e) - } - } + activity.dialNumber(conversation.phoneNumber) { finishActMode() } } private fun copyNumberToClipboard() { diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index c67adaf8..5b4609f3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -5,10 +5,7 @@ import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager import android.app.PendingIntent -import android.content.ContentResolver -import android.content.ContentValues -import android.content.Context -import android.content.Intent +import android.content.* import android.database.Cursor import android.graphics.Bitmap import android.media.AudioAttributes @@ -40,7 +37,6 @@ import com.simplemobiletools.smsmessenger.receivers.MarkAsReadReceiver import java.io.FileNotFoundException import java.util.* import kotlin.collections.ArrayList -import java.text.Normalizer import me.leolin.shortcutbadger.ShortcutBadger val Context.config: Config get() = Config.newInstance(applicationContext) @@ -897,3 +893,18 @@ fun Context.getFileSizeFromUri(uri: Uri): Long { return FILE_SIZE_NONE } } + +fun Context.dialNumber(phoneNumber: String, callback: () -> Unit = fun() {}) { + Intent(Intent.ACTION_DIAL).apply { + data = Uri.fromParts("tel", phoneNumber, null) + + try { + startActivity(this) + callback() + } catch (e: ActivityNotFoundException) { + toast(R.string.no_app_found) + } catch (e: Exception) { + showErrorToast(e) + } + } +} From ea637c529aca7d75b9cece07c2bb7d101ef845cd Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Mon, 18 Oct 2021 18:35:10 +0200 Subject: [PATCH 3/5] removing an unused import --- .../simplemobiletools/smsmessenger/activities/ThreadActivity.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index 7dc03292..2d58515b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -2,7 +2,6 @@ package com.simplemobiletools.smsmessenger.activities import android.annotation.SuppressLint import android.app.Activity -import android.content.ActivityNotFoundException import android.content.Intent import android.graphics.BitmapFactory import android.graphics.drawable.Drawable From 636c7cb8c5928b46de61d45e2ef6448dd655181d Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Mon, 18 Oct 2021 18:35:31 +0200 Subject: [PATCH 4/5] minor code style update + imports --- .../smsmessenger/adapters/ConversationsAdapter.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 ae52fca1..5332f2b5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -1,9 +1,7 @@ package com.simplemobiletools.smsmessenger.adapters -import android.content.ActivityNotFoundException import android.content.Intent import android.graphics.Typeface -import android.net.Uri import android.text.TextUtils import android.util.TypedValue import android.view.Menu @@ -129,7 +127,9 @@ class ConversationsAdapter( private fun dialNumber() { val conversation = getSelectedItems().firstOrNull() ?: return - activity.dialNumber(conversation.phoneNumber) { finishActMode() } + activity.dialNumber(conversation.phoneNumber) { + finishActMode() + } } private fun copyNumberToClipboard() { From 580fc7d35b9961a4d67ffba040c9c7fa3caa802e Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Mon, 18 Oct 2021 18:36:00 +0200 Subject: [PATCH 5/5] make dialNumber callback nullable for easier reading --- .../simplemobiletools/smsmessenger/extensions/Context.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index 5b4609f3..18bc4878 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -34,10 +34,10 @@ import com.simplemobiletools.smsmessenger.interfaces.MessagesDao import com.simplemobiletools.smsmessenger.models.* import com.simplemobiletools.smsmessenger.receivers.DirectReplyReceiver import com.simplemobiletools.smsmessenger.receivers.MarkAsReadReceiver +import me.leolin.shortcutbadger.ShortcutBadger import java.io.FileNotFoundException import java.util.* import kotlin.collections.ArrayList -import me.leolin.shortcutbadger.ShortcutBadger val Context.config: Config get() = Config.newInstance(applicationContext) @@ -894,13 +894,13 @@ fun Context.getFileSizeFromUri(uri: Uri): Long { } } -fun Context.dialNumber(phoneNumber: String, callback: () -> Unit = fun() {}) { +fun Context.dialNumber(phoneNumber: String, callback: (() -> Unit)? = null) { Intent(Intent.ACTION_DIAL).apply { data = Uri.fromParts("tel", phoneNumber, null) try { startActivity(this) - callback() + callback?.invoke() } catch (e: ActivityNotFoundException) { toast(R.string.no_app_found) } catch (e: Exception) {