diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt index 44d2d6ee4c..3db91fd67c 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListView.kt @@ -45,7 +45,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.clearAndSetSemantics import androidx.compose.ui.semantics.contentDescription @@ -87,7 +86,6 @@ import io.element.android.libraries.designsystem.theme.components.hide import io.element.android.libraries.designsystem.utils.CommonDrawables import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.collections.immutable.ImmutableList -import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -103,52 +101,28 @@ fun ActionListView( val targetItem = (state.target as? ActionListState.Target.Success)?.event fun onItemActionClicked( - itemAction: TimelineItemAction, - immediate: Boolean, + itemAction: TimelineItemAction ) { if (targetItem == null) return - if (immediate) { - coroutineScope.launch { sheetState.hide() } + sheetState.hide(coroutineScope) { state.eventSink(ActionListEvents.Clear) onActionSelected(itemAction, targetItem) - } else { - sheetState.hide(coroutineScope) { - state.eventSink(ActionListEvents.Clear) - onActionSelected(itemAction, targetItem) - } } } - fun onEmojiReactionClicked( - emoji: String, - immediate: Boolean, - ) { + fun onEmojiReactionClicked(emoji: String) { if (targetItem == null) return - if (immediate) { - coroutineScope.launch { sheetState.hide() } + sheetState.hide(coroutineScope) { state.eventSink(ActionListEvents.Clear) onEmojiReactionClicked(emoji, targetItem) - } else { - sheetState.hide(coroutineScope) { - state.eventSink(ActionListEvents.Clear) - onEmojiReactionClicked(emoji, targetItem) - } } } - fun onCustomReactionClicked( - immediate: Boolean, - ) { + fun onCustomReactionClicked() { if (targetItem == null) return - if (immediate) { - coroutineScope.launch { sheetState.hide() } + sheetState.hide(coroutineScope) { state.eventSink(ActionListEvents.Clear) onCustomReactionClicked(targetItem) - } else { - sheetState.hide(coroutineScope) { - state.eventSink(ActionListEvents.Clear) - onCustomReactionClicked(targetItem) - } } } @@ -162,18 +136,11 @@ fun ActionListView( onDismissRequest = ::onDismiss, modifier = modifier, ) { - val immediate = LocalInspectionMode.current SheetContent( state = state, - onActionClicked = { - onItemActionClicked(it, immediate) - }, - onEmojiReactionClicked = { - onEmojiReactionClicked(it, immediate) - }, - onCustomReactionClicked = { - onCustomReactionClicked(immediate) - }, + onActionClicked = ::onItemActionClicked, + onEmojiReactionClicked = ::onEmojiReactionClicked, + onCustomReactionClicked = ::onCustomReactionClicked, modifier = Modifier .navigationBarsPadding() .imePadding() diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt index 1f4ba8bf73..449abc3f46 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt @@ -204,6 +204,8 @@ class MessagesViewTest { state = stateWithMessageAction, ) rule.clickOn(CommonStrings.action_edit) + // Give time for the close animation to complete + rule.mainClock.advanceTimeBy(milliseconds = 1_000) eventsRecorder.assertSingle(MessagesEvents.HandleAction(TimelineItemAction.Edit, timelineItem)) }