Fixes #2360 - Add support for manually marking rooms as unread (#2408)

* Fixes #2360 - Add support for manually marking rooms as unread

* Add analytics for marking rooms as (un)read

* Remove unnecessary analytics abstraction levels

* Fix breaking API changes following SDK bump

* Add changelog

* Handle PR comments

* Fix unit tests
This commit is contained in:
Stefan Ceriu
2024-02-05 18:06:50 +02:00
committed by GitHub
parent e80612b968
commit 9915a33964
46 changed files with 250 additions and 305 deletions
@@ -51,6 +51,8 @@ enum HomeScreenViewAction {
case updateVisibleItemRange(range: Range<Int>, isScrolling: Bool)
case selectInvites
case globalSearch
case markRoomAsUnread(roomIdentifier: String)
case markRoomAsRead(roomIdentifier: String)
}
enum HomeScreenRoomListMode: CustomStringConvertible {
@@ -102,7 +104,9 @@ struct HomeScreenViewState: BindableState {
var rooms: [HomeScreenRoom] = []
var roomListMode: HomeScreenRoomListMode = .skeletons
var shouldShowFilters = false
var markAsUnreadEnabled = false
var hasPendingInvitations = false
var hasUnreadPendingInvitations = false
@@ -153,6 +157,8 @@ struct HomeScreenRoom: Identifiable, Equatable {
var name = ""
var isMarkedUnread: Bool
var hasUnreadMessages = false
var hasUnreadMentions = false
@@ -171,10 +177,15 @@ struct HomeScreenRoom: Identifiable, Equatable {
var isPlaceholder = false
var hasNewContent: Bool {
hasUnreadMessages || hasUnreadMentions || hasUnreadNotifications || isMarkedUnread
}
static func placeholder() -> HomeScreenRoom {
HomeScreenRoom(id: UUID().uuidString,
roomId: nil,
name: "Placeholder room name",
isMarkedUnread: false,
hasUnreadMessages: false,
hasUnreadMentions: false,
hasUnreadNotifications: false,