mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-06-05 21:49:22 +02:00
Disable setHasStableIds
because we really don't have stable ids (yet)
This commit is contained in:
@ -67,7 +67,6 @@ class ThreadAdapter(
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
setupDragListener(true)
|
setupDragListener(true)
|
||||||
setHasStableIds(true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getActionMenuId() = R.menu.cab_thread
|
override fun getActionMenuId() = R.menu.cab_thread
|
||||||
@ -143,13 +142,6 @@ class ThreadAdapter(
|
|||||||
bindViewHolder(holder)
|
bindViewHolder(holder)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getItemId(position: Int): Long {
|
|
||||||
val item = getItem(position)
|
|
||||||
// hashcode is probably okay as the chances of collision here are nearly zero considering the max list size of 50 items
|
|
||||||
// future: generate a unique id for each item instead of relying on the telephony id for uniqueness
|
|
||||||
return item.hashCode().toLong()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getItemViewType(position: Int): Int {
|
override fun getItemViewType(position: Int): Int {
|
||||||
return when (val item = getItem(position)) {
|
return when (val item = getItem(position)) {
|
||||||
is ThreadLoading -> THREAD_LOADING
|
is ThreadLoading -> THREAD_LOADING
|
||||||
@ -491,11 +483,10 @@ private class ThreadItemDiffCallback : DiffUtil.ItemCallback<ThreadItem>() {
|
|||||||
override fun areContentsTheSame(oldItem: ThreadItem, newItem: ThreadItem): Boolean {
|
override fun areContentsTheSame(oldItem: ThreadItem, newItem: ThreadItem): Boolean {
|
||||||
if (oldItem::class.java != newItem::class.java) return false
|
if (oldItem::class.java != newItem::class.java) return false
|
||||||
return when (oldItem) {
|
return when (oldItem) {
|
||||||
is ThreadLoading -> false
|
is ThreadLoading, is ThreadSending -> true
|
||||||
is ThreadDateTime -> oldItem.simID == (newItem as ThreadDateTime).simID
|
is ThreadDateTime -> oldItem.simID == (newItem as ThreadDateTime).simID
|
||||||
is ThreadError -> oldItem.messageText == (newItem as ThreadError).messageText
|
is ThreadError -> oldItem.messageText == (newItem as ThreadError).messageText
|
||||||
is ThreadSent -> oldItem.delivered == (newItem as ThreadSent).delivered
|
is ThreadSent -> oldItem.delivered == (newItem as ThreadSent).delivered
|
||||||
is ThreadSending -> true
|
|
||||||
is Message -> Message.areContentsTheSame(oldItem, newItem as Message)
|
is Message -> Message.areContentsTheSame(oldItem, newItem as Message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,6 @@ data class Message(
|
|||||||
|
|
||||||
fun areContentsTheSame(old: Message, new: Message): Boolean {
|
fun areContentsTheSame(old: Message, new: Message): Boolean {
|
||||||
return old.body == new.body &&
|
return old.body == new.body &&
|
||||||
old.type == new.type &&
|
|
||||||
old.threadId == new.threadId &&
|
old.threadId == new.threadId &&
|
||||||
old.isMMS == new.isMMS &&
|
old.isMMS == new.isMMS &&
|
||||||
old.attachment == new.attachment &&
|
old.attachment == new.attachment &&
|
||||||
|
Reference in New Issue
Block a user