Skip to content

Commit ac9705e

Browse files
committed
Removing logic which delayed syncs by 0.1 seconds. This works well when the app is in the foreground but when the app is in the background, the sync run closure never runs
1 parent b18b148 commit ac9705e

3 files changed

Lines changed: 15 additions & 25 deletions

File tree

Examples/Examples.xcodeproj/project.pbxproj

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,9 @@
329329
isa = XCBuildConfiguration;
330330
buildSettings = {
331331
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
332+
CODE_SIGN_STYLE = Manual;
332333
CURRENT_PROJECT_VERSION = 35;
334+
DEVELOPMENT_TEAM = 8SV2G8GQ6K;
333335
INFOPLIST_FILE = GroceryExpress/Info.plist;
334336
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
335337
LD_RUNPATH_SEARCH_PATHS = (
@@ -338,6 +340,7 @@
338340
);
339341
PRODUCT_BUNDLE_IDENTIFIER = com.ifttt.sdk.example;
340342
PRODUCT_NAME = "$(TARGET_NAME)";
343+
PROVISIONING_PROFILE_SPECIFIER = "SDK Example Dev";
341344
SWIFT_VERSION = 5.0;
342345
TARGETED_DEVICE_FAMILY = "1,2";
343346
};
@@ -349,7 +352,7 @@
349352
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
350353
CODE_SIGN_STYLE = Manual;
351354
CURRENT_PROJECT_VERSION = 35;
352-
DEVELOPMENT_TEAM = "";
355+
DEVELOPMENT_TEAM = 8SV2G8GQ6K;
353356
INFOPLIST_FILE = GroceryExpress/Info.plist;
354357
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
355358
LD_RUNPATH_SEARCH_PATHS = (
@@ -358,7 +361,7 @@
358361
);
359362
PRODUCT_BUNDLE_IDENTIFIER = com.ifttt.sdk.example;
360363
PRODUCT_NAME = "$(TARGET_NAME)";
361-
PROVISIONING_PROFILE_SPECIFIER = "";
364+
PROVISIONING_PROFILE_SPECIFIER = "SDK Example Dev";
362365
SWIFT_VERSION = 5.0;
363366
TARGETED_DEVICE_FAMILY = "1,2";
364367
};

IFTTT SDK/LocationService.swift

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,6 @@ final class LocationService: NSObject, SynchronizationSubscriber {
186186
private let sessionManager: RegionEventsSessionManager
187187
/// The `EventPublisher<SynchronizationTriggerEvent>` that handles publishing synchronization events to listeners
188188
private let regionEventTriggerPublisher: EventPublisher<SynchronizationTriggerEvent>
189-
/// Determines whether or not a 0.1 second delay should be applied before publishing synchronization events
190-
private let applyDelayOnSyncTrigger: Bool
191189

192190
struct Constants {
193191
static let SanityThreshold = 20
@@ -201,21 +199,18 @@ final class LocationService: NSObject, SynchronizationSubscriber {
201199
/// - connectionsRegistry: An instance of `ConnectionsRegistry` that determines which connections are currently being monitored by the SDK.
202200
/// - sessionManager: An instance of `RegionEventsSessionManager` that uploads region events to the backend.
203201
/// - eventPublisher: An instance of `EventPublisher<SynchronizationTriggerEvent>` that handles publishing sync events to listeners.
204-
/// - applyDelayOnSyncTrigger: Determines whether or not a 0.1 second delay should be applied to trigger syncs. Defaults to `true`.
205202
/// - Returns: An initialized instance of `LocationService`.
206203
init(regionsMonitor: RegionsMonitor,
207204
regionEventsRegistry: RegionEventsRegistry,
208205
connectionsRegistry: ConnectionsRegistry,
209206
sessionManager: RegionEventsSessionManager,
210-
eventPublisher: EventPublisher<SynchronizationTriggerEvent>,
211-
applyDelayOnSyncTrigger: Bool = true) {
207+
eventPublisher: EventPublisher<SynchronizationTriggerEvent>) {
212208
self.regionsMonitor = regionsMonitor
213209
self.regionEventsRegistry = regionEventsRegistry
214210
self.connectionsRegistry = connectionsRegistry
215211
self.sessionManager = sessionManager
216212
self.regionEventTriggerPublisher = eventPublisher
217213

218-
self.applyDelayOnSyncTrigger = applyDelayOnSyncTrigger
219214
super.init()
220215
}
221216

@@ -275,21 +270,14 @@ final class LocationService: NSObject, SynchronizationSubscriber {
275270
let event = RegionEvent(kind: kind, triggerSubscriptionId: region.identifier)
276271
regionEventsRegistry.add(event)
277272

278-
let closure = {
279-
let event = SynchronizationTriggerEvent(source: .regionsUpdate,
280-
completionHandler: nil)
281-
282-
self.regionEventTriggerPublisher.onNext(event)
283-
284-
if let backgroundTaskIdentifier = backgroundTaskIdentifier, backgroundTaskIdentifier != UIBackgroundTaskIdentifier.invalid {
285-
UIApplication.shared.endBackgroundTask(backgroundTaskIdentifier)
286-
}
287-
}
288-
289-
if applyDelayOnSyncTrigger {
290-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1, execute: closure)
291-
} else {
292-
closure()
273+
let triggerEvent = SynchronizationTriggerEvent(source: .regionsUpdate,
274+
completionHandler: nil)
275+
276+
self.regionEventTriggerPublisher.onNext(triggerEvent)
277+
278+
if let backgroundTaskIdentifier = backgroundTaskIdentifier,
279+
backgroundTaskIdentifier != UIBackgroundTaskIdentifier.invalid {
280+
UIApplication.shared.endBackgroundTask(backgroundTaskIdentifier)
293281
}
294282
}
295283

SDKHostAppTests/LocationServiceTests.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ class LocationServiceTests: XCTestCase {
4242
connectionsRegistry: connectionsRegistry,
4343
sessionManager: .init(networkController: regionEventsController,
4444
regionEventsRegistry: regionEventsRegistry),
45-
eventPublisher: eventPublisher,
46-
applyDelayOnSyncTrigger: false)
45+
eventPublisher: eventPublisher)
4746
}
4847

4948
override func tearDown() {

0 commit comments

Comments
 (0)