Merge pull request #566 from Naveen3Singh/fix_progress_logic

Hide progress bar after loading conversations from telephony
This commit is contained in:
Tibor Kaputa
2023-02-01 08:36:03 +01:00
committed by GitHub

View File

@@ -258,7 +258,7 @@ class MainActivity : SimpleActivity() {
updateUnreadCountBadge(conversations) updateUnreadCountBadge(conversations)
runOnUiThread { runOnUiThread {
setupConversations(conversations) setupConversations(conversations, cached = true)
getNewConversations(conversations) getNewConversations(conversations)
} }
conversations.forEach { conversations.forEach {
@@ -349,33 +349,25 @@ class MainActivity : SimpleActivity() {
return currAdapter as ConversationsAdapter return currAdapter as ConversationsAdapter
} }
private fun setupConversations(conversations: ArrayList<Conversation>) { private fun setupConversations(conversations: ArrayList<Conversation>, cached: Boolean = false) {
val hasConversations = conversations.isNotEmpty()
val sortedConversations = conversations.sortedWith( val sortedConversations = conversations.sortedWith(
compareByDescending<Conversation> { config.pinnedConversations.contains(it.threadId.toString()) } compareByDescending<Conversation> { config.pinnedConversations.contains(it.threadId.toString()) }
.thenByDescending { it.date } .thenByDescending { it.date }
).toMutableList() as ArrayList<Conversation> ).toMutableList() as ArrayList<Conversation>
conversations_fastscroller.beVisibleIf(hasConversations) if (cached && config.appRunCount == 1) {
no_conversations_placeholder.beGoneIf(hasConversations) // there are no cached conversations on the first run so we show the loading placeholder and progress until we are done loading from telephony
no_conversations_placeholder_2.beGoneIf(hasConversations) showOrHideProgress(conversations.isEmpty())
if (!hasConversations && config.appRunCount == 1) {
no_conversations_placeholder.text = getString(R.string.loading_messages)
no_conversations_placeholder_2.beGone()
conversations_progress_bar.beVisible()
} else { } else {
conversations_progress_bar.beGone() showOrHideProgress(false)
showOrHidePlaceholder(conversations.isEmpty())
} }
try { try {
getOrCreateConversationsAdapter().apply { getOrCreateConversationsAdapter().apply {
updateConversations(sortedConversations) { updateConversations(sortedConversations) {
if (currentList.isEmpty()) { if (!cached) {
conversations_fastscroller.beGone() showOrHidePlaceholder(currentList.isEmpty())
no_conversations_placeholder.text = getString(R.string.no_conversations_found)
no_conversations_placeholder.beVisible()
no_conversations_placeholder_2.beVisible()
} }
} }
} }
@@ -383,6 +375,24 @@ class MainActivity : SimpleActivity() {
} }
} }
private fun showOrHideProgress(show: Boolean) {
if (show) {
conversations_progress_bar.show()
no_conversations_placeholder.beVisible()
no_conversations_placeholder.text = getString(R.string.loading_messages)
} else {
conversations_progress_bar.hide()
no_conversations_placeholder.beGone()
}
}
private fun showOrHidePlaceholder(show: Boolean) {
conversations_fastscroller.beGoneIf(show)
no_conversations_placeholder.beVisibleIf(show)
no_conversations_placeholder.text = getString(R.string.no_conversations_found)
no_conversations_placeholder_2.beVisibleIf(show)
}
private fun fadeOutSearch() { private fun fadeOutSearch() {
search_holder.animate().alpha(0f).setDuration(SHORT_ANIMATION_DURATION).withEndAction { search_holder.animate().alpha(0f).setDuration(SHORT_ANIMATION_DURATION).withEndAction {
search_holder.beGone() search_holder.beGone()