Snackbar: SnackbarDispatcher.post does not need to be suspend.

This commit is contained in:
Benoit Marty 2025-01-24 14:42:07 +01:00
parent 0dc87cdf84
commit 9b0df915a6
4 changed files with 6 additions and 10 deletions

View file

@ -45,7 +45,7 @@ class LoggedInEventProcessor @Inject constructor(
observingJob = null observingJob = null
} }
private suspend fun displayMessage(message: Int) { private fun displayMessage(message: Int) {
snackbarDispatcher.post(SnackbarMessage(message)) snackbarDispatcher.post(SnackbarMessage(message))
} }
} }

View file

@ -484,7 +484,7 @@ class MessagesPresenter @AssistedInject constructor(
) )
} }
private suspend fun handleCopyContents(event: TimelineItem.Event) { private fun handleCopyContents(event: TimelineItem.Event) {
val content = when (event.content) { val content = when (event.content) {
is TimelineItemTextBasedContent -> event.content.body is TimelineItemTextBasedContent -> event.content.body
is TimelineItemStateContent -> event.content.body is TimelineItemStateContent -> event.content.body
@ -496,7 +496,7 @@ class MessagesPresenter @AssistedInject constructor(
} }
} }
private suspend fun handleCopyCaption(event: TimelineItem.Event) { private fun handleCopyCaption(event: TimelineItem.Event) {
val content = (event.content as? TimelineItemEventContentWithAttachment)?.caption ?: return val content = (event.content as? TimelineItemEventContentWithAttachment)?.caption ?: return
clipboardHelper.copyPlainText(content) clipboardHelper.copyPlainText(content)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {

View file

@ -8,7 +8,6 @@
package io.element.android.features.securebackup.impl.setup package io.element.android.features.securebackup.impl.setup
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
@ -22,8 +21,6 @@ import io.element.android.libraries.architecture.inputs
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
@ContributesNode(SessionScope::class) @ContributesNode(SessionScope::class)
class SecureBackupSetupNode @AssistedInject constructor( class SecureBackupSetupNode @AssistedInject constructor(
@ -42,12 +39,11 @@ class SecureBackupSetupNode @AssistedInject constructor(
@Composable @Composable
override fun View(modifier: Modifier) { override fun View(modifier: Modifier) {
val coroutineScope = rememberCoroutineScope()
val state = presenter.present() val state = presenter.present()
SecureBackupSetupView( SecureBackupSetupView(
state = state, state = state,
onSuccess = { onSuccess = {
coroutineScope.postSuccessSnackbar() postSuccessSnackbar()
navigateUp() navigateUp()
}, },
onBackClick = ::navigateUp, onBackClick = ::navigateUp,
@ -55,7 +51,7 @@ class SecureBackupSetupNode @AssistedInject constructor(
) )
} }
private fun CoroutineScope.postSuccessSnackbar() = launch { private fun postSuccessSnackbar() {
snackbarDispatcher.post( snackbarDispatcher.post(
SnackbarMessage( SnackbarMessage(
messageResId = if (inputs.isChangeRecoveryKeyUserStory) { messageResId = if (inputs.isChangeRecoveryKeyUserStory) {

View file

@ -36,7 +36,7 @@ class SnackbarDispatcher {
} }
} }
suspend fun post(message: SnackbarMessage) { fun post(message: SnackbarMessage) {
if (snackBarMessageQueue.isEmpty()) { if (snackBarMessageQueue.isEmpty()) {
snackBarMessageQueue.add(message) snackBarMessageQueue.add(message)
if (queueMutex.isLocked) queueMutex.unlock() if (queueMutex.isLocked) queueMutex.unlock()