From 2e5a18a02910e3b03693191b5fe215f187b2b9a9 Mon Sep 17 00:00:00 2001 From: shenzhigang Date: Thu, 24 Nov 2022 21:50:51 +0800 Subject: [PATCH 1/2] Fix Mms duplication on scroll to top --- .../smsmessenger/extensions/Context.kt | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) 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 6458fd41..cafb4dcd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -122,7 +122,7 @@ fun Context.getMessages( messages.add(message) } - messages.addAll(getMMS(threadId, getImageResolutions, sortOrder)) + messages.addAll(getMMS(threadId, getImageResolutions, sortOrder, dateFrom)) if (includeScheduledMessages) { try { @@ -143,7 +143,7 @@ fun Context.getMessages( } // as soon as a message contains multiple recipients it counts as an MMS instead of SMS -fun Context.getMMS(threadId: Long? = null, getImageResolutions: Boolean = false, sortOrder: String? = null): ArrayList { +fun Context.getMMS(threadId: Long? = null, getImageResolutions: Boolean = false, sortOrder: String? = null, dateFrom: Int = -1): ArrayList { val uri = Mms.CONTENT_URI val projection = arrayOf( Mms._ID, @@ -155,16 +155,17 @@ fun Context.getMMS(threadId: Long? = null, getImageResolutions: Boolean = false, Mms.STATUS ) - val selection = if (threadId == null) { - null - } else { - "${Mms.THREAD_ID} = ?" - } + var selection:String? = null + var selectionArgs:Array? = null - val selectionArgs = if (threadId == null) { - null - } else { - arrayOf(threadId.toString()) + if (threadId == null && dateFrom != -1) { + selection = "${Sms.DATE} < ${dateFrom.toLong()}" //Should not multiply 1000 here, because date in mms's database is different from sms's. + } else if(threadId != null && dateFrom == -1){ + selection = "${Sms.THREAD_ID} = ?" + selectionArgs = arrayOf(threadId.toString()) + } else if(threadId != null && dateFrom != -1){ + selection = "${Sms.THREAD_ID} = ? AND ${Sms.DATE} < ${dateFrom.toLong()}" + selectionArgs = arrayOf(threadId.toString()) } val messages = ArrayList() From 9d90ec13e11a9225e9227532caaf3a0e41946f78 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Thu, 24 Nov 2022 22:46:26 +0100 Subject: [PATCH 2/2] formatting some code --- .../simplemobiletools/smsmessenger/extensions/Context.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 cafb4dcd..57c39af8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -155,15 +155,15 @@ fun Context.getMMS(threadId: Long? = null, getImageResolutions: Boolean = false, Mms.STATUS ) - var selection:String? = null - var selectionArgs:Array? = null + var selection: String? = null + var selectionArgs: Array? = null if (threadId == null && dateFrom != -1) { selection = "${Sms.DATE} < ${dateFrom.toLong()}" //Should not multiply 1000 here, because date in mms's database is different from sms's. - } else if(threadId != null && dateFrom == -1){ + } else if (threadId != null && dateFrom == -1) { selection = "${Sms.THREAD_ID} = ?" selectionArgs = arrayOf(threadId.toString()) - } else if(threadId != null && dateFrom != -1){ + } else if (threadId != null && dateFrom != -1) { selection = "${Sms.THREAD_ID} = ? AND ${Sms.DATE} < ${dateFrom.toLong()}" selectionArgs = arrayOf(threadId.toString()) }