commit 13c09d88be631806315a0c0f2aced136ced58059
parent a5b83b07995914f620a97116f1fce82ea08b499b
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Mon, 22 Apr 2024 11:20:51 +0200

fix(core/bulk_messaging_action): random delay

Diffstat:
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/action/impl/BulkMessagingAction.kt | 14++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/action/impl/BulkMessagingAction.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/action/impl/BulkMessagingAction.kt @@ -45,6 +45,7 @@ import me.rhunk.snapenhance.mapper.impl.FriendRelationshipChangerMapper import java.net.URL import java.text.DateFormat import java.util.Date +import kotlin.random.Random class BulkMessagingAction : AbstractAction() { enum class SortBy { @@ -67,7 +68,12 @@ class BulkMessagingAction : AbstractAction() { private val translation by lazy { context.translation.getCategory("bulk_messaging_action") } - private fun removeAction(ctx: Context, ids: List<String>, action: (String) -> Unit = {}): Job { + private fun removeAction( + ctx: Context, + ids: List<String>, + delay: Pair<Long, Long>, + action: (String) -> Unit = {}, + ): Job { var index = 0 val dialog = ViewAppearanceHelper.newAlertDialogBuilder(ctx) .setTitle("...") @@ -89,7 +95,7 @@ class BulkMessagingAction : AbstractAction() { translation.format("progress_status", "index" to index.toString(), "total" to ids.size.toString()) ) } - delay(100) + delay(Random.nextLong(delay.first, delay.second)) } withContext(Dispatchers.Main) { dialog.dismiss() @@ -431,7 +437,7 @@ class BulkMessagingAction : AbstractAction() { context.shortToast("Failed to fetch conversations: $error") }, onSuccess = { conversations -> context.runOnUiThread { - removeAction(ctx, conversations.map { it.second }.distinct()) { + removeAction(ctx, conversations.map { it.second }.distinct(), delay = 100L to 400L) { messaging.clearConversationFromFeed(it, onError = { error -> context.shortToast("Failed to clear conversation: $error") }) @@ -457,7 +463,7 @@ class BulkMessagingAction : AbstractAction() { action = { removeAction(ctx, selectedFriends.toList().also { selectedFriends.clear() - }) { removeFriend(it) }.invokeOnCompletion { + }, delay = 500L to 1200L) { removeFriend(it) }.invokeOnCompletion { coroutineScope.launch { refreshList() } } }