From d1fe3531e164da3803926afd8776d5fd39d919ec Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 3 Nov 2020 19:39:59 +0100 Subject: [PATCH] adding some crashfixes --- .../smsmessenger/activities/MainActivity.kt | 12 ++++++++++-- .../activities/NewConversationActivity.kt | 11 +++++++---- .../smsmessenger/activities/ThreadActivity.kt | 2 +- .../smsmessenger/adapters/ConversationsAdapter.kt | 6 +++++- .../smsmessenger/extensions/Context.kt | 6 +++++- 5 files changed, 28 insertions(+), 9 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt index 61c47ca8..3e57dd0e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt @@ -138,7 +138,10 @@ class MainActivity : SimpleActivity() { handlePermission(PERMISSION_READ_CONTACTS) { initMessenger() bus = EventBus.getDefault() - bus!!.register(this) + try { + bus!!.register(this) + } catch (e: Exception) { + } } } else { finish() @@ -165,7 +168,12 @@ class MainActivity : SimpleActivity() { private fun getCachedConversations() { ensureBackgroundThread { - val conversations = conversationsDB.getAll().sortedByDescending { it.date }.toMutableList() as ArrayList + val conversations = try { + conversationsDB.getAll().sortedByDescending { it.date }.toMutableList() as ArrayList + } catch (e: Exception) { + ArrayList() + } + updateUnreadCountBadge(conversations) runOnUiThread { setupConversations(conversations) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt index efb1eb16..68b9c411 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt @@ -161,10 +161,13 @@ class NewConversationActivity : SimpleActivity() { layoutInflater.inflate(R.layout.item_suggested_contact, null).apply { suggested_contact_name.text = contact.name suggested_contact_name.setTextColor(baseConfig.textColor) - SimpleContactsHelper(this@NewConversationActivity).loadContactImage(contact.photoUri, suggested_contact_image, contact.name) - suggestions_holder.addView(this) - setOnClickListener { - launchThreadActivity(contact.phoneNumbers.first(), contact.name) + + if (!isDestroyed) { + SimpleContactsHelper(this@NewConversationActivity).loadContactImage(contact.photoUri, suggested_contact_image, contact.name) + suggestions_holder.addView(this) + setOnClickListener { + launchThreadActivity(contact.phoneNumbers.first(), contact.name) + } } } } 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 4aea1606..6dc53da3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -314,7 +314,7 @@ class ThreadActivity : SimpleActivity() { val availableSIMs = SubscriptionManager.from(this).activeSubscriptionInfoList ?: return if (availableSIMs.size > 1) { availableSIMs.forEachIndexed { index, subscriptionInfo -> - var label = subscriptionInfo.displayName.toString() + var label = subscriptionInfo.displayName?.toString() ?: "" if (subscriptionInfo.number?.isNotEmpty() == true) { label += " (${subscriptionInfo.number})" } 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 a1d0a118..860d6d85 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -135,7 +135,11 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis activity.deleteConversation(it.thread_id) activity.notificationManager.cancel(it.thread_id) } - conversations.removeAll(conversationsToRemove) + + try { + conversations.removeAll(conversationsToRemove) + } catch (ignored: Exception) { + } activity.runOnUiThread { if (conversationsToRemove.isEmpty()) { 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 9416102e..d9590a91 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -475,7 +475,11 @@ fun Context.deleteConversation(threadId: Int) { var uri = Sms.CONTENT_URI val selection = "${Sms.THREAD_ID} = ?" val selectionArgs = arrayOf(threadId.toString()) - contentResolver.delete(uri, selection, selectionArgs) + try { + contentResolver.delete(uri, selection, selectionArgs) + } catch (e: Exception) { + showErrorToast(e) + } uri = Mms.CONTENT_URI contentResolver.delete(uri, selection, selectionArgs)