Skip to content

Commit 040f525

Browse files
authored
Merge pull request #739 from Iterable/MOB-7734-embedded-config
[MOB-7733] doesn't fetch embedded messages by default, adds a config option
2 parents 6f44e0f + 1b60bb2 commit 040f525

File tree

4 files changed

+34
-14
lines changed

4 files changed

+34
-14
lines changed

swift-sdk/Internal/DependencyContainerProtocol.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ extension DependencyContainerProtocol {
6262
urlDelegate: config.urlDelegate,
6363
customActionDelegate: config.customActionDelegate,
6464
urlOpener: urlOpener,
65-
allowedProtocols: config.allowedProtocols)
65+
allowedProtocols: config.allowedProtocols,
66+
enableEmbeddedMessaging: config.enableEmbeddedMessaging)
6667
}
6768

6869
func createRequestHandler(apiKey: String,

swift-sdk/Internal/IterableEmbeddedManager.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@ class IterableEmbeddedManager: NSObject, IterableInternalEmbeddedManagerProtocol
1414
urlDelegate: IterableURLDelegate?,
1515
customActionDelegate: IterableCustomActionDelegate?,
1616
urlOpener: UrlOpenerProtocol,
17-
allowedProtocols: [String]) {
17+
allowedProtocols: [String],
18+
enableEmbeddedMessaging: Bool) {
1819
ITBInfo()
1920

2021
self.apiClient = apiClient
2122
self.urlDelegate = urlDelegate
2223
self.customActionDelegate = customActionDelegate
2324
self.urlOpener = urlOpener
2425
self.allowedProtocols = allowedProtocols
26+
self.enableEmbeddedMessaging = enableEmbeddedMessaging
2527

2628
super.init()
2729
addForegroundObservers()
@@ -130,6 +132,7 @@ class IterableEmbeddedManager: NSObject, IterableInternalEmbeddedManagerProtocol
130132
private var messages: [Int: [IterableEmbeddedMessage]] = [:]
131133
private var listeners: NSHashTable<IterableEmbeddedUpdateDelegate> = NSHashTable(options: [.weakMemory])
132134
private var trackedMessageIds: Set<String> = Set()
135+
private var enableEmbeddedMessaging: Bool
133136

134137
private func addForegroundObservers() {
135138
NotificationCenter.default.addObserver(self,
@@ -224,6 +227,8 @@ class IterableEmbeddedManager: NSObject, IterableInternalEmbeddedManagerProtocol
224227

225228
extension IterableEmbeddedManager: EmbeddedNotifiable {
226229
public func syncMessages(completion: @escaping () -> Void) {
227-
retrieveEmbeddedMessages(completion: completion)
230+
if (enableEmbeddedMessaging) {
231+
retrieveEmbeddedMessages(completion: completion)
232+
}
228233
}
229234
}

swift-sdk/IterableConfig.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,7 @@ public class IterableConfig: NSObject {
127127

128128
/// Sets data region which determines data center and endpoints used by the SDK
129129
public var dataRegion: String = IterableDataRegion.US
130+
131+
/// Allows for fetching embedded messages.
132+
public var enableEmbeddedMessaging = false
130133
}

tests/unit-tests/EmbeddedManagerTests.swift

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ final class EmbeddedManagerTests: XCTestCase {
1818
urlDelegate: nil,
1919
customActionDelegate: nil,
2020
urlOpener: MockUrlOpener(),
21-
allowedProtocols: [])
21+
allowedProtocols: [],
22+
enableEmbeddedMessaging: true)
2223

2324
let view1 = ViewWithUpdateDelegate(
2425
onMessagesUpdatedCallback: {
@@ -42,7 +43,8 @@ final class EmbeddedManagerTests: XCTestCase {
4243
urlDelegate: nil,
4344
customActionDelegate: nil,
4445
urlOpener: MockUrlOpener(),
45-
allowedProtocols: [])
46+
allowedProtocols: [],
47+
enableEmbeddedMessaging: true)
4648
XCTAssertEqual(manager.getMessages().count, 0)
4749
}
4850
func testGetMessagesForPlacement() {
@@ -57,7 +59,8 @@ final class EmbeddedManagerTests: XCTestCase {
5759
urlDelegate: nil,
5860
customActionDelegate: nil,
5961
urlOpener: MockUrlOpener(),
60-
allowedProtocols: [])
62+
allowedProtocols: [],
63+
enableEmbeddedMessaging: true)
6164

6265
manager.syncMessages { }
6366

@@ -85,7 +88,8 @@ final class EmbeddedManagerTests: XCTestCase {
8588
urlDelegate: nil,
8689
customActionDelegate: nil,
8790
urlOpener: MockUrlOpener(),
88-
allowedProtocols: [])
91+
allowedProtocols: [],
92+
enableEmbeddedMessaging: true)
8993

9094
let view = ViewWithUpdateDelegate(
9195
onMessagesUpdatedCallback: {
@@ -117,7 +121,8 @@ final class EmbeddedManagerTests: XCTestCase {
117121
urlDelegate: nil,
118122
customActionDelegate: nil,
119123
urlOpener: MockUrlOpener(),
120-
allowedProtocols: [])
124+
allowedProtocols: [],
125+
enableEmbeddedMessaging: true)
121126

122127
manager.syncMessages {
123128
syncMessagesExpectation.fulfill()
@@ -139,7 +144,8 @@ final class EmbeddedManagerTests: XCTestCase {
139144
urlDelegate: nil,
140145
customActionDelegate: nil,
141146
urlOpener: MockUrlOpener(),
142-
allowedProtocols: [])
147+
allowedProtocols: [],
148+
enableEmbeddedMessaging: true)
143149

144150
let view = ViewWithUpdateDelegate(
145151
onMessagesUpdatedCallback: nil,
@@ -162,7 +168,8 @@ final class EmbeddedManagerTests: XCTestCase {
162168
urlDelegate: nil,
163169
customActionDelegate: nil,
164170
urlOpener: MockUrlOpener(),
165-
allowedProtocols: [])
171+
allowedProtocols: [],
172+
enableEmbeddedMessaging: true)
166173

167174
var delegate1Called = false
168175
var delegate2Called = false
@@ -195,7 +202,8 @@ final class EmbeddedManagerTests: XCTestCase {
195202
urlDelegate: nil,
196203
customActionDelegate: nil,
197204
urlOpener: MockUrlOpener(),
198-
allowedProtocols: [])
205+
allowedProtocols: [],
206+
enableEmbeddedMessaging: true)
199207

200208
var delegateCalled = false
201209

@@ -243,7 +251,8 @@ final class EmbeddedManagerTests: XCTestCase {
243251
urlDelegate: nil,
244252
customActionDelegate: nil,
245253
urlOpener: MockUrlOpener(),
246-
allowedProtocols: [])
254+
allowedProtocols: [],
255+
enableEmbeddedMessaging: true)
247256

248257
let updateDelegate = ViewWithUpdateDelegate(
249258
onMessagesUpdatedCallback: {
@@ -270,7 +279,8 @@ final class EmbeddedManagerTests: XCTestCase {
270279
urlDelegate: nil,
271280
customActionDelegate: nil,
272281
urlOpener: MockUrlOpener(),
273-
allowedProtocols: [])
282+
allowedProtocols: [],
283+
enableEmbeddedMessaging: true)
274284
manager?.onDeinit = {
275285
deinitExpectation.fulfill()
276286
}
@@ -289,7 +299,8 @@ final class EmbeddedManagerTests: XCTestCase {
289299
urlDelegate: nil,
290300
customActionDelegate: nil,
291301
urlOpener: MockUrlOpener(),
292-
allowedProtocols: [])
302+
allowedProtocols: [],
303+
enableEmbeddedMessaging: true)
293304

294305
let mockDelegate = ViewWithUpdateDelegate(
295306
onMessagesUpdatedCallback: {

0 commit comments

Comments
 (0)