remove flickering of status icons

by moving networkMonitor.isOnline to separate check and by setting
binding.checkMark.visibility = View.INVISIBLE
binding.sendingProgress.visibility = View.GONE
before setting the status icons
to to handle recyclerview behavior

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2025-01-06 15:42:56 +01:00
parent f665b1c116
commit 1731ca0985
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B

View File

@ -120,13 +120,10 @@ class OutcomingTextMessageViewHolder(itemView: View) :
binding.messageQuote.quotedChatMessageView.visibility = View.GONE binding.messageQuote.quotedChatMessageView.visibility = View.GONE
} }
CoroutineScope(Dispatchers.Main).launch { binding.checkMark.visibility = View.INVISIBLE
if (message.isTemporary && !networkMonitor.isOnline.first()) { binding.sendingProgress.visibility = View.GONE
updateStatus(
R.drawable.ic_signal_wifi_off_white_24dp, if (message.sendingFailed) {
"offline"
)
} else if (message.sendingFailed) {
updateStatus( updateStatus(
R.drawable.baseline_report_problem_24, R.drawable.baseline_report_problem_24,
"failed" "failed"
@ -141,6 +138,14 @@ class OutcomingTextMessageViewHolder(itemView: View) :
} else if (message.readStatus == ReadStatus.SENT) { } else if (message.readStatus == ReadStatus.SENT) {
updateStatus(R.drawable.ic_check, context.resources?.getString(R.string.nc_message_sent)) updateStatus(R.drawable.ic_check, context.resources?.getString(R.string.nc_message_sent))
} }
CoroutineScope(Dispatchers.Main).launch {
if (message.isTemporary && !networkMonitor.isOnline.first()) {
updateStatus(
R.drawable.ic_signal_wifi_off_white_24dp,
"offline"
)
}
} }
itemView.setTag(R.string.replyable_message_view_tag, message.replyable) itemView.setTag(R.string.replyable_message_view_tag, message.replyable)