From 1731ca0985d71e766756b91c3077054e57c54493 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Mon, 6 Jan 2025 15:42:56 +0100 Subject: [PATCH] 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 --- .../OutcomingTextMessageViewHolder.kt | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt index be4c238d9..8da9c07b2 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt @@ -120,26 +120,31 @@ class OutcomingTextMessageViewHolder(itemView: View) : binding.messageQuote.quotedChatMessageView.visibility = View.GONE } + binding.checkMark.visibility = View.INVISIBLE + binding.sendingProgress.visibility = View.GONE + + if (message.sendingFailed) { + updateStatus( + R.drawable.baseline_report_problem_24, + "failed" + ) + binding.bubble.setOnClickListener { + commonMessageInterface.onOpenMessageActionsDialog(message) + } + } else if (message.isTemporary) { + showSendingSpinner() + } else if (message.readStatus == ReadStatus.READ) { + updateStatus(R.drawable.ic_check_all, context.resources?.getString(R.string.nc_message_read)) + } else if (message.readStatus == ReadStatus.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" ) - } else if (message.sendingFailed) { - updateStatus( - R.drawable.baseline_report_problem_24, - "failed" - ) - binding.bubble.setOnClickListener { - commonMessageInterface.onOpenMessageActionsDialog(message) - } - } else if (message.isTemporary) { - showSendingSpinner() - } else if (message.readStatus == ReadStatus.READ) { - updateStatus(R.drawable.ic_check_all, context.resources?.getString(R.string.nc_message_read)) - } else if (message.readStatus == ReadStatus.SENT) { - updateStatus(R.drawable.ic_check, context.resources?.getString(R.string.nc_message_sent)) } }