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 f350e545..c8a686e6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -543,7 +543,7 @@ class ThreadActivity : SimpleActivity() { var hadUnreadItems = false val cnt = messages.size for (i in 0 until cnt) { - val message = messages[i] + val message = messages.getOrNull(i) ?: continue // do not show the date/time above every message, only if the difference between the 2 messages is at least MIN_DATE_TIME_DIFF_SECS if (message.date - prevDateTime > MIN_DATE_TIME_DIFF_SECS) { val simCardID = subscriptionIdToSimId[message.subscriptionId] ?: "?" 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 ed8f66ae..07f8b70b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -1,5 +1,6 @@ package com.simplemobiletools.smsmessenger.adapters +import android.content.ActivityNotFoundException import android.content.Intent import android.graphics.Typeface import android.net.Uri @@ -26,8 +27,10 @@ import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.models.Conversation import kotlinx.android.synthetic.main.item_conversation.view.* -class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayList, recyclerView: MyRecyclerView, fastScroller: FastScroller, - itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { +class ConversationsAdapter( + activity: SimpleActivity, var conversations: ArrayList, recyclerView: MyRecyclerView, fastScroller: FastScroller, + itemClick: (Any) -> Unit +) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { private var fontSize = activity.getTextSize() init { @@ -120,11 +123,13 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis Intent(Intent.ACTION_DIAL).apply { data = Uri.fromParts("tel", conversation.phoneNumber, null) - if (resolveActivity(activity.packageManager) != null) { + try { activity.startActivity(this) finishActMode() - } else { + } catch (e: ActivityNotFoundException) { activity.toast(R.string.no_app_found) + } catch (e: Exception) { + activity.showErrorToast(e) } } } @@ -185,12 +190,7 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis action = Intent.ACTION_INSERT_OR_EDIT type = "vnd.android.cursor.item/contact" putExtra(KEY_PHONE, conversation.phoneNumber) - - if (resolveActivity(activity.packageManager) != null) { - activity.startActivity(this) - } else { - activity.toast(R.string.no_app_found) - } + activity.launchActivityIntent(this) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt index 5590a1d0..18f513e2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -1,6 +1,7 @@ package com.simplemobiletools.smsmessenger.adapters import android.annotation.SuppressLint +import android.content.ActivityNotFoundException import android.content.Intent import android.graphics.drawable.Drawable import android.net.Uri @@ -315,15 +316,17 @@ class ThreadAdapter( setDataAndType(uri, mimetype) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - if (resolveActivity(activity.packageManager) != null) { + try { activity.startActivity(this) - } else { + } catch (e: ActivityNotFoundException) { val newMimetype = filename.getMimeType() if (newMimetype.isNotEmpty() && mimetype != newMimetype) { launchViewIntent(uri, newMimetype, filename) } else { activity.toast(R.string.no_app_found) } + } catch (e: Exception) { + activity.showErrorToast(e) } } }