fix: avoid unnecessary refresh by splitting refresh events (#556)

* fix: avoid unnecessary refresh by splitting refresh events

* fix: suppress unused parameter lint error

Refs: https://github.com/FossifyOrg/Messages/issues/82
This commit is contained in:
Naveen Singh 2025-10-15 01:40:20 +05:30 committed by GitHub
parent 72eb0af8ec
commit 3303fc7c07
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 78 additions and 37 deletions

View file

@ -8,6 +8,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- Optimized loading messages in conversations - Optimized loading messages in conversations
### Fixed
- Fixed position reset when opening attachments in conversations ([#82])
## [1.4.0] - 2025-10-12 ## [1.4.0] - 2025-10-12
### Added ### Added
- Ability to save multiple attachments ([#75]) - Ability to save multiple attachments ([#75])
@ -165,6 +168,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[#334]: https://github.com/FossifyOrg/Messages/issues/334 [#334]: https://github.com/FossifyOrg/Messages/issues/334
[#349]: https://github.com/FossifyOrg/Messages/issues/349 [#349]: https://github.com/FossifyOrg/Messages/issues/349
[#359]: https://github.com/FossifyOrg/Messages/issues/359 [#359]: https://github.com/FossifyOrg/Messages/issues/359
[#82]: https://github.com/FossifyOrg/Messages/issues/82
[#456]: https://github.com/FossifyOrg/Messages/issues/456 [#456]: https://github.com/FossifyOrg/Messages/issues/456
[#461]: https://github.com/FossifyOrg/Messages/issues/461 [#461]: https://github.com/FossifyOrg/Messages/issues/461

View file

@ -4,7 +4,13 @@ import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import org.fossify.commons.dialogs.ConfirmationDialog import org.fossify.commons.dialogs.ConfirmationDialog
import org.fossify.commons.extensions.* import org.fossify.commons.extensions.areSystemAnimationsEnabled
import org.fossify.commons.extensions.beGoneIf
import org.fossify.commons.extensions.beVisibleIf
import org.fossify.commons.extensions.getProperBackgroundColor
import org.fossify.commons.extensions.getProperTextColor
import org.fossify.commons.extensions.hideKeyboard
import org.fossify.commons.extensions.viewBinding
import org.fossify.commons.helpers.NavigationIcon import org.fossify.commons.helpers.NavigationIcon
import org.fossify.commons.helpers.ensureBackgroundThread import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.messages.R import org.fossify.messages.R
@ -169,7 +175,7 @@ class ArchivedConversationsActivity : SimpleActivity() {
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
fun refreshMessages(event: Events.RefreshMessages) { fun refreshConversations(@Suppress("unused") event: Events.RefreshConversations) {
loadArchivedConversations() loadArchivedConversations()
} }
} }

View file

@ -682,7 +682,7 @@ class MainActivity : SimpleActivity() {
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
fun refreshMessages(event: Events.RefreshMessages) { fun refreshConversations(@Suppress("unused") event: Events.RefreshConversations) {
initMessenger() initMessenger()
} }

View file

@ -180,7 +180,7 @@ class RecycleBinConversationsActivity : SimpleActivity() {
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
fun refreshMessages(event: Events.RefreshMessages) { fun refreshConversations(@Suppress("unused") event: Events.RefreshConversations) {
loadRecycleBinConversations() loadRecycleBinConversations()
} }
} }

View file

@ -11,7 +11,6 @@ import org.fossify.commons.dialogs.RadioGroupDialog
import org.fossify.commons.dialogs.SecurityDialog import org.fossify.commons.dialogs.SecurityDialog
import org.fossify.commons.extensions.addLockedLabelIfNeeded import org.fossify.commons.extensions.addLockedLabelIfNeeded
import org.fossify.commons.extensions.beGone import org.fossify.commons.extensions.beGone
import org.fossify.commons.extensions.beGoneIf
import org.fossify.commons.extensions.beVisible import org.fossify.commons.extensions.beVisible
import org.fossify.commons.extensions.beVisibleIf import org.fossify.commons.extensions.beVisibleIf
import org.fossify.commons.extensions.getBlockedNumbers import org.fossify.commons.extensions.getBlockedNumbers
@ -49,7 +48,7 @@ import org.fossify.messages.helpers.LOCK_SCREEN_NOTHING
import org.fossify.messages.helpers.LOCK_SCREEN_SENDER import org.fossify.messages.helpers.LOCK_SCREEN_SENDER
import org.fossify.messages.helpers.LOCK_SCREEN_SENDER_MESSAGE import org.fossify.messages.helpers.LOCK_SCREEN_SENDER_MESSAGE
import org.fossify.messages.helpers.MessagesImporter import org.fossify.messages.helpers.MessagesImporter
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshConversations
import java.util.Locale import java.util.Locale
import kotlin.system.exitProcess import kotlin.system.exitProcess
@ -133,7 +132,7 @@ class SettingsActivity : SimpleActivity() {
if ( if (
blockedNumbersAtPause != -1 && blockedNumbersAtPause != getBlockedNumbers().hashCode() blockedNumbersAtPause != -1 && blockedNumbersAtPause != getBlockedNumbers().hashCode()
) { ) {
refreshMessages() refreshConversations()
} }
arrayOf( arrayOf(
@ -238,7 +237,7 @@ class SettingsActivity : SimpleActivity() {
private fun setupChangeDateTimeFormat() = binding.apply { private fun setupChangeDateTimeFormat() = binding.apply {
settingsChangeDateTimeFormatHolder.setOnClickListener { settingsChangeDateTimeFormatHolder.setOnClickListener {
ChangeDateTimeFormatDialog(this@SettingsActivity) { ChangeDateTimeFormatDialog(this@SettingsActivity) {
refreshMessages() refreshConversations()
} }
} }
} }

View file

@ -40,6 +40,7 @@ import androidx.annotation.StringRes
import androidx.appcompat.content.res.AppCompatResources import androidx.appcompat.content.res.AppCompatResources
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.res.ResourcesCompat import androidx.core.content.res.ResourcesCompat
import androidx.core.net.toUri
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsAnimationCompat import androidx.core.view.WindowInsetsAnimationCompat
@ -47,6 +48,7 @@ import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updateLayoutParams import androidx.core.view.updateLayoutParams
import androidx.documentfile.provider.DocumentFile import androidx.documentfile.provider.DocumentFile
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import org.fossify.commons.dialogs.ConfirmationDialog import org.fossify.commons.dialogs.ConfirmationDialog
@ -122,6 +124,7 @@ import org.fossify.messages.extensions.deleteScheduledMessage
import org.fossify.messages.extensions.deleteSmsDraft import org.fossify.messages.extensions.deleteSmsDraft
import org.fossify.messages.extensions.dialNumber import org.fossify.messages.extensions.dialNumber
import org.fossify.messages.extensions.emptyMessagesRecycleBinForConversation import org.fossify.messages.extensions.emptyMessagesRecycleBinForConversation
import org.fossify.messages.extensions.filterNotInByKey
import org.fossify.messages.extensions.getAddresses import org.fossify.messages.extensions.getAddresses
import org.fossify.messages.extensions.getDefaultKeyboardHeight import org.fossify.messages.extensions.getDefaultKeyboardHeight
import org.fossify.messages.extensions.getFileSizeFromUri import org.fossify.messages.extensions.getFileSizeFromUri
@ -172,6 +175,7 @@ import org.fossify.messages.helpers.THREAD_NUMBER
import org.fossify.messages.helpers.THREAD_TEXT import org.fossify.messages.helpers.THREAD_TEXT
import org.fossify.messages.helpers.THREAD_TITLE import org.fossify.messages.helpers.THREAD_TITLE
import org.fossify.messages.helpers.generateRandomId import org.fossify.messages.helpers.generateRandomId
import org.fossify.messages.helpers.refreshConversations
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshMessages
import org.fossify.messages.messaging.cancelScheduleSendPendingIntent import org.fossify.messages.messaging.cancelScheduleSendPendingIntent
import org.fossify.messages.messaging.isLongMmsMessage import org.fossify.messages.messaging.isLongMmsMessage
@ -195,9 +199,6 @@ import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode import org.greenrobot.eventbus.ThreadMode
import org.joda.time.DateTime import org.joda.time.DateTime
import java.io.File import java.io.File
import androidx.core.net.toUri
import androidx.recyclerview.widget.RecyclerView
import org.fossify.messages.extensions.filterNotInByKey
class ThreadActivity : SimpleActivity() { class ThreadActivity : SimpleActivity() {
private var threadId = 0L private var threadId = 0L
@ -312,7 +313,7 @@ class ThreadActivity : SimpleActivity() {
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
saveDraftMessage() saveDraftMessage()
bus?.post(Events.RefreshMessages()) bus?.post(Events.RefreshConversations())
isActivityVisible = false isActivityVisible = false
} }
@ -1069,7 +1070,7 @@ class ThreadActivity : SimpleActivity() {
numbers.forEach { numbers.forEach {
addBlockedNumber(it) addBlockedNumber(it)
} }
refreshMessages() refreshConversations()
finish() finish()
} }
} }
@ -1085,7 +1086,7 @@ class ThreadActivity : SimpleActivity() {
deleteConversation(threadId) deleteConversation(threadId)
} }
runOnUiThread { runOnUiThread {
refreshMessages() refreshConversations()
finish() finish()
} }
} }
@ -1097,7 +1098,7 @@ class ThreadActivity : SimpleActivity() {
ensureBackgroundThread { ensureBackgroundThread {
restoreAllMessagesFromRecycleBinForConversation(threadId) restoreAllMessagesFromRecycleBinForConversation(threadId)
runOnUiThread { runOnUiThread {
refreshMessages() refreshConversations()
finish() finish()
} }
} }
@ -1108,7 +1109,7 @@ class ThreadActivity : SimpleActivity() {
ensureBackgroundThread { ensureBackgroundThread {
updateConversationArchivedStatus(threadId, true) updateConversationArchivedStatus(threadId, true)
runOnUiThread { runOnUiThread {
refreshMessages() refreshConversations()
finish() finish()
} }
} }
@ -1118,7 +1119,7 @@ class ThreadActivity : SimpleActivity() {
ensureBackgroundThread { ensureBackgroundThread {
updateConversationArchivedStatus(threadId, false) updateConversationArchivedStatus(threadId, false)
runOnUiThread { runOnUiThread {
refreshMessages() refreshConversations()
finish() finish()
} }
} }
@ -1188,7 +1189,7 @@ class ThreadActivity : SimpleActivity() {
markThreadMessagesUnread(threadId) markThreadMessagesUnread(threadId)
runOnUiThread { runOnUiThread {
finish() finish()
bus?.post(Events.RefreshMessages()) bus?.post(Events.RefreshConversations())
} }
} }
} }
@ -1273,7 +1274,7 @@ class ThreadActivity : SimpleActivity() {
} }
if (hadUnreadItems) { if (hadUnreadItems) {
bus?.post(Events.RefreshMessages()) bus?.post(Events.RefreshConversations())
} }
return items return items
@ -1581,6 +1582,7 @@ class ThreadActivity : SimpleActivity() {
messagesDB.insertOrUpdate(message) messagesDB.insertOrUpdate(message)
if (shouldUnarchive()) { if (shouldUnarchive()) {
updateConversationArchivedStatus(message.threadId, false) updateConversationArchivedStatus(message.threadId, false)
refreshConversations()
} }
} }

View file

@ -9,7 +9,7 @@ import org.fossify.messages.R
import org.fossify.messages.activities.SimpleActivity import org.fossify.messages.activities.SimpleActivity
import org.fossify.messages.extensions.deleteConversation import org.fossify.messages.extensions.deleteConversation
import org.fossify.messages.extensions.updateConversationArchivedStatus import org.fossify.messages.extensions.updateConversationArchivedStatus
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshConversations
import org.fossify.messages.models.Conversation import org.fossify.messages.models.Conversation
class ArchivedConversationsAdapter( class ArchivedConversationsAdapter(
@ -83,12 +83,12 @@ class ArchivedConversationsAdapter(
activity.runOnUiThread { activity.runOnUiThread {
if (newList.none { selectedKeys.contains(it.hashCode()) }) { if (newList.none { selectedKeys.contains(it.hashCode()) }) {
refreshMessages() refreshConversations()
finishActMode() finishActMode()
} else { } else {
submitList(newList) submitList(newList)
if (newList.isEmpty()) { if (newList.isEmpty()) {
refreshMessages() refreshConversations()
} }
} }
} }

View file

@ -25,7 +25,6 @@ import org.fossify.messages.extensions.markThreadMessagesRead
import org.fossify.messages.extensions.markThreadMessagesUnread import org.fossify.messages.extensions.markThreadMessagesUnread
import org.fossify.messages.extensions.renameConversation import org.fossify.messages.extensions.renameConversation
import org.fossify.messages.extensions.updateConversationArchivedStatus import org.fossify.messages.extensions.updateConversationArchivedStatus
import org.fossify.messages.helpers.refreshMessages
import org.fossify.messages.messaging.isShortCodeWithLetters import org.fossify.messages.messaging.isShortCodeWithLetters
import org.fossify.messages.models.Conversation import org.fossify.messages.models.Conversation
@ -189,12 +188,12 @@ class ConversationsAdapter(
activity.runOnUiThread { activity.runOnUiThread {
if (newList.none { selectedKeys.contains(it.hashCode()) }) { if (newList.none { selectedKeys.contains(it.hashCode()) }) {
refreshMessages() refreshConversations()
finishActMode() finishActMode()
} else { } else {
submitList(newList) submitList(newList)
if (newList.isEmpty()) { if (newList.isEmpty()) {
refreshMessages() refreshConversations()
} }
} }
} }
@ -220,12 +219,12 @@ class ConversationsAdapter(
activity.runOnUiThread { activity.runOnUiThread {
if (newList.none { selectedKeys.contains(it.hashCode()) }) { if (newList.none { selectedKeys.contains(it.hashCode()) }) {
refreshMessages() refreshConversations()
finishActMode() finishActMode()
} else { } else {
submitList(newList) submitList(newList)
if (newList.isEmpty()) { if (newList.isEmpty()) {
refreshMessages() refreshConversations()
} }
} }
} }
@ -317,7 +316,7 @@ class ConversationsAdapter(
private fun refreshConversations() { private fun refreshConversations() {
activity.runOnUiThread { activity.runOnUiThread {
refreshMessages() refreshConversations()
finishActMode() finishActMode()
} }
} }

View file

@ -9,7 +9,7 @@ import org.fossify.messages.R
import org.fossify.messages.activities.SimpleActivity import org.fossify.messages.activities.SimpleActivity
import org.fossify.messages.extensions.deleteConversation import org.fossify.messages.extensions.deleteConversation
import org.fossify.messages.extensions.restoreAllMessagesFromRecycleBinForConversation import org.fossify.messages.extensions.restoreAllMessagesFromRecycleBinForConversation
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshConversations
import org.fossify.messages.models.Conversation import org.fossify.messages.models.Conversation
class RecycleBinConversationsAdapter( class RecycleBinConversationsAdapter(
@ -95,12 +95,12 @@ class RecycleBinConversationsAdapter(
activity.runOnUiThread { activity.runOnUiThread {
if (newList.none { selectedKeys.contains(it.hashCode()) }) { if (newList.none { selectedKeys.contains(it.hashCode()) }) {
refreshMessages() refreshConversations()
finishActMode() finishActMode()
} else { } else {
submitList(newList) submitList(newList)
if (newList.isEmpty()) { if (newList.isEmpty()) {
refreshMessages() refreshConversations()
} }
} }
} }

View file

@ -104,6 +104,10 @@ fun refreshMessages() {
EventBus.getDefault().post(Events.RefreshMessages()) EventBus.getDefault().post(Events.RefreshMessages())
} }
fun refreshConversations() {
EventBus.getDefault().post(Events.RefreshConversations())
}
/** Not to be used with real messages persisted in the telephony db. This is for internal use only (e.g. scheduled messages, notification ids etc). */ /** Not to be used with real messages persisted in the telephony db. This is for internal use only (e.g. scheduled messages, notification ids etc). */
fun generateRandomId(length: Int = 9): Long { fun generateRandomId(length: Int = 9): Long {
val millis = DateTime.now(DateTimeZone.UTC).millis val millis = DateTime.now(DateTimeZone.UTC).millis

View file

@ -99,7 +99,7 @@ class MessagesImporter(private val activity: SimpleActivity) {
} }
messageWriter.fixConversationDates() messageWriter.fixConversationDates()
refreshMessages() refreshConversations()
} catch (e: Exception) { } catch (e: Exception) {
activity.showErrorToast(e) activity.showErrorToast(e)
} }
@ -153,7 +153,7 @@ class MessagesImporter(private val activity: SimpleActivity) {
messagesFailed++ messagesFailed++
} }
} }
refreshMessages() refreshConversations()
} }
when { when {
messagesFailed > 0 && messagesImported > 0 -> { messagesFailed > 0 && messagesImported > 0 -> {

View file

@ -2,4 +2,5 @@ package org.fossify.messages.models
class Events { class Events {
class RefreshMessages class RefreshMessages
class RefreshConversations
} }

View file

@ -10,6 +10,7 @@ import org.fossify.messages.extensions.updateLastConversationMessage
import org.fossify.messages.helpers.IS_MMS import org.fossify.messages.helpers.IS_MMS
import org.fossify.messages.helpers.MESSAGE_ID import org.fossify.messages.helpers.MESSAGE_ID
import org.fossify.messages.helpers.THREAD_ID import org.fossify.messages.helpers.THREAD_ID
import org.fossify.messages.helpers.refreshConversations
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshMessages
class DeleteSmsReceiver : BroadcastReceiver() { class DeleteSmsReceiver : BroadcastReceiver() {
@ -23,6 +24,7 @@ class DeleteSmsReceiver : BroadcastReceiver() {
context.deleteMessage(messageId, isMms) context.deleteMessage(messageId, isMms)
context.updateLastConversationMessage(threadId) context.updateLastConversationMessage(threadId)
refreshMessages() refreshMessages()
refreshConversations()
} }
} }
} }

View file

@ -9,7 +9,7 @@ import org.fossify.messages.extensions.conversationsDB
import org.fossify.messages.extensions.markThreadMessagesRead import org.fossify.messages.extensions.markThreadMessagesRead
import org.fossify.messages.helpers.MARK_AS_READ import org.fossify.messages.helpers.MARK_AS_READ
import org.fossify.messages.helpers.THREAD_ID import org.fossify.messages.helpers.THREAD_ID
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshConversations
class MarkAsReadReceiver : BroadcastReceiver() { class MarkAsReadReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
@ -20,7 +20,7 @@ class MarkAsReadReceiver : BroadcastReceiver() {
ensureBackgroundThread { ensureBackgroundThread {
context.markThreadMessagesRead(threadId) context.markThreadMessagesRead(threadId)
context.conversationsDB.markRead(threadId) context.conversationsDB.markRead(threadId)
refreshMessages() refreshConversations()
} }
} }
} }

View file

@ -21,6 +21,7 @@ import org.fossify.messages.extensions.shouldUnarchive
import org.fossify.messages.extensions.showReceivedMessageNotification import org.fossify.messages.extensions.showReceivedMessageNotification
import org.fossify.messages.extensions.updateConversationArchivedStatus import org.fossify.messages.extensions.updateConversationArchivedStatus
import org.fossify.messages.helpers.ReceiverUtils.isMessageFilteredOut import org.fossify.messages.helpers.ReceiverUtils.isMessageFilteredOut
import org.fossify.messages.helpers.refreshConversations
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshMessages
import org.fossify.messages.models.Message import org.fossify.messages.models.Message
@ -93,6 +94,7 @@ class MmsReceiver : MmsReceivedReceiver() {
context.updateConversationArchivedStatus(mms.threadId, false) context.updateConversationArchivedStatus(mms.threadId, false)
} }
refreshMessages() refreshMessages()
refreshConversations()
} }
} }
} }

View file

@ -12,6 +12,7 @@ import org.fossify.commons.extensions.showErrorToast
import org.fossify.commons.extensions.toast import org.fossify.commons.extensions.toast
import org.fossify.messages.R import org.fossify.messages.R
import org.fossify.messages.extensions.deleteMessage import org.fossify.messages.extensions.deleteMessage
import org.fossify.messages.helpers.refreshConversations
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshMessages
import java.io.File import java.io.File
@ -52,6 +53,7 @@ class MmsSentReceiver : SendStatusReceiver() {
override fun updateAppDatabase(context: Context, intent: Intent, receiverResultCode: Int) { override fun updateAppDatabase(context: Context, intent: Intent, receiverResultCode: Int) {
refreshMessages() refreshMessages()
refreshConversations()
} }
companion object { companion object {

View file

@ -14,6 +14,7 @@ import org.fossify.messages.extensions.getAddresses
import org.fossify.messages.extensions.messagesDB import org.fossify.messages.extensions.messagesDB
import org.fossify.messages.helpers.SCHEDULED_MESSAGE_ID import org.fossify.messages.helpers.SCHEDULED_MESSAGE_ID
import org.fossify.messages.helpers.THREAD_ID import org.fossify.messages.helpers.THREAD_ID
import org.fossify.messages.helpers.refreshConversations
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshMessages
import org.fossify.messages.messaging.sendMessageCompat import org.fossify.messages.messaging.sendMessageCompat
@ -52,6 +53,7 @@ class ScheduledMessageReceiver : BroadcastReceiver() {
context.deleteScheduledMessage(messageId) context.deleteScheduledMessage(messageId)
context.conversationsDB.deleteThreadId(messageId) context.conversationsDB.deleteThreadId(messageId)
refreshMessages() refreshMessages()
refreshConversations()
} catch (e: Exception) { } catch (e: Exception) {
context.showErrorToast(e) context.showErrorToast(e)
} catch (e: Error) { } catch (e: Error) {

View file

@ -13,8 +13,18 @@ import org.fossify.commons.helpers.SimpleContactsHelper
import org.fossify.commons.helpers.ensureBackgroundThread import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.commons.models.PhoneNumber import org.fossify.commons.models.PhoneNumber
import org.fossify.commons.models.SimpleContact import org.fossify.commons.models.SimpleContact
import org.fossify.messages.extensions.* import org.fossify.messages.extensions.getConversations
import org.fossify.messages.extensions.getNameFromAddress
import org.fossify.messages.extensions.getNotificationBitmap
import org.fossify.messages.extensions.getThreadId
import org.fossify.messages.extensions.insertNewSMS
import org.fossify.messages.extensions.insertOrUpdateConversation
import org.fossify.messages.extensions.messagesDB
import org.fossify.messages.extensions.shouldUnarchive
import org.fossify.messages.extensions.showReceivedMessageNotification
import org.fossify.messages.extensions.updateConversationArchivedStatus
import org.fossify.messages.helpers.ReceiverUtils.isMessageFilteredOut import org.fossify.messages.helpers.ReceiverUtils.isMessageFilteredOut
import org.fossify.messages.helpers.refreshConversations
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshMessages
import org.fossify.messages.models.Message import org.fossify.messages.models.Message
@ -112,6 +122,7 @@ class SmsReceiver : BroadcastReceiver() {
context.updateConversationArchivedStatus(threadId, false) context.updateConversationArchivedStatus(threadId, false)
} }
refreshMessages() refreshMessages()
refreshConversations()
context.showReceivedMessageNotification(newMessageId, address, body, threadId, bitmap) context.showReceivedMessageNotification(newMessageId, address, body, threadId, bitmap)
} }
} }

View file

@ -11,7 +11,13 @@ import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ProcessLifecycleOwner import androidx.lifecycle.ProcessLifecycleOwner
import org.fossify.commons.extensions.getMyContactsCursor import org.fossify.commons.extensions.getMyContactsCursor
import org.fossify.commons.helpers.ensureBackgroundThread import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.messages.extensions.* import org.fossify.messages.extensions.getMessageRecipientAddress
import org.fossify.messages.extensions.getNameFromAddress
import org.fossify.messages.extensions.getThreadId
import org.fossify.messages.extensions.messagesDB
import org.fossify.messages.extensions.messagingUtils
import org.fossify.messages.extensions.notificationHelper
import org.fossify.messages.helpers.refreshConversations
import org.fossify.messages.helpers.refreshMessages import org.fossify.messages.helpers.refreshMessages
/** Handles updating databases and states when a SMS message is sent. */ /** Handles updating databases and states when a SMS message is sent. */
@ -48,6 +54,7 @@ class SmsStatusSentReceiver : SendStatusReceiver() {
context.messagesDB.updateType(messageId, type) context.messagesDB.updateType(messageId, type)
refreshMessages() refreshMessages()
refreshConversations()
} }
} }
} }