diff --git a/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt index 46acdc123b..1e239069ad 100644 --- a/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt +++ b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt @@ -32,6 +32,8 @@ import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent import org.matrix.android.sdk.api.util.Optional import org.matrix.android.sdk.api.util.toOptional +typealias ThreadRootEvent = TimelineEvent + class FlowRoom(private val room: Room) { fun liveRoomSummary(): Flow> { @@ -99,14 +101,14 @@ class FlowRoom(private val room: Room) { return room.getLiveRoomNotificationState().asFlow() } - fun liveThreadList(): Flow> { + fun liveThreadList(): Flow> { return room.getAllThreadsLive().asFlow() .startWith(room.coroutineDispatchers.io) { room.getAllThreads() } } - fun liveLocalUnreadThreadList(): Flow> { + fun liveLocalUnreadThreadList(): Flow> { return room.getNumberOfLocalThreadNotificationsLive().asFlow() .startWith(room.coroutineDispatchers.io) { room.getNumberOfLocalThreadNotifications() 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 d051860f32..563ab00d18 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 @@ -326,8 +326,8 @@ class TimelineViewModel @AssistedInject constructor( .liveLocalUnreadThreadList() .execute { val threadList = it.invoke() - val isUserMentioned = threadList?.firstOrNull { timelineEvent -> - timelineEvent.root.threadDetails?.threadNotificationState == ThreadNotificationState.NEW_HIGHLIGHTED_MESSAGE + val isUserMentioned = threadList?.firstOrNull { threadRootEvent -> + threadRootEvent.root.threadDetails?.threadNotificationState == ThreadNotificationState.NEW_HIGHLIGHTED_MESSAGE }?.let { true } ?: false val numberOfLocalUnreadThreads = threadList?.size ?: 0 copy(threadNotificationBadgeState = ThreadNotificationBadgeState( diff --git a/vector/src/main/java/im/vector/app/features/home/room/threads/list/viewmodel/ThreadListViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/threads/list/viewmodel/ThreadListViewModel.kt index 25dc14cec6..88751004a4 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/threads/list/viewmodel/ThreadListViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/threads/list/viewmodel/ThreadListViewModel.kt @@ -62,9 +62,9 @@ class ThreadListViewModel @AssistedInject constructor(@Assisted val initialState room?.flow() ?.liveThreadList() ?.map { - it.map { timelineEvent -> - val isParticipating = room.isUserParticipatingInThread(timelineEvent.eventId) - ThreadTimelineEvent(timelineEvent, isParticipating) + it.map { threadRootEvent -> + val isParticipating = room.isUserParticipatingInThread(threadRootEvent.eventId) + ThreadTimelineEvent(threadRootEvent, isParticipating) } } ?.flowOn(room.coroutineDispatchers.io) diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorSettingsLabsFragment.kt b/vector/src/main/java/im/vector/app/features/settings/VectorSettingsLabsFragment.kt index 895c6fcd74..7a3e0033e3 100644 --- a/vector/src/main/java/im/vector/app/features/settings/VectorSettingsLabsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/VectorSettingsLabsFragment.kt @@ -41,7 +41,7 @@ class VectorSettingsLabsFragment @Inject constructor( // clear cache findPreference(VectorPreferences.SETTINGS_LABS_ENABLE_THREAD_MESSAGES)?.let { - it.onPreferenceClickListener = Preference.OnPreferenceClickListener { pref-> + it.onPreferenceClickListener = Preference.OnPreferenceClickListener { lightweightSettingsStorage.setThreadMessagesEnabled(vectorPreferences.areThreadMessagesEnabled()) displayLoadingView() MainActivity.restartApp(requireActivity(), MainActivityArgs(clearCache = true))