From c2a1560b1de2345a4f6bcc736e70028a77e01ecd Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Wed, 20 Sep 2023 10:29:50 +0300 Subject: [PATCH] Avoid too much back and forth throuhg FFI by lazily fetching and storing member proxy properties --- .../Room/RoomMember/RoomMemberProxy.swift | 40 +++++-------------- 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/ElementX/Sources/Services/Room/RoomMember/RoomMemberProxy.swift b/ElementX/Sources/Services/Room/RoomMember/RoomMemberProxy.swift index c2782c9ed..fb2c0fc25 100644 --- a/ElementX/Sources/Services/Room/RoomMember/RoomMemberProxy.swift +++ b/ElementX/Sources/Services/Room/RoomMember/RoomMemberProxy.swift @@ -31,45 +31,25 @@ final class RoomMemberProxy: RoomMemberProxyProtocol { self.member = member } - var userID: String { - member.userId() - } + lazy var userID = member.userId() - var displayName: String? { - member.displayName() - } + lazy var displayName = member.displayName() - var avatarURL: URL? { - member.avatarUrl().flatMap(URL.init(string:)) - } + lazy var avatarURL = member.avatarUrl().flatMap(URL.init(string:)) - var membership: MembershipState { - member.membership() - } + lazy var membership = member.membership() - var isNameAmbiguous: Bool { - member.isNameAmbiguous() - } + lazy var isNameAmbiguous = member.isNameAmbiguous() - var powerLevel: Int { - Int(member.powerLevel()) - } + lazy var powerLevel = Int(member.powerLevel()) - var normalizedPowerLevel: Int { - Int(member.normalizedPowerLevel()) - } + lazy var normalizedPowerLevel = Int(member.normalizedPowerLevel()) - var isAccountOwner: Bool { - member.isAccountUser() - } + lazy var isAccountOwner = member.isAccountUser() - var isIgnored: Bool { - member.isIgnored() - } + lazy var isIgnored = member.isIgnored() - var canInviteUsers: Bool { - member.canInvite() - } + lazy var canInviteUsers = member.canInvite() func canSendStateEvent(type: StateEventType) -> Bool { member.canSendState(stateEvent: type)