@@ -20,20 +20,21 @@ protocol DependencyContainerProtocol {
2020
2121 func createInAppFetcher( apiClient: ApiClientProtocol ) -> InAppFetcherProtocol
2222 func createPersistenceContextProvider( ) -> IterablePersistenceContextProvider ?
23- var offlineMode : Bool { get }
2423 func createRequestHandler( apiKey: String ,
2524 config: IterableConfig ,
2625 endPoint: String ,
2726 authProvider: AuthProvider ? ,
2827 authManager: IterableInternalAuthManagerProtocol ,
29- deviceMetadata: DeviceMetadata ) -> RequestHandlerProtocol
28+ deviceMetadata: DeviceMetadata ,
29+ offlineMode: Bool ) -> RequestHandlerProtocol
3030}
3131
3232extension DependencyContainerProtocol {
3333 func createInAppManager( config: IterableConfig ,
3434 apiClient: ApiClientProtocol ,
35+ requestHandler: RequestHandlerProtocol ,
3536 deviceMetadata: DeviceMetadata ) -> IterableInternalInAppManagerProtocol {
36- InAppManager ( apiClient : apiClient ,
37+ InAppManager ( requestHandler : requestHandler ,
3738 deviceMetadata: deviceMetadata,
3839 fetcher: createInAppFetcher ( apiClient: apiClient) ,
3940 displayer: inAppDisplayer,
@@ -60,31 +61,30 @@ 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 , * ) {
65- return RequestHandler ( onlineCreator: { [ weak authProvider] in
66- OnlineRequestProcessor ( apiKey: apiKey,
67+ let onlineProcessor = OnlineRequestProcessor ( apiKey: apiKey,
68+ authProvider: authProvider,
69+ authManager: authManager,
70+ endPoint: endPoint,
71+ networkSession: networkSession,
72+ deviceMetadata: deviceMetadata,
73+ dateProvider: dateProvider)
74+ let offlineProcessor : OfflineRequestProcessor ?
75+ if let persistenceContextProvider = createPersistenceContextProvider ( ) {
76+ offlineProcessor = OfflineRequestProcessor ( apiKey: apiKey,
6777 authProvider: authProvider,
6878 authManager: authManager,
6979 endPoint: endPoint,
70- networkSession: networkSession,
7180 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)
81+ taskScheduler: createTaskScheduler ( persistenceContextProvider: persistenceContextProvider) ,
82+ taskRunner: createTaskRunner ( persistenceContextProvider: persistenceContextProvider) ,
83+ notificationCenter: notificationCenter)
84+ } else {
85+ offlineProcessor = nil
86+ }
87+ return RequestHandler ( onlineProcessor: onlineProcessor, offlineProcessor: offlineProcessor, offlineMode: offlineMode)
8888 } else {
8989 return LegacyRequestHandler ( apiKey: apiKey,
9090 authProvider: authProvider,
@@ -125,7 +125,6 @@ struct DependencyContainer: DependencyContainerProtocol {
125125 InAppFetcher ( apiClient: apiClient)
126126 }
127127
128- let offlineMode = false
129128 let dateProvider : DateProviderProtocol = SystemDateProvider ( )
130129 let networkSession : NetworkSessionProtocol = URLSession ( configuration: . default)
131130 let notificationStateProvider : NotificationStateProviderProtocol = SystemNotificationStateProvider ( )
0 commit comments