From c8dbfb4090887ef81c0ff39e4ddf4eb1f622be73 Mon Sep 17 00:00:00 2001 From: Pavel Poley Date: Thu, 2 Jun 2022 13:01:03 +0300 Subject: [PATCH] allow displaying older messages --- .../smsmessenger/activities/ThreadActivity.kt | 12 ++++++------ .../smsmessenger/extensions/Context.kt | 6 +++--- .../smsmessenger/helpers/Constants.kt | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) 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 4bc5e631..b4e4ac65 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -79,7 +79,7 @@ class ThreadActivity : SimpleActivity() { private var lastAttachmentUri: String? = null private var loadingOlderMessages = false private var allMessagesFetched = false - private var nextMessageId = -1L + private var oldestMessageDate = -1 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -367,19 +367,19 @@ class ThreadActivity : SimpleActivity() { private fun fetchNextMessages() { if (messages.isEmpty() || allMessagesFetched || loadingOlderMessages) return - toast("fetchNextMessages") + //toast("fetchNextMessages") - val messageId = messages.first().date.toLong()*1000 /*- 1*/ - if (nextMessageId == messageId /*|| messageId < 1*/) { + val date = messages.first().date + if (oldestMessageDate == date) { allMessagesFetched = true return } - nextMessageId = messageId + oldestMessageDate = date loadingOlderMessages = true ensureBackgroundThread { - val olderMessages = getMessages(threadId, true, nextMessageId) + val olderMessages = getMessages(threadId, true, oldestMessageDate) messages.addAll(0, olderMessages) allMessagesFetched = olderMessages.size < MESSAGES_LIMIT || olderMessages.size == 0 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 d3eca1d3..6e4da2a4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -56,7 +56,7 @@ val Context.messageAttachmentsDB: MessageAttachmentsDao get() = getMessagessDB() val Context.messagesDB: MessagesDao get() = getMessagessDB().MessagesDao() -fun Context.getMessages(threadId: Long, getImageResolutions: Boolean, index: Long = -1): ArrayList { +fun Context.getMessages(threadId: Long, getImageResolutions: Boolean, dateFrom: Int = -1): ArrayList { val uri = Sms.CONTENT_URI val projection = arrayOf( Sms._ID, @@ -70,10 +70,10 @@ fun Context.getMessages(threadId: Long, getImageResolutions: Boolean, index: Lon Sms.STATUS ) - val rangeQuery = if (index == -1L) "" else "AND ${Sms.DATE} <= $index" + val rangeQuery = if (dateFrom == -1) "" else "AND ${Sms.DATE} < ${dateFrom.toLong() * 1000}" val selection = "${Sms.THREAD_ID} = ? $rangeQuery" val selectionArgs = arrayOf(threadId.toString()) - val sortOrder = "${Sms._ID} DESC LIMIT $MESSAGES_LIMIT" + val sortOrder = "${Sms.DATE} DESC LIMIT $MESSAGES_LIMIT" val blockStatus = HashMap() val blockedNumbers = getBlockedNumbers() diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt index 2e5a2646..0cdf98fc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt @@ -54,7 +54,7 @@ const val FILE_SIZE_600_KB = 614_400L const val FILE_SIZE_1_MB = 1_048_576L const val FILE_SIZE_2_MB = 2_097_152L -const val MESSAGES_LIMIT = 10 +const val MESSAGES_LIMIT = 15 fun refreshMessages() { EventBus.getDefault().post(Events.RefreshMessages())