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..2d58515b 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt
@@ -143,6 +143,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 +158,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 +490,11 @@ class ThreadActivity : SimpleActivity() {
}
}
+ private fun dialNumber() {
+ val phoneNumber = participants.first().phoneNumbers.first()
+ dialNumber(phoneNumber)
+ }
+
private fun managePeople() {
if (thread_add_contacts.isVisible()) {
hideKeyboard()
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..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,17 +127,8 @@ 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()
}
}
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..18bc4878 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
@@ -37,11 +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 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)? = null) {
+ Intent(Intent.ACTION_DIAL).apply {
+ data = Uri.fromParts("tel", phoneNumber, null)
+
+ try {
+ startActivity(this)
+ callback?.invoke()
+ } catch (e: ActivityNotFoundException) {
+ toast(R.string.no_app_found)
+ } catch (e: Exception) {
+ showErrorToast(e)
+ }
+ }
+}
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" />
+