Only show HasUnread -> HasUnread updates for same readMarker
Change-Id: Id4c3bb55a7cfcfc97bc362c64213c2c165a24ab3
This commit is contained in:
parent
ece413887a
commit
47a47a9e97
@ -37,7 +37,7 @@ sealed class UnreadState {
|
|||||||
object Unknown : UnreadState()
|
object Unknown : UnreadState()
|
||||||
object HasNoUnread : UnreadState()
|
object HasNoUnread : UnreadState()
|
||||||
data class ReadMarkerNotLoaded(val readMarkerId: String) : UnreadState()
|
data class ReadMarkerNotLoaded(val readMarkerId: String) : UnreadState()
|
||||||
data class HasUnread(val firstUnreadEventId: String) : UnreadState()
|
data class HasUnread(val firstUnreadEventId: String, val readMarkerId: String) : UnreadState()
|
||||||
}
|
}
|
||||||
|
|
||||||
data class JitsiState(
|
data class JitsiState(
|
||||||
|
@ -1134,7 +1134,8 @@ class TimelineViewModel @AssistedInject constructor(
|
|||||||
.distinctUntilChanged { previous, current ->
|
.distinctUntilChanged { previous, current ->
|
||||||
when {
|
when {
|
||||||
previous is UnreadState.Unknown || previous is UnreadState.ReadMarkerNotLoaded -> false
|
previous is UnreadState.Unknown || previous is UnreadState.ReadMarkerNotLoaded -> false
|
||||||
previous is UnreadState.HasUnread && current is UnreadState.HasUnread -> false
|
previous is UnreadState.HasUnread && current is UnreadState.HasUnread &&
|
||||||
|
previous.readMarkerId == current.readMarkerId -> false
|
||||||
current is UnreadState.HasUnread || current is UnreadState.HasNoUnread -> true
|
current is UnreadState.HasUnread || current is UnreadState.HasNoUnread -> true
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
@ -1168,7 +1169,7 @@ class TimelineViewModel @AssistedInject constructor(
|
|||||||
val isFromMe = timelineEvent.root.senderId == session.myUserId
|
val isFromMe = timelineEvent.root.senderId == session.myUserId
|
||||||
rmDimber.i{"isFromMe = $isFromMe"}
|
rmDimber.i{"isFromMe = $isFromMe"}
|
||||||
if (!isFromMe) {
|
if (!isFromMe) {
|
||||||
return UnreadState.HasUnread(eventId)
|
return UnreadState.HasUnread(eventId, readMarkerIdSnapshot)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rmDimber.i{"hasNoUnread / firstDisplayableEventIndex: $firstDisplayableEventIndex / " +
|
rmDimber.i{"hasNoUnread / firstDisplayableEventIndex: $firstDisplayableEventIndex / " +
|
||||||
|
Loading…
x
Reference in New Issue
Block a user