mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 10:33:45 +00:00
Adopt the new search backfill client interfaces.
This commit is contained in:
@@ -2575,6 +2575,11 @@ nonisolated class ClientProxyMock: ClientProxyProtocol, @unchecked Sendable {
|
|||||||
}
|
}
|
||||||
nonisolated(unsafe) var underlyingMaxMediaUploadSize: Result<UInt, ClientProxyError>!
|
nonisolated(unsafe) var underlyingMaxMediaUploadSize: Result<UInt, ClientProxyError>!
|
||||||
nonisolated(unsafe) var maxMediaUploadSizeClosure: (() async -> Result<UInt, ClientProxyError>)?
|
nonisolated(unsafe) var maxMediaUploadSizeClosure: (() async -> Result<UInt, ClientProxyError>)?
|
||||||
|
var isSearchBackfillRunning: Bool {
|
||||||
|
get { return underlyingIsSearchBackfillRunning }
|
||||||
|
set(value) { underlyingIsSearchBackfillRunning = value }
|
||||||
|
}
|
||||||
|
nonisolated(unsafe) var underlyingIsSearchBackfillRunning: Bool!
|
||||||
var liveLocationOwnInfoUpdatesPublisher: AnyPublisher<LiveLocationOwnInfoUpdate, Never> {
|
var liveLocationOwnInfoUpdatesPublisher: AnyPublisher<LiveLocationOwnInfoUpdate, Never> {
|
||||||
get { return underlyingLiveLocationOwnInfoUpdatesPublisher }
|
get { return underlyingLiveLocationOwnInfoUpdatesPublisher }
|
||||||
set(value) { underlyingLiveLocationOwnInfoUpdatesPublisher = value }
|
set(value) { underlyingLiveLocationOwnInfoUpdatesPublisher = value }
|
||||||
@@ -2699,6 +2704,54 @@ nonisolated class ClientProxyMock: ClientProxyProtocol, @unchecked Sendable {
|
|||||||
pauseServicesCallsCountLock.withLock { pauseServicesUnderlyingCallsCount += 1 }
|
pauseServicesCallsCountLock.withLock { pauseServicesUnderlyingCallsCount += 1 }
|
||||||
await pauseServicesClosure?()
|
await pauseServicesClosure?()
|
||||||
}
|
}
|
||||||
|
//MARK: - startSearchBackfill
|
||||||
|
|
||||||
|
private let startSearchBackfillStrategyCallsCountLock = NSLock()
|
||||||
|
private nonisolated(unsafe) var startSearchBackfillStrategyUnderlyingCallsCount = 0
|
||||||
|
var startSearchBackfillStrategyCallsCount: Int {
|
||||||
|
get { startSearchBackfillStrategyCallsCountLock.withLock { startSearchBackfillStrategyUnderlyingCallsCount } }
|
||||||
|
set { startSearchBackfillStrategyCallsCountLock.withLock { startSearchBackfillStrategyUnderlyingCallsCount = newValue } }
|
||||||
|
}
|
||||||
|
var startSearchBackfillStrategyCalled: Bool {
|
||||||
|
return startSearchBackfillStrategyCallsCount > 0
|
||||||
|
}
|
||||||
|
private let startSearchBackfillStrategyReceivedStrategyLock = NSLock()
|
||||||
|
private nonisolated(unsafe) var startSearchBackfillStrategyUnderlyingReceivedStrategy: SearchBackfillStrategy?
|
||||||
|
var startSearchBackfillStrategyReceivedStrategy: SearchBackfillStrategy? {
|
||||||
|
get { startSearchBackfillStrategyReceivedStrategyLock.withLock { startSearchBackfillStrategyUnderlyingReceivedStrategy } }
|
||||||
|
set { startSearchBackfillStrategyReceivedStrategyLock.withLock { startSearchBackfillStrategyUnderlyingReceivedStrategy = newValue } }
|
||||||
|
}
|
||||||
|
private let startSearchBackfillStrategyReceivedInvocationsLock = NSLock()
|
||||||
|
private nonisolated(unsafe) var startSearchBackfillStrategyUnderlyingReceivedInvocations: [SearchBackfillStrategy] = []
|
||||||
|
var startSearchBackfillStrategyReceivedInvocations: [SearchBackfillStrategy] {
|
||||||
|
get { startSearchBackfillStrategyReceivedInvocationsLock.withLock { startSearchBackfillStrategyUnderlyingReceivedInvocations } }
|
||||||
|
set { startSearchBackfillStrategyReceivedInvocationsLock.withLock { startSearchBackfillStrategyUnderlyingReceivedInvocations = newValue } }
|
||||||
|
}
|
||||||
|
nonisolated(unsafe) var startSearchBackfillStrategyClosure: ((SearchBackfillStrategy) -> Void)?
|
||||||
|
|
||||||
|
func startSearchBackfill(strategy: SearchBackfillStrategy) {
|
||||||
|
startSearchBackfillStrategyCallsCountLock.withLock { startSearchBackfillStrategyUnderlyingCallsCount += 1 }
|
||||||
|
startSearchBackfillStrategyReceivedStrategy = strategy
|
||||||
|
startSearchBackfillStrategyReceivedInvocationsLock.withLock { startSearchBackfillStrategyUnderlyingReceivedInvocations.append(strategy) }
|
||||||
|
startSearchBackfillStrategyClosure?(strategy)
|
||||||
|
}
|
||||||
|
//MARK: - stopSearchBackfill
|
||||||
|
|
||||||
|
private let stopSearchBackfillCallsCountLock = NSLock()
|
||||||
|
private nonisolated(unsafe) var stopSearchBackfillUnderlyingCallsCount = 0
|
||||||
|
var stopSearchBackfillCallsCount: Int {
|
||||||
|
get { stopSearchBackfillCallsCountLock.withLock { stopSearchBackfillUnderlyingCallsCount } }
|
||||||
|
set { stopSearchBackfillCallsCountLock.withLock { stopSearchBackfillUnderlyingCallsCount = newValue } }
|
||||||
|
}
|
||||||
|
var stopSearchBackfillCalled: Bool {
|
||||||
|
return stopSearchBackfillCallsCount > 0
|
||||||
|
}
|
||||||
|
nonisolated(unsafe) var stopSearchBackfillClosure: (() -> Void)?
|
||||||
|
|
||||||
|
func stopSearchBackfill() {
|
||||||
|
stopSearchBackfillCallsCountLock.withLock { stopSearchBackfillUnderlyingCallsCount += 1 }
|
||||||
|
stopSearchBackfillClosure?()
|
||||||
|
}
|
||||||
//MARK: - expireSyncSessions
|
//MARK: - expireSyncSessions
|
||||||
|
|
||||||
private let expireSyncSessionsCallsCountLock = NSLock()
|
private let expireSyncSessionsCallsCountLock = NSLock()
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ class ClientProxy: ClientProxyProtocol {
|
|||||||
|
|
||||||
private var delegateHandle: TaskHandle?
|
private var delegateHandle: TaskHandle?
|
||||||
|
|
||||||
|
private var searchBackfillTaskHandle: TaskHandle?
|
||||||
|
|
||||||
// These following summary providers both operate on the same allRooms() list but
|
// These following summary providers both operate on the same allRooms() list but
|
||||||
// can apply their own filtering and pagination
|
// can apply their own filtering and pagination
|
||||||
private(set) var roomSummaryProvider: RoomSummaryProviderProtocol
|
private(set) var roomSummaryProvider: RoomSummaryProviderProtocol
|
||||||
@@ -473,6 +475,25 @@ class ClientProxy: ClientProxyProtocol {
|
|||||||
await transitionServices(to: .suspended).value
|
await transitionServices(to: .suspended).value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func startSearchBackfill(strategy: SearchBackfillStrategy) {
|
||||||
|
if strategy == .foreground, isSearchBackfillRunning {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
MXLog.info("Starting search backfill with strategy: \(strategy)")
|
||||||
|
searchBackfillTaskHandle?.cancel()
|
||||||
|
searchBackfillTaskHandle = client.runSearchBackfill(strategy: strategy)
|
||||||
|
}
|
||||||
|
|
||||||
|
func stopSearchBackfill() {
|
||||||
|
searchBackfillTaskHandle?.cancel()
|
||||||
|
searchBackfillTaskHandle = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var isSearchBackfillRunning: Bool {
|
||||||
|
searchBackfillTaskHandle?.isFinished() == false
|
||||||
|
}
|
||||||
|
|
||||||
func expireSyncSessions() async {
|
func expireSyncSessions() async {
|
||||||
await syncService.expireSessions()
|
await syncService.expireSessions()
|
||||||
}
|
}
|
||||||
@@ -1188,6 +1209,8 @@ class ClientProxy: ClientProxyProtocol {
|
|||||||
case .suspended:
|
case .suspended:
|
||||||
updateHomeserverReachability()
|
updateHomeserverReachability()
|
||||||
|
|
||||||
|
stopSearchBackfill()
|
||||||
|
|
||||||
MXLog.info("Stopping sync")
|
MXLog.info("Stopping sync")
|
||||||
await syncService.stop()
|
await syncService.stop()
|
||||||
MXLog.info("Sync stopped")
|
MXLog.info("Sync stopped")
|
||||||
|
|||||||
@@ -187,6 +187,12 @@ protocol ClientProxyProtocol: AnyObject {
|
|||||||
|
|
||||||
func pauseServices() async
|
func pauseServices() async
|
||||||
|
|
||||||
|
func startSearchBackfill(strategy: SearchBackfillStrategy)
|
||||||
|
|
||||||
|
func stopSearchBackfill()
|
||||||
|
|
||||||
|
var isSearchBackfillRunning: Bool { get }
|
||||||
|
|
||||||
func expireSyncSessions() async
|
func expireSyncSessions() async
|
||||||
|
|
||||||
func accountURL(action: AccountManagementAction) async -> URL?
|
func accountURL(action: AccountManagementAction) async -> URL?
|
||||||
|
|||||||
Reference in New Issue
Block a user