mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 12:07:55 +00:00
Pinned items timeline implementation for the banner (#3099)
This commit is contained in:
@@ -8320,7 +8320,7 @@ class RoomProxyMock: RoomProxyProtocol {
|
||||
return pinnedEventIDsCallsCount > 0
|
||||
}
|
||||
|
||||
var pinnedEventIDs: [String] {
|
||||
var pinnedEventIDs: Set<String> {
|
||||
get async {
|
||||
pinnedEventIDsCallsCount += 1
|
||||
if let pinnedEventIDsClosure = pinnedEventIDsClosure {
|
||||
@@ -8330,8 +8330,8 @@ class RoomProxyMock: RoomProxyProtocol {
|
||||
}
|
||||
}
|
||||
}
|
||||
var underlyingPinnedEventIDs: [String]!
|
||||
var pinnedEventIDsClosure: (() async -> [String])?
|
||||
var underlyingPinnedEventIDs: Set<String>!
|
||||
var pinnedEventIDsClosure: (() async -> Set<String>)?
|
||||
var membership: Membership {
|
||||
get { return underlyingMembership }
|
||||
set(value) { underlyingMembership = value }
|
||||
@@ -8403,6 +8403,23 @@ class RoomProxyMock: RoomProxyProtocol {
|
||||
set(value) { underlyingTimeline = value }
|
||||
}
|
||||
var underlyingTimeline: TimelineProxyProtocol!
|
||||
var pinnedEventsTimelineCallsCount = 0
|
||||
var pinnedEventsTimelineCalled: Bool {
|
||||
return pinnedEventsTimelineCallsCount > 0
|
||||
}
|
||||
|
||||
var pinnedEventsTimeline: TimelineProxyProtocol? {
|
||||
get async {
|
||||
pinnedEventsTimelineCallsCount += 1
|
||||
if let pinnedEventsTimelineClosure = pinnedEventsTimelineClosure {
|
||||
return await pinnedEventsTimelineClosure()
|
||||
} else {
|
||||
return underlyingPinnedEventsTimeline
|
||||
}
|
||||
}
|
||||
}
|
||||
var underlyingPinnedEventsTimeline: TimelineProxyProtocol?
|
||||
var pinnedEventsTimelineClosure: (() async -> TimelineProxyProtocol?)?
|
||||
|
||||
//MARK: - subscribeForUpdates
|
||||
|
||||
|
||||
@@ -10989,6 +10989,42 @@ open class RoomSDKMock: MatrixRustSDK.Room {
|
||||
try await clearComposerDraftClosure?()
|
||||
}
|
||||
|
||||
//MARK: - clearPinnedEventsCache
|
||||
|
||||
var clearPinnedEventsCacheUnderlyingCallsCount = 0
|
||||
open var clearPinnedEventsCacheCallsCount: Int {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return clearPinnedEventsCacheUnderlyingCallsCount
|
||||
} else {
|
||||
var returnValue: Int? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = clearPinnedEventsCacheUnderlyingCallsCount
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
clearPinnedEventsCacheUnderlyingCallsCount = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
clearPinnedEventsCacheUnderlyingCallsCount = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var clearPinnedEventsCacheCalled: Bool {
|
||||
return clearPinnedEventsCacheCallsCount > 0
|
||||
}
|
||||
open var clearPinnedEventsCacheClosure: (() async -> Void)?
|
||||
|
||||
open override func clearPinnedEventsCache() async {
|
||||
clearPinnedEventsCacheCallsCount += 1
|
||||
await clearPinnedEventsCacheClosure?()
|
||||
}
|
||||
|
||||
//MARK: - discardRoomKey
|
||||
|
||||
open var discardRoomKeyThrowableError: Error?
|
||||
@@ -13005,6 +13041,81 @@ open class RoomSDKMock: MatrixRustSDK.Room {
|
||||
}
|
||||
}
|
||||
|
||||
//MARK: - pinnedEventsTimeline
|
||||
|
||||
open var pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadThrowableError: Error?
|
||||
var pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadUnderlyingCallsCount = 0
|
||||
open var pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadCallsCount: Int {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadUnderlyingCallsCount
|
||||
} else {
|
||||
var returnValue: Int? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadUnderlyingCallsCount
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadUnderlyingCallsCount = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadUnderlyingCallsCount = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadCalled: Bool {
|
||||
return pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadCallsCount > 0
|
||||
}
|
||||
open var pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadReceivedArguments: (internalIdPrefix: String?, maxEventsToLoad: UInt16)?
|
||||
open var pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadReceivedInvocations: [(internalIdPrefix: String?, maxEventsToLoad: UInt16)] = []
|
||||
|
||||
var pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadUnderlyingReturnValue: Timeline!
|
||||
open var pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadReturnValue: Timeline! {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadUnderlyingReturnValue
|
||||
} else {
|
||||
var returnValue: Timeline? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadUnderlyingReturnValue
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadUnderlyingReturnValue = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadUnderlyingReturnValue = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadClosure: ((String?, UInt16) async throws -> Timeline)?
|
||||
|
||||
open override func pinnedEventsTimeline(internalIdPrefix: String?, maxEventsToLoad: UInt16) async throws -> Timeline {
|
||||
if let error = pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadThrowableError {
|
||||
throw error
|
||||
}
|
||||
pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadCallsCount += 1
|
||||
pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadReceivedArguments = (internalIdPrefix: internalIdPrefix, maxEventsToLoad: maxEventsToLoad)
|
||||
DispatchQueue.main.async {
|
||||
self.pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadReceivedInvocations.append((internalIdPrefix: internalIdPrefix, maxEventsToLoad: maxEventsToLoad))
|
||||
}
|
||||
if let pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadClosure = pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadClosure {
|
||||
return try await pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadClosure(internalIdPrefix, maxEventsToLoad)
|
||||
} else {
|
||||
return pinnedEventsTimelineInternalIdPrefixMaxEventsToLoadReturnValue
|
||||
}
|
||||
}
|
||||
|
||||
//MARK: - rawName
|
||||
|
||||
var rawNameUnderlyingCallsCount = 0
|
||||
|
||||
Reference in New Issue
Block a user