Use DiffUtil with thread recyclerview
Also added a progress indicator at the top while fetching older messages
This commit is contained in:
parent
c5034a64d5
commit
d8dadd1f55
11 changed files with 207 additions and 110 deletions
|
|
@ -27,4 +27,21 @@ data class Message(
|
|||
fun isReceivedMessage() = type == Telephony.Sms.MESSAGE_TYPE_INBOX
|
||||
|
||||
fun millis() = date * 1000L
|
||||
|
||||
companion object {
|
||||
fun areItemsTheSame(old: Message, new: Message): Boolean {
|
||||
return old.id == new.id
|
||||
}
|
||||
|
||||
fun areContentsTheSame(old: Message, new: Message): Boolean {
|
||||
return old.body == new.body &&
|
||||
old.type == new.type &&
|
||||
old.threadId == new.threadId &&
|
||||
old.isMMS == new.isMMS &&
|
||||
old.attachment == new.attachment &&
|
||||
old.senderName == new.senderName &&
|
||||
old.senderPhotoUri == new.senderPhotoUri &&
|
||||
old.isScheduled == new.isScheduled
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
package com.simplemobiletools.smsmessenger.models
|
||||
|
||||
data class ThreadDateTime(val date: Int, val simID: String) : ThreadItem()
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
package com.simplemobiletools.smsmessenger.models
|
||||
|
||||
data class ThreadError(val messageId: Long, val messageText: String) : ThreadItem()
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
package com.simplemobiletools.smsmessenger.models
|
||||
|
||||
open class ThreadItem
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.simplemobiletools.smsmessenger.models
|
||||
|
||||
/**
|
||||
* Thread item representations for the main thread recyclerview. [Message] is also a [ThreadItem]
|
||||
*/
|
||||
sealed class ThreadItem {
|
||||
data class ThreadLoading(val id: Long) : ThreadItem()
|
||||
data class ThreadDateTime(val date: Int, val simID: String) : ThreadItem()
|
||||
data class ThreadError(val messageId: Long, val messageText: String) : ThreadItem()
|
||||
data class ThreadSent(val messageId: Long, val delivered: Boolean) : ThreadItem()
|
||||
data class ThreadSending(val messageId: Long) : ThreadItem()
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
package com.simplemobiletools.smsmessenger.models
|
||||
|
||||
data class ThreadSending(val messageId: Long) : ThreadItem()
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
package com.simplemobiletools.smsmessenger.models
|
||||
|
||||
// show a check after the latest message, if it is a sent one and succeeded,
|
||||
// show a double check if it is delivered
|
||||
data class ThreadSent(val messageID: Long, val delivered: Boolean) : ThreadItem()
|
||||
Loading…
Add table
Add a link
Reference in a new issue