增加换肤功能

This commit is contained in:
启星
2025-08-14 10:07:49 +08:00
parent f6964c1e89
commit 4f9318d98e
8789 changed files with 978530 additions and 2 deletions

View File

@@ -0,0 +1,78 @@
//
// ListState.swift
// TUIRoomKit
//
// Created by CY zhao on 2024/6/6.
//
import Foundation
import RTCRoomEngine
struct ConferenceListState {
var scheduledConferences: [ConferenceInfo] = []
var fetchScheduledConferencesCursor = ""
}
struct ConferenceInfo {
var scheduleStartTime: UInt = 0
var scheduleEndTime: UInt = 0
var status: TUIConferenceStatus = []
var timeZone: TimeZone = .current
var attendeeListResult = AttendeeListResult()
var durationTime: UInt = 0
var reminderSecondsBeforeStart = 0
// MARK: basic info
var basicInfo = RoomInfo()
init() {}
init(with conferenceInfo: TUIConferenceInfo) {
self.scheduleStartTime = conferenceInfo.scheduleStartTime
self.scheduleEndTime = conferenceInfo.scheduleEndTime
self.durationTime = self.scheduleEndTime - self.scheduleStartTime
self.status = conferenceInfo.status
self.reminderSecondsBeforeStart = conferenceInfo.reminderSecondsBeforeStart
self.basicInfo = RoomInfo(with: conferenceInfo.basicRoomInfo)
}
}
extension ConferenceInfo: Hashable {
static func ==(lhs: ConferenceInfo, rhs: ConferenceInfo) -> Bool {
return lhs.basicInfo.roomId == rhs.basicInfo.roomId &&
lhs.basicInfo.name == rhs.basicInfo.name &&
lhs.scheduleStartTime == rhs.scheduleStartTime &&
lhs.scheduleEndTime == rhs.scheduleEndTime &&
lhs.status == rhs.status
}
func hash(into hasher: inout Hasher) {
hasher.combine(basicInfo.roomId)
hasher.combine(basicInfo.name)
hasher.combine(scheduleStartTime)
hasher.combine(scheduleEndTime)
hasher.combine(status)
}
}
struct AttendeeListResult: Hashable {
var attendeeList: [UserInfo] = []
var fetchCursor: String = ""
var totalCount: UInt = 0
}
extension TUIConferenceInfo {
convenience init(conferenceInfo: ConferenceInfo) {
self.init()
self.scheduleStartTime = UInt(conferenceInfo.scheduleStartTime)
self.scheduleEndTime = self.scheduleStartTime + conferenceInfo.durationTime
self.scheduleAttendees = conferenceInfo.attendeeListResult.attendeeList.map { $0.userId }
self.basicRoomInfo = TUIRoomInfo(roomInfo: conferenceInfo.basicInfo)
self.reminderSecondsBeforeStart = conferenceInfo.reminderSecondsBeforeStart
}
}
extension TUIConferenceStatus: Hashable {
public func hash(into hasher: inout Hasher) {
hasher.combine(self.rawValue)
}
}