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" /> +