Skip to content

Commit 69f27b9

Browse files
No need to lazy initialize OfflineRequestProcessor.
1 parent 084cd0c commit 69f27b9

File tree

4 files changed

+37
-46
lines changed

4 files changed

+37
-46
lines changed

swift-sdk/Internal/DependencyContainer.swift

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -62,29 +62,27 @@ extension DependencyContainerProtocol {
6262
authManager: IterableInternalAuthManagerProtocol,
6363
deviceMetadata: DeviceMetadata) -> RequestHandlerProtocol {
6464
if #available(iOS 10.0, *) {
65-
return RequestHandler(onlineCreator: { [weak authProvider] in
66-
OnlineRequestProcessor(apiKey: apiKey,
65+
let onlineProcessor = OnlineRequestProcessor(apiKey: apiKey,
66+
authProvider: authProvider,
67+
authManager: authManager,
68+
endPoint: endPoint,
69+
networkSession: networkSession,
70+
deviceMetadata: deviceMetadata,
71+
dateProvider: dateProvider)
72+
let offlineProcessor: OfflineRequestProcessor?
73+
if let persistenceContextProvider = createPersistenceContextProvider() {
74+
offlineProcessor = OfflineRequestProcessor(apiKey: apiKey,
6775
authProvider: authProvider,
6876
authManager: authManager,
6977
endPoint: endPoint,
70-
networkSession: networkSession,
7178
deviceMetadata: deviceMetadata,
72-
dateProvider: dateProvider) },
73-
offlineCreator: { [weak authProvider] in
74-
guard let persistenceContextProvider = createPersistenceContextProvider() else {
75-
return nil
76-
}
77-
78-
return OfflineRequestProcessor(apiKey: apiKey,
79-
authProvider: authProvider,
80-
authManager: authManager,
81-
endPoint: endPoint,
82-
deviceMetadata: deviceMetadata,
83-
taskScheduler: createTaskScheduler(persistenceContextProvider: persistenceContextProvider),
84-
taskRunner: createTaskRunner(persistenceContextProvider: persistenceContextProvider),
85-
notificationCenter: notificationCenter)
86-
},
87-
offlineMode: offlineMode)
79+
taskScheduler: createTaskScheduler(persistenceContextProvider: persistenceContextProvider),
80+
taskRunner: createTaskRunner(persistenceContextProvider: persistenceContextProvider),
81+
notificationCenter: notificationCenter)
82+
} else {
83+
offlineProcessor = nil
84+
}
85+
return RequestHandler(onlineProcessor: onlineProcessor, offlineProcessor: offlineProcessor)
8886
} else {
8987
return LegacyRequestHandler(apiKey: apiKey,
9088
authProvider: authProvider,

swift-sdk/Internal/IterableAPIInternal.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,7 @@ final class IterableAPIInternal: NSObject, PushTrackerProtocol, AuthProvider {
666666
self.localStorage.offlineMode = remoteConfiguration.offlineMode
667667
self.localStorage.offlineModeBeta = remoteConfiguration.offlineModeBeta
668668
self.requestHandler.offlineMode = remoteConfiguration.isOfflineModeEnabled()
669+
ITBInfo("setting offlineMode: \(self.requestHandler.offlineMode)")
669670
}.onError { error in
670671
let offlineMode = self.localStorage.isOfflineModeEnabled()
671672
ITBError("Could not get remote configuration: \(error.localizedDescription), defaulting to saved: \(offlineMode)")

swift-sdk/Internal/RequestHandler.swift

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ import Foundation
66

77
@available(iOS 10.0, *)
88
class RequestHandler: RequestHandlerProtocol {
9-
init(onlineCreator: @escaping () -> OnlineRequestProcessor,
10-
offlineCreator: @escaping () -> OfflineRequestProcessor?,
9+
init(onlineProcessor: OnlineRequestProcessor,
10+
offlineProcessor: OfflineRequestProcessor?,
1111
offlineMode: Bool = true) {
1212
ITBInfo()
13-
self.onlineCreator = onlineCreator
14-
self.offlineCreator = offlineCreator
13+
self.onlineProcessor = onlineProcessor
14+
self.offlineProcessor = offlineProcessor
1515
self.offlineMode = offlineMode
1616
}
1717

@@ -251,16 +251,8 @@ class RequestHandler: RequestHandlerProtocol {
251251
}
252252
}
253253

254-
private let onlineCreator: () -> OnlineRequestProcessor
255-
private let offlineCreator: () -> OfflineRequestProcessor?
256-
257-
private lazy var offlineProcessor: OfflineRequestProcessor? = {
258-
offlineCreator()
259-
}()
260-
261-
private lazy var onlineProcessor: OnlineRequestProcessor = {
262-
onlineCreator()
263-
}()
254+
private let offlineProcessor: OfflineRequestProcessor?
255+
private let onlineProcessor: OnlineRequestProcessor
264256

265257
private func chooseRequestProcessor() -> RequestProcessorProtocol {
266258
if offlineMode {

tests/offline-events-tests/RequestHandlerTests.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -833,23 +833,23 @@ class RequestHandlerTests: XCTestCase {
833833
timeInterval: 0.5,
834834
dateProvider: dateProvider)
835835

836-
return RequestHandler(onlineCreator: {
837-
OnlineRequestProcessor(apiKey: "zee-api-key",
836+
let onlineProcessor = OnlineRequestProcessor(apiKey: "zee-api-key",
837+
authProvider: self,
838+
authManager: nil,
839+
endPoint: Endpoint.api,
840+
networkSession: networkSession,
841+
deviceMetadata: Self.deviceMetadata,
842+
dateProvider: self.dateProvider)
843+
let offlineProcessor = OfflineRequestProcessor(apiKey: "zee-api-key",
838844
authProvider: self,
839845
authManager: nil,
840846
endPoint: Endpoint.api,
841-
networkSession: networkSession,
842847
deviceMetadata: Self.deviceMetadata,
843-
dateProvider: self.dateProvider) },
844-
offlineCreator: {
845-
OfflineRequestProcessor(apiKey: "zee-api-key",
846-
authProvider: self,
847-
authManager: nil,
848-
endPoint: Endpoint.api,
849-
deviceMetadata: Self.deviceMetadata,
850-
taskScheduler: taskScheduler,
851-
taskRunner: taskRunner,
852-
notificationCenter: notificationCenter) },
848+
taskScheduler: taskScheduler,
849+
taskRunner: taskRunner,
850+
notificationCenter: notificationCenter)
851+
return RequestHandler(onlineProcessor: onlineProcessor,
852+
offlineProcessor: offlineProcessor,
853853
offlineMode: selectOffline)
854854
}
855855

0 commit comments

Comments
 (0)