Skip to content

Commit 6eec87c

Browse files
Pass offline mode to constructor.
1 parent 69f27b9 commit 6eec87c

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

swift-sdk/Internal/DependencyContainer.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ protocol DependencyContainerProtocol {
2626
endPoint: String,
2727
authProvider: AuthProvider?,
2828
authManager: IterableInternalAuthManagerProtocol,
29-
deviceMetadata: DeviceMetadata) -> RequestHandlerProtocol
29+
deviceMetadata: DeviceMetadata,
30+
offlineMode: Bool) -> RequestHandlerProtocol
3031
}
3132

3233
extension DependencyContainerProtocol {
@@ -60,7 +61,8 @@ extension DependencyContainerProtocol {
6061
endPoint: String,
6162
authProvider: AuthProvider?,
6263
authManager: IterableInternalAuthManagerProtocol,
63-
deviceMetadata: DeviceMetadata) -> RequestHandlerProtocol {
64+
deviceMetadata: DeviceMetadata,
65+
offlineMode: Bool) -> RequestHandlerProtocol {
6466
if #available(iOS 10.0, *) {
6567
let onlineProcessor = OnlineRequestProcessor(apiKey: apiKey,
6668
authProvider: authProvider,
@@ -82,7 +84,7 @@ extension DependencyContainerProtocol {
8284
} else {
8385
offlineProcessor = nil
8486
}
85-
return RequestHandler(onlineProcessor: onlineProcessor, offlineProcessor: offlineProcessor)
87+
return RequestHandler(onlineProcessor: onlineProcessor, offlineProcessor: offlineProcessor, offlineMode: offlineMode)
8688
} else {
8789
return LegacyRequestHandler(apiKey: apiKey,
8890
authProvider: authProvider,

swift-sdk/Internal/IterableAPIInternal.swift

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -408,12 +408,14 @@ final class IterableAPIInternal: NSObject, PushTrackerProtocol, AuthProvider {
408408
}()
409409

410410
private lazy var requestHandler: RequestHandlerProtocol = {
411-
dependencyContainer.createRequestHandler(apiKey: apiKey,
412-
config: config,
413-
endPoint: apiEndPoint,
414-
authProvider: self,
415-
authManager: authManager,
416-
deviceMetadata: deviceMetadata)
411+
let offlineMode = self.localStorage.isOfflineModeEnabled()
412+
return dependencyContainer.createRequestHandler(apiKey: apiKey,
413+
config: config,
414+
endPoint: apiEndPoint,
415+
authProvider: self,
416+
authManager: authManager,
417+
deviceMetadata: deviceMetadata,
418+
offlineMode: offlineMode)
417419
}()
418420

419421
private var deviceAttributes = [String: String]()
@@ -668,9 +670,8 @@ final class IterableAPIInternal: NSObject, PushTrackerProtocol, AuthProvider {
668670
self.requestHandler.offlineMode = remoteConfiguration.isOfflineModeEnabled()
669671
ITBInfo("setting offlineMode: \(self.requestHandler.offlineMode)")
670672
}.onError { error in
671-
let offlineMode = self.localStorage.isOfflineModeEnabled()
672-
ITBError("Could not get remote configuration: \(error.localizedDescription), defaulting to saved: \(offlineMode)")
673-
self.requestHandler.offlineMode = offlineMode
673+
let offlineMode = self.requestHandler.offlineMode
674+
ITBError("Could not get remote configuration: \(error.localizedDescription), using saved value: \(offlineMode)")
674675
}
675676
}
676677

0 commit comments

Comments
 (0)