Skip to content

Commit

Permalink
Merge pull request #664 from Iterable/MOB-6583-OfflineMode-Default-Off
Browse files Browse the repository at this point in the history
[MOB - 6583] - No Offline Components when Online-Only
  • Loading branch information
Ayyanchira committed Aug 3, 2023
2 parents 61b8721 + 48a5e9e commit 641881c
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 15 deletions.
5 changes: 5 additions & 0 deletions swift-sdk.xcodeproj/xcshareddata/xcschemes/swift-sdk.xcscheme
Expand Up @@ -210,6 +210,11 @@
BlueprintName = "offline-events-tests"
ReferencedContainer = "container:swift-sdk.xcodeproj">
</BuildableReference>
<SkippedTests>
<Test
Identifier = "RequestHandlerTests/testFeatureFlagTurnOnOfflineMode()">
</Test>
</SkippedTests>
</TestableReference>
</Testables>
</TestAction>
Expand Down
40 changes: 26 additions & 14 deletions swift-sdk/Internal/DependencyContainerProtocol.swift
Expand Up @@ -70,21 +70,33 @@ extension DependencyContainerProtocol {
networkSession: networkSession,
deviceMetadata: deviceMetadata,
dateProvider: dateProvider)
if let persistenceContextProvider = createPersistenceContextProvider() {
lazy var offlineProcessor: OfflineRequestProcessor? = nil
lazy var healthMonitor: HealthMonitor? = nil
guard let persistenceContextProvider = createPersistenceContextProvider() else {
return RequestHandler(onlineProcessor: onlineProcessor,
offlineProcessor: nil,
healthMonitor: nil,
offlineMode: offlineMode)
}
if offlineMode {

let healthMonitorDataProvider = createHealthMonitorDataProvider(persistenceContextProvider: persistenceContextProvider)
let healthMonitor = HealthMonitor(dataProvider: healthMonitorDataProvider,
dateProvider: dateProvider,
networkSession: networkSession)
let offlineProcessor = OfflineRequestProcessor(apiKey: apiKey,
authProvider: authProvider,
authManager: authManager,
endpoint: endpoint,
deviceMetadata: deviceMetadata,
taskScheduler: createTaskScheduler(persistenceContextProvider: persistenceContextProvider,
healthMonitor: healthMonitor),
taskRunner: createTaskRunner(persistenceContextProvider: persistenceContextProvider,
healthMonitor: healthMonitor),
notificationCenter: notificationCenter)

healthMonitor = HealthMonitor(dataProvider: healthMonitorDataProvider,
dateProvider: dateProvider,
networkSession: networkSession)
offlineProcessor = OfflineRequestProcessor(apiKey: apiKey,
authProvider: authProvider,
authManager: authManager,
endpoint: endpoint,
deviceMetadata: deviceMetadata,
taskScheduler: createTaskScheduler(persistenceContextProvider: persistenceContextProvider,
healthMonitor: healthMonitor!),
taskRunner: createTaskRunner(persistenceContextProvider: persistenceContextProvider,
healthMonitor: healthMonitor!),
notificationCenter: notificationCenter)


return RequestHandler(onlineProcessor: onlineProcessor,
offlineProcessor: offlineProcessor,
healthMonitor: healthMonitor,
Expand Down
2 changes: 1 addition & 1 deletion swift-sdk/Internal/RequestHandler.swift
Expand Up @@ -8,7 +8,7 @@ class RequestHandler: RequestHandlerProtocol {
init(onlineProcessor: OnlineRequestProcessor,
offlineProcessor: OfflineRequestProcessor?,
healthMonitor: HealthMonitor?,
offlineMode: Bool = true) {
offlineMode: Bool = false) {
ITBInfo()
self.onlineProcessor = onlineProcessor
self.offlineProcessor = offlineProcessor
Expand Down

0 comments on commit 641881c

Please sign in to comment.