mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-02-16 19:50:40 +01:00
avoid fetching conversation drafts during scrolling
This commit is contained in:
parent
83eb9a886d
commit
bb59c84b77
@ -56,7 +56,7 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.github.SimpleMobileTools:Simple-Commons:3c6e3cd0fd'
|
implementation 'com.github.SimpleMobileTools:Simple-Commons:87b6e92b97'
|
||||||
implementation 'org.greenrobot:eventbus:3.2.0'
|
implementation 'org.greenrobot:eventbus:3.2.0'
|
||||||
implementation 'com.klinkerapps:android-smsmms:5.2.6'
|
implementation 'com.klinkerapps:android-smsmms:5.2.6'
|
||||||
implementation 'com.github.tibbi:IndicatorFastScroll:c3de1d040a'
|
implementation 'com.github.tibbi:IndicatorFastScroll:c3de1d040a'
|
||||||
|
@ -92,6 +92,7 @@ class MainActivity : SimpleActivity() {
|
|||||||
(conversations_list.adapter as? ConversationsAdapter)?.updateFontSize()
|
(conversations_list.adapter as? ConversationsAdapter)?.updateFontSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(conversations_list.adapter as? ConversationsAdapter)?.updateDrafts()
|
||||||
updateTextColors(main_coordinator)
|
updateTextColors(main_coordinator)
|
||||||
no_conversations_placeholder_2.setTextColor(getAdjustedPrimaryColor())
|
no_conversations_placeholder_2.setTextColor(getAdjustedPrimaryColor())
|
||||||
no_conversations_placeholder_2.underlineText()
|
no_conversations_placeholder_2.underlineText()
|
||||||
|
@ -30,9 +30,11 @@ class ConversationsAdapter(
|
|||||||
itemClick: (Any) -> Unit
|
itemClick: (Any) -> Unit
|
||||||
) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
|
) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
|
||||||
private var fontSize = activity.getTextSize()
|
private var fontSize = activity.getTextSize()
|
||||||
|
private var drafts = HashMap<Long, String?>()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
setupDragListener(true)
|
setupDragListener(true)
|
||||||
|
fetchDrafts(drafts)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getActionMenuId() = R.menu.cab_conversations
|
override fun getActionMenuId() = R.menu.cab_conversations
|
||||||
@ -94,6 +96,13 @@ class ConversationsAdapter(
|
|||||||
|
|
||||||
override fun getItemCount() = conversations.size
|
override fun getItemCount() = conversations.size
|
||||||
|
|
||||||
|
override fun onViewRecycled(holder: ViewHolder) {
|
||||||
|
super.onViewRecycled(holder)
|
||||||
|
if (!activity.isDestroyed && !activity.isFinishing) {
|
||||||
|
Glide.with(activity).clear(holder.itemView.conversation_image)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun askConfirmBlock() {
|
private fun askConfirmBlock() {
|
||||||
val numbers = getSelectedItems().distinctBy { it.phoneNumber }.map { it.phoneNumber }
|
val numbers = getSelectedItems().distinctBy { it.phoneNumber }.map { it.phoneNumber }
|
||||||
val numbersString = TextUtils.join(", ", numbers)
|
val numbersString = TextUtils.join(", ", numbers)
|
||||||
@ -255,10 +264,13 @@ class ConversationsAdapter(
|
|||||||
menu.findItem(R.id.cab_unpin_conversation).isVisible = selectedConversations.any { pinnedConversations.contains(it.threadId.toString()) }
|
menu.findItem(R.id.cab_unpin_conversation).isVisible = selectedConversations.any { pinnedConversations.contains(it.threadId.toString()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewRecycled(holder: ViewHolder) {
|
private fun fetchDrafts(drafts: HashMap<Long, String?>) {
|
||||||
super.onViewRecycled(holder)
|
drafts.clear()
|
||||||
if (!activity.isDestroyed && !activity.isFinishing) {
|
conversations.forEach { conversation ->
|
||||||
Glide.with(activity).clear(holder.itemView.conversation_image)
|
val draft = activity.getSmsDraft(conversation.threadId)
|
||||||
|
if (draft != null) {
|
||||||
|
drafts[conversation.threadId] = draft
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,9 +289,18 @@ class ConversationsAdapter(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun updateDrafts() {
|
||||||
|
val newDrafts = HashMap<Long, String?>()
|
||||||
|
fetchDrafts(newDrafts)
|
||||||
|
if (drafts.hashCode() != newDrafts.hashCode()) {
|
||||||
|
drafts = newDrafts
|
||||||
|
notifyDataSetChanged()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupView(view: View, conversation: Conversation) {
|
private fun setupView(view: View, conversation: Conversation) {
|
||||||
view.apply {
|
view.apply {
|
||||||
val smsDraft = context.getSmsDraft(conversation.threadId)
|
val smsDraft = drafts[conversation.threadId]
|
||||||
draft_indicator.beVisibleIf(smsDraft != null)
|
draft_indicator.beVisibleIf(smsDraft != null)
|
||||||
draft_indicator.setTextColor(adjustedPrimaryColor)
|
draft_indicator.setTextColor(adjustedPrimaryColor)
|
||||||
|
|
||||||
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
|||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
|
||||||
|
Loading…
x
Reference in New Issue
Block a user