diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewEvents.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewEvents.kt index d1ddc382a4..fca07c4a9a 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewEvents.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewEvents.kt @@ -84,5 +84,5 @@ sealed class RoomDetailViewEvents : VectorViewEvents { object StopChatEffects : RoomDetailViewEvents() object RoomReplacementStarted : RoomDetailViewEvents() - data class ScDbgReadTracking(val event: TimelineEvent?, val unreadState: UnreadState) : RoomDetailViewEvents() + data class ScDbgReadTracking(val event: TimelineEvent?, val unreadState: UnreadState, val trackUnreadMessages: Boolean) : RoomDetailViewEvents() } diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt index 81e807b867..4bc72aaab6 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt @@ -610,7 +610,8 @@ class TimelineFragment @Inject constructor( } private fun handleScDbgReadTracking(action: RoomDetailViewEvents.ScDbgReadTracking) { - views.scRoomDebugView.text = "UnreadState: ${action.unreadState.javaClass.simpleName}\nRead: ${action.event?.eventId}/${action.event?.displayIndex}" + views.scRoomDebugView.text = "UnreadState: ${action.unreadState.javaClass.simpleName}, Tracking: ${action.trackUnreadMessages}\n" + + "Read: ${action.event?.eventId}/${action.event?.displayIndex}" } override fun onImageReady(uri: Uri?) { diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt index fa8e5fb865..77e84af5a7 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt @@ -162,7 +162,7 @@ class TimelineViewModel @AssistedInject constructor( field = value if (DbgUtil.isDbgEnabled(DbgUtil.DBG_SHOW_READ_TRACKING)) { withState { - _viewEvents.post(RoomDetailViewEvents.ScDbgReadTracking(mostRecentDisplayedEvent, it.unreadState)) + _viewEvents.post(RoomDetailViewEvents.ScDbgReadTracking(mostRecentDisplayedEvent, it.unreadState, trackUnreadMessages.get())) } } } @@ -643,6 +643,9 @@ class TimelineViewModel @AssistedInject constructor( private fun startTrackingUnreadMessages() { trackUnreadMessages.set(true) + withState { + _viewEvents.post(RoomDetailViewEvents.ScDbgReadTracking(mostRecentDisplayedEvent, it.unreadState, trackUnreadMessages.get())) + } setState { copy(canShowJumpToReadMarker = false) } } @@ -1182,7 +1185,7 @@ class TimelineViewModel @AssistedInject constructor( onEach(RoomDetailViewState::unreadState) { Timber.v("Unread state: $it") if (DbgUtil.isDbgEnabled(DbgUtil.DBG_SHOW_READ_TRACKING)) { - _viewEvents.post(RoomDetailViewEvents.ScDbgReadTracking(mostRecentDisplayedEvent, it)) + _viewEvents.post(RoomDetailViewEvents.ScDbgReadTracking(mostRecentDisplayedEvent, it, trackUnreadMessages.get())) } if (it is UnreadState.HasNoUnread) { startTrackingUnreadMessages()