mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 21:32:34 +00:00
Merge pull request #2035 from element-hq/feature/bma/scrollOnNewMessage
Scroll to bottom if the new event is from me, even if sent from another session
This commit is contained in:
+2
-1
@@ -213,7 +213,8 @@ class TimelinePresenter @AssistedInject constructor(
|
|||||||
newMostRecentItemId != prevMostRecentItemIdValue
|
newMostRecentItemId != prevMostRecentItemIdValue
|
||||||
if (hasNewEvent) {
|
if (hasNewEvent) {
|
||||||
val newMostRecentEvent = newMostRecentItem as? TimelineItem.Event
|
val newMostRecentEvent = newMostRecentItem as? TimelineItem.Event
|
||||||
val fromMe = newMostRecentEvent?.localSendState != null
|
// Scroll to bottom if the new event is from me, even if sent from another device
|
||||||
|
val fromMe = newMostRecentEvent?.isMine == true
|
||||||
newEventState.value = if (fromMe) {
|
newEventState.value = if (fromMe) {
|
||||||
NewEventState.FromMe
|
NewEventState.FromMe
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+2
-3
@@ -37,7 +37,6 @@ import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
|||||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimeline
|
import io.element.android.libraries.matrix.api.timeline.MatrixTimeline
|
||||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.EventReaction
|
import io.element.android.libraries.matrix.api.timeline.item.event.EventReaction
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState
|
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.ReactionSender
|
import io.element.android.libraries.matrix.api.timeline.item.event.ReactionSender
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.virtual.VirtualTimelineItem
|
import io.element.android.libraries.matrix.api.timeline.item.virtual.VirtualTimelineItem
|
||||||
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
||||||
@@ -205,7 +204,7 @@ class TimelinePresenterTest {
|
|||||||
consumeItemsUntilPredicate { it.timelineItems.size == 1 }
|
consumeItemsUntilPredicate { it.timelineItems.size == 1 }
|
||||||
// Mimics sending a message, and assert newEventState is FromMe
|
// Mimics sending a message, and assert newEventState is FromMe
|
||||||
timeline.updateTimelineItems { items ->
|
timeline.updateTimelineItems { items ->
|
||||||
val event = anEventTimelineItem(content = aMessageContent(), localSendState = LocalEventSendState.Sent(AN_EVENT_ID))
|
val event = anEventTimelineItem(content = aMessageContent(), isOwn = true)
|
||||||
items + listOf(MatrixTimelineItem.Event(1, event))
|
items + listOf(MatrixTimelineItem.Event(1, event))
|
||||||
}
|
}
|
||||||
consumeItemsUntilPredicate { it.timelineItems.size == 2 }
|
consumeItemsUntilPredicate { it.timelineItems.size == 2 }
|
||||||
@@ -366,7 +365,7 @@ class TimelinePresenterTest {
|
|||||||
messagesNavigator: FakeMessagesNavigator = FakeMessagesNavigator(),
|
messagesNavigator: FakeMessagesNavigator = FakeMessagesNavigator(),
|
||||||
endPollAction: EndPollAction = FakeEndPollAction(),
|
endPollAction: EndPollAction = FakeEndPollAction(),
|
||||||
sendPollResponseAction: SendPollResponseAction = FakeSendPollResponseAction(),
|
sendPollResponseAction: SendPollResponseAction = FakeSendPollResponseAction(),
|
||||||
): TimelinePresenter {
|
): TimelinePresenter {
|
||||||
return TimelinePresenter(
|
return TimelinePresenter(
|
||||||
timelineItemsFactory = timelineItemsFactory,
|
timelineItemsFactory = timelineItemsFactory,
|
||||||
room = FakeMatrixRoom(matrixTimeline = timeline),
|
room = FakeMatrixRoom(matrixTimeline = timeline),
|
||||||
|
|||||||
Reference in New Issue
Block a user