mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
Add the UserStatus and a status field on UserProfile/RoomMember/TimelineItemSender.
This commit is contained in:
@@ -10045,6 +10045,11 @@ nonisolated class RoomMemberProxyMock: RoomMemberProxyProtocol, @unchecked Senda
|
||||
nonisolated(unsafe) var displayName: String?
|
||||
nonisolated(unsafe) var disambiguatedDisplayName: String?
|
||||
nonisolated(unsafe) var avatarURL: URL?
|
||||
var status: UserStatus {
|
||||
get { return underlyingStatus }
|
||||
set(value) { underlyingStatus = value }
|
||||
}
|
||||
nonisolated(unsafe) var underlyingStatus: UserStatus!
|
||||
var membership: MembershipState {
|
||||
get { return underlyingMembership }
|
||||
set(value) { underlyingMembership = value }
|
||||
|
||||
@@ -13,6 +13,7 @@ nonisolated struct RoomMemberProxyMockConfiguration {
|
||||
var userID: String
|
||||
var displayName: String?
|
||||
var avatarURL: URL?
|
||||
var status = UserStatus()
|
||||
|
||||
var membership: MembershipState
|
||||
var isIgnored = false
|
||||
@@ -23,14 +24,12 @@ nonisolated struct RoomMemberProxyMockConfiguration {
|
||||
extension RoomMemberProxyMock {
|
||||
convenience init(with configuration: RoomMemberProxyMockConfiguration) {
|
||||
self.init()
|
||||
|
||||
userID = configuration.userID
|
||||
displayName = configuration.displayName
|
||||
|
||||
if let displayName = configuration.displayName {
|
||||
disambiguatedDisplayName = "\(displayName) (\(userID))"
|
||||
}
|
||||
|
||||
disambiguatedDisplayName = configuration.displayName.map { "\($0) (\(userID))" }
|
||||
avatarURL = configuration.avatarURL
|
||||
status = configuration.status
|
||||
|
||||
membership = configuration.membership
|
||||
isIgnored = configuration.isIgnored
|
||||
@@ -93,6 +92,20 @@ extension RoomMemberProxyMock {
|
||||
membership: .join))
|
||||
}
|
||||
|
||||
static var mockErin: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@erin:matrix.org",
|
||||
displayName: "Erin",
|
||||
status: .mockFocussing,
|
||||
membership: .join))
|
||||
}
|
||||
|
||||
static var mockFrank: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@frank:matrix.org",
|
||||
displayName: "Frank",
|
||||
status: .mockCall,
|
||||
membership: .join))
|
||||
}
|
||||
|
||||
static var mockVerbose: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@charliev:matrix.org",
|
||||
displayName: "Charlie is the best display name",
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
import Foundation
|
||||
|
||||
extension UserProfile {
|
||||
/// Mocks
|
||||
static var mockAlice: UserProfile {
|
||||
.init(userID: "@alice:matrix.org", displayName: "Alice", avatarURL: "mxc://matrix.org/UcCimidcvpFvWkPzvjXMQPHA")
|
||||
}
|
||||
@@ -30,7 +29,33 @@ extension UserProfile {
|
||||
.init(userID: "@dan:matrix.org", displayName: "Dan", avatarURL: .mockMXCUserAvatar)
|
||||
}
|
||||
|
||||
static var mockErin: UserProfile {
|
||||
.init(userID: "@erin:matrix.org", displayName: "Erin", status: .mockFocussing)
|
||||
}
|
||||
|
||||
static var mockFrank: UserProfile {
|
||||
.init(userID: "@frank:matrix.org", displayName: "Frank", status: .mockCall)
|
||||
}
|
||||
|
||||
static var mockVerbose: UserProfile {
|
||||
.init(userID: "@charlie:matrix.org", displayName: "Charlie is the best display name", avatarURL: nil)
|
||||
}
|
||||
}
|
||||
|
||||
nonisolated extension UserStatus {
|
||||
static var mockCall: UserStatus {
|
||||
.init(userSet: nil, call: .init(startDate: nil))
|
||||
}
|
||||
|
||||
static var mockFocussing: UserStatus {
|
||||
.init(userSet: .init(text: "Focussing", emoji: "🧑💻"), call: nil)
|
||||
}
|
||||
|
||||
static var mockHoliday: UserStatus {
|
||||
.init(userSet: .init(text: "Holiday", emoji: "🏝️"), call: nil)
|
||||
}
|
||||
|
||||
static func mock(text: String, emoji: Character) -> UserStatus {
|
||||
.init(userSet: .init(text: text, emoji: emoji), call: nil)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user