// // Copyright 2021-2024 New Vector Ltd. // // SPDX-License-Identifier: AGPL-3.0-only // Please see LICENSE in the repository root for full details. // import Foundation @objcMembers public class MockRecentsListService: NSObject, RecentsListServiceProtocol { private var rooms: [MockRoomSummary] private var _invitedRoomListData: MXRoomListData? private var _favoritedRoomListData: MXRoomListData? private var _peopleRoomListData: MXRoomListData? private var _conversationRoomListData: MXRoomListData? private var _lowPriorityRoomListData: MXRoomListData? private var _serverNoticeRoomListData: MXRoomListData? private var _recentsRoomListData: MXRoomListData? private var _allChatsRoomListData: MXRoomListData? // swiftlint:disable weak_delegate private let multicastDelegate: MXMulticastDelegate = MXMulticastDelegate() // swiftlint:enable weak_delegate public init(withRooms rooms: [MockRoomSummary]) { self.rooms = rooms var invited: [MockRoomSummary] = [] var favorited: [MockRoomSummary] = [] var people: [MockRoomSummary] = [] var conversation: [MockRoomSummary] = [] var lowPriority: [MockRoomSummary] = [] var serverNotice: [MockRoomSummary] = [] rooms.forEach { summary in if summary.isTyped(.invited) { invited.append(summary) } if summary.isTyped(.favorited) { favorited.append(summary) } if summary.isTyped(.direct) { people.append( summary) } if !summary.isTyped([.direct, .invited, .favorited, .lowPriority, .serverNotice]) { conversation.append(summary) } if summary.isTyped(.lowPriority) { lowPriority.append(summary) } if summary.isTyped(.serverNotice) { serverNotice.append(summary) } } _invitedRoomListData = MockRoomListData(withRooms: invited) _favoritedRoomListData = MockRoomListData(withRooms: favorited) _peopleRoomListData = MockRoomListData(withRooms: people) _conversationRoomListData = MockRoomListData(withRooms: conversation) _lowPriorityRoomListData = MockRoomListData(withRooms: lowPriority) _serverNoticeRoomListData = MockRoomListData(withRooms: serverNotice) _recentsRoomListData = MockRoomListData(withRooms: conversation) _allChatsRoomListData = MockRoomListData(withRooms: conversation) super.init() } public static func generate(withNumberOfRooms numberOfRooms: Int) -> MockRecentsListService { var rooms: [MockRoomSummary] = [] for i in 0..