@@ -16,31 +16,18 @@ public class AutomationSDKModule: NSObject, AirshipSDKModule {
16
16
self . components = components
17
17
}
18
18
19
- public static func load( dependencies: [ String : Any ] ) -> ( any AirshipSDKModule ) ? {
20
- // Dependencies
21
- let dataStore = dependencies [ SDKDependencyKeys . dataStore] as! PreferenceDataStore
22
- let privacyManager = dependencies [ SDKDependencyKeys . privacyManager] as! AirshipPrivacyManager
23
- let remoteData = dependencies [ SDKDependencyKeys . remoteData] as! ( any RemoteDataProtocol )
24
- let deferredResolver = dependencies [ SDKDependencyKeys . deferredResolver] as! ( any AirshipDeferredResolverProtocol )
25
- let config = dependencies [ SDKDependencyKeys . config] as! RuntimeConfig
26
- let experiments = dependencies [ SDKDependencyKeys . experimentsProvider] as! ( any ExperimentDataProvider )
27
- let sceneManager = dependencies [ SDKDependencyKeys . sceneManager] as! ( any AirshipSceneManagerProtocol )
28
- let messageSceneManager = InAppMessageSceneManager ( sceneManger: sceneManager)
29
- let airshipAnalytics = dependencies [ SDKDependencyKeys . analytics] as! ( any InternalAnalyticsProtocol )
30
- let meteredUsage = dependencies [ SDKDependencyKeys . meteredUsage] as! ( any AirshipMeteredUsageProtocol )
31
- let cache = dependencies [ SDKDependencyKeys . cache] as! ( any AirshipCache )
32
- let audienceChecker = dependencies [ SDKDependencyKeys . audienceChecker] as! ( any DeviceAudienceChecker )
33
-
19
+ public static func load( _ args: AirshiopModuleLoaderArgs ) -> ( any AirshipSDKModule ) ? {
34
20
/// Utils
35
- let remoteDataAccess = AutomationRemoteDataAccess ( remoteData: remoteData)
21
+ let messageSceneManager = InAppMessageSceneManager ( sceneManger: AirshipSceneManager . shared)
22
+ let remoteDataAccess = AutomationRemoteDataAccess ( remoteData: args. remoteData)
36
23
let assetManager = AssetCacheManager ( )
37
- let displayCoordinatorManager = DisplayCoordinatorManager ( dataStore: dataStore)
38
- let frequencyLimits = FrequencyLimitManager ( config: config)
24
+ let displayCoordinatorManager = DisplayCoordinatorManager ( dataStore: args . dataStore)
25
+ let frequencyLimits = FrequencyLimitManager ( config: args . config)
39
26
let scheduleConditionsChangedNotifier = ScheduleConditionsChangedNotifier ( )
40
- let eventRecorder = InAppEventRecorder ( airshipAnalytics: airshipAnalytics , meteredUsage: meteredUsage)
41
- let metrics = ApplicationMetrics ( dataStore: dataStore, privacyManager: privacyManager)
27
+ let eventRecorder = InAppEventRecorder ( airshipAnalytics: args . analytics , meteredUsage: args . meteredUsage)
28
+ let metrics = ApplicationMetrics ( dataStore: args . dataStore, privacyManager: args . privacyManager)
42
29
43
- let automationStore = AutomationStore ( config: config)
30
+ let automationStore = AutomationStore ( config: args . config)
44
31
45
32
let analyticsFactory = InAppMessageAnalyticsFactory (
46
33
eventRecorder: eventRecorder,
@@ -58,15 +45,15 @@ public class AutomationSDKModule: NSObject, AirshipSDKModule {
58
45
let automationPreparer = AutomationPreparer (
59
46
actionPreparer: actionPreparer,
60
47
messagePreparer: messagePreparer,
61
- deferredResolver: deferredResolver,
48
+ deferredResolver: args . deferredResolver,
62
49
frequencyLimits: frequencyLimits,
63
- audienceChecker: audienceChecker,
64
- experiments: experiments ,
50
+ audienceChecker: args . audienceChecker,
51
+ experiments: args . experimentsManager ,
65
52
remoteDataAccess: remoteDataAccess,
66
- config: config,
53
+ config: args . config,
67
54
additionalAudienceResolver: AdditionalAudienceCheckerResolver (
68
- config: config,
69
- cache: cache
55
+ config: args . config,
56
+ cache: args . cache
70
57
)
71
58
)
72
59
@@ -89,7 +76,7 @@ public class AutomationSDKModule: NSObject, AirshipSDKModule {
89
76
let feed = AutomationEventFeed (
90
77
applicationMetrics: metrics,
91
78
applicationStateTracker: AppStateTracker . shared,
92
- analyticsFeed: airshipAnalytics . eventFeed
79
+ analyticsFeed: args . analytics . eventFeed
93
80
)
94
81
feed. attach ( )
95
82
@@ -101,11 +88,11 @@ public class AutomationSDKModule: NSObject, AirshipSDKModule {
101
88
scheduleConditionsChangedNotifier: scheduleConditionsChangedNotifier,
102
89
eventFeed: feed,
103
90
triggersProcessor: AutomationTriggerProcessor ( store: automationStore) ,
104
- delayProcessor: AutomationDelayProcessor ( analytics: airshipAnalytics )
91
+ delayProcessor: AutomationDelayProcessor ( analytics: args . analytics )
105
92
)
106
93
107
94
let remoteDataSubscriber = AutomationRemoteDataSubscriber (
108
- dataStore: dataStore,
95
+ dataStore: args . dataStore,
109
96
remoteDataAccess: remoteDataAccess,
110
97
engine: engine,
111
98
frequencyLimitManager: frequencyLimits
@@ -118,7 +105,7 @@ public class AutomationSDKModule: NSObject, AirshipSDKModule {
118
105
119
106
let legacyInAppMessaging = LegacyInAppMessaging (
120
107
analytics: LegacyInAppAnalytics ( recorder: eventRecorder) ,
121
- dataStore: dataStore,
108
+ dataStore: args . dataStore,
122
109
automationEngine: engine
123
110
)
124
111
@@ -127,9 +114,9 @@ public class AutomationSDKModule: NSObject, AirshipSDKModule {
127
114
inAppMessaging: inAppMessaging,
128
115
legacyInAppMessaging: legacyInAppMessaging,
129
116
remoteDataSubscriber: remoteDataSubscriber,
130
- dataStore: dataStore,
131
- privacyManager: privacyManager,
132
- config: config
117
+ dataStore: args . dataStore,
118
+ privacyManager: args . privacyManager,
119
+ config: args . config
133
120
)
134
121
135
122
return AutomationSDKModule (
0 commit comments