mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-04 01:19:33 +00:00
Show the right image when opening one that has not finished sending (#7359)
* Show the right image when opening one that has not finished sending * Reuse the timeline media gallery for events that have no event id
This commit is contained in:
+2
-2
@@ -178,8 +178,8 @@ fun MessagesView(
|
|||||||
|
|
||||||
fun onContentClick(event: TimelineItem.Event) {
|
fun onContentClick(event: TimelineItem.Event) {
|
||||||
Timber.v("onMessageClick= ${event.id}")
|
Timber.v("onMessageClick= ${event.id}")
|
||||||
val eventId = event.eventId ?: return
|
val eventId = event.eventId
|
||||||
if (eventContentValidationState[eventId].getCurrentOverallState() != ContentValidationValue.Valid) return
|
if (eventId != null && eventContentValidationState[eventId].getCurrentOverallState() != ContentValidationValue.Valid) return
|
||||||
|
|
||||||
val hideKeyboard = onEventContentClick(state.timelineState.isLive, event)
|
val hideKeyboard = onEventContentClick(state.timelineState.isLive, event)
|
||||||
if (hideKeyboard) {
|
if (hideKeyboard) {
|
||||||
|
|||||||
+27
@@ -176,6 +176,33 @@ class MessagesViewTest : RobolectricTest() {
|
|||||||
callback.assertSuccess()
|
callback.assertSuccess()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `clicking on an Event which has not been sent yet invoke expected callback`() = runAndroidComposeUiTest {
|
||||||
|
val eventsRecorder = EventsRecorder<MessagesEvent>(expectEvents = false)
|
||||||
|
val localEcho = aTimelineItemEvent(
|
||||||
|
isMine = true,
|
||||||
|
content = aTimelineItemTextContent(),
|
||||||
|
).copy(eventId = null)
|
||||||
|
val state = aMessagesState(
|
||||||
|
timelineState = aTimelineState(
|
||||||
|
timelineItems = persistentListOf(localEcho),
|
||||||
|
),
|
||||||
|
eventSink = eventsRecorder
|
||||||
|
)
|
||||||
|
val callback = EnsureCalledOnceWithTwoParamsAndResult(
|
||||||
|
expectedParam1 = true,
|
||||||
|
expectedParam2 = localEcho,
|
||||||
|
result = true,
|
||||||
|
)
|
||||||
|
setMessagesView(
|
||||||
|
state = state,
|
||||||
|
onEventClick = callback,
|
||||||
|
)
|
||||||
|
// Cannot perform click on "Text", it's not detected. Use tag instead
|
||||||
|
onAllNodesWithTag(TestTags.messageBubble.value).onFirst().performClick()
|
||||||
|
callback.assertSuccess()
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `long clicking on an Event emits the expected Event userHasPermissionToSendMessage`() {
|
fun `long clicking on an Event emits the expected Event userHasPermissionToSendMessage`() {
|
||||||
`long clicking on an Event emits the expected Event`(userHasPermissionToSendMessage = true)
|
`long clicking on an Event emits the expected Event`(userHasPermissionToSendMessage = true)
|
||||||
|
|||||||
+1
-1
@@ -92,7 +92,7 @@ class MediaViewerNode(
|
|||||||
is MediaViewerEntryPoint.Params.RoomMedia -> {
|
is MediaViewerEntryPoint.Params.RoomMedia -> {
|
||||||
val eventId = inputs.eventId
|
val eventId = inputs.eventId
|
||||||
if (eventId == null) {
|
if (eventId == null) {
|
||||||
// Should not happen
|
// Local echo, the viewer will not be focused on the item
|
||||||
timelineMediaGalleryDataSource
|
timelineMediaGalleryDataSource
|
||||||
} else {
|
} else {
|
||||||
// Can we use a specific timeline?
|
// Can we use a specific timeline?
|
||||||
|
|||||||
Reference in New Issue
Block a user