mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-19 16:13:42 +02:00
Feature/5327 releaseprep
This commit is contained in:
@@ -17,24 +17,38 @@
|
||||
|
||||
import Foundation
|
||||
import MatrixSDK
|
||||
|
||||
@objc class BWIAnalyticsHelper: NSObject {
|
||||
@objc static let shared = BWIAnalyticsHelper()
|
||||
|
||||
@objc static func getRoomDeviceCount(room: MXRoom, completion: @escaping(Int) -> ()) {
|
||||
room.members { roomMembers in
|
||||
var noOfDevices = 0
|
||||
for member in roomMembers?.joinedMembers ?? [MXRoomMember]() {
|
||||
noOfDevices += room.mxSession.crypto.devices(forUser: member.userId).count
|
||||
private let serialQueue = DispatchQueue(label: "de.bwi.analyticshelper.serialQueue")
|
||||
|
||||
@objc func getRoomDeviceCount(room: MXRoom, completion: @escaping(Int) -> ()) {
|
||||
// only ask for devices per room if a refresh is needed -> room.mxSession.crypto.devices is costly in large rooms. And even with that performance win don't do it on Mainthread
|
||||
serialQueue.async {
|
||||
if LazyRoomDevices.shared.areDevicesCurrent(room: room) {
|
||||
completion(LazyRoomDevices.shared.deviceCount(room: room))
|
||||
return
|
||||
}
|
||||
|
||||
room.members { roomMembers in
|
||||
var noOfDevices = 0
|
||||
for member in roomMembers?.joinedMembers ?? [MXRoomMember]() {
|
||||
noOfDevices += room.mxSession.crypto.devices(forUser: member.userId).count
|
||||
}
|
||||
LazyRoomDevices.shared.setDeviceCount(room: room, deviceCount: noOfDevices)
|
||||
completion(noOfDevices)
|
||||
|
||||
} lazyLoadedMembers: { _ in
|
||||
completion(0)
|
||||
} failure: { error in
|
||||
MXLog.error("[RoomAnalyticsHelper] Failed loading room", context: error)
|
||||
completion(0)
|
||||
}
|
||||
completion(noOfDevices)
|
||||
} lazyLoadedMembers: { _ in
|
||||
completion(0)
|
||||
} failure: { error in
|
||||
MXLog.error("[RoomAnalyticsHelper] Failed loading room", context: error)
|
||||
completion(0)
|
||||
}
|
||||
}
|
||||
|
||||
@objc static func getForwardingType(event: MXEvent) -> String? {
|
||||
@objc func getForwardingType(event: MXEvent) -> String? {
|
||||
guard let messageType: MXMessageType = event.messageType else {
|
||||
return nil
|
||||
}
|
||||
@@ -66,7 +80,7 @@ import MatrixSDK
|
||||
|
||||
// MARK: custom dimensions
|
||||
|
||||
@objc static func dimensionForDeviceCount(_ deviceCount: Int) -> String {
|
||||
@objc func dimensionForDeviceCount(_ deviceCount: Int) -> String {
|
||||
if deviceCount <= 0 {
|
||||
return "Undefiniert"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user