Skip to content

Commit 743f327

Browse files
committed
fixed watchOS lifecycle event handling
1 parent 05fec05 commit 743f327

File tree

1 file changed

+34
-24
lines changed

1 file changed

+34
-24
lines changed

Sources/Segment/Plugins/Platforms/watchOS/watchOSLifecycleEvents.swift

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,42 +29,52 @@ class watchOSLifecycleEvents: PlatformPlugin, watchOSLifecycle {
2929
let currentBuild = Bundle.main.infoDictionary?["CFBundleVersion"] as? String
3030

3131
if previousBuild == nil {
32-
analytics?.track(name: "Application Installed", properties: [
33-
"version": currentVersion ?? "",
34-
"build": currentBuild ?? ""
35-
])
32+
if analytics?.configuration.values.trackedApplicationLifecycleEvents.contains(.applicationInstalled) == true {
33+
analytics?.track(name: "Application Installed", properties: [
34+
"version": currentVersion ?? "",
35+
"build": currentBuild ?? ""
36+
])
37+
}
3638
} else if currentBuild != previousBuild {
37-
analytics?.track(name: "Application Updated", properties: [
38-
"previous_version": previousVersion ?? "",
39-
"previous_build": previousBuild ?? "",
39+
if analytics?.configuration.values.trackedApplicationLifecycleEvents.contains(.applicationUpdated) == true {
40+
analytics?.track(name: "Application Updated", properties: [
41+
"previous_version": previousVersion ?? "",
42+
"previous_build": previousBuild ?? "",
43+
"version": currentVersion ?? "",
44+
"build": currentBuild ?? ""
45+
])
46+
}
47+
}
48+
49+
if analytics?.configuration.values.trackedApplicationLifecycleEvents.contains(.applicationOpened) == true {
50+
analytics?.track(name: "Application Opened", properties: [
51+
"from_background": false,
4052
"version": currentVersion ?? "",
4153
"build": currentBuild ?? ""
4254
])
4355
}
4456

45-
analytics?.track(name: "Application Opened", properties: [
46-
"from_background": false,
47-
"version": currentVersion ?? "",
48-
"build": currentBuild ?? ""
49-
])
50-
5157
UserDefaults.standard.setValue(currentVersion, forKey: Self.versionKey)
5258
UserDefaults.standard.setValue(currentBuild, forKey: Self.buildKey)
5359
}
5460

5561
func applicationWillEnterForeground(watchExtension: WKExtension) {
56-
if analytics?.configuration.values.trackedApplicationLifecycleEvents == TrackedLifecycleEvent.none {
57-
return
62+
if analytics?.configuration.values.trackedApplicationLifecycleEvents.contains(.applicationOpened) == true {
63+
let currentVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
64+
let currentBuild = Bundle.main.infoDictionary?["CFBundleVersion"] as? String
65+
66+
analytics?.track(name: "Application Opened", properties: [
67+
"from_background": true,
68+
"version": currentVersion ?? "",
69+
"build": currentBuild ?? ""
70+
])
71+
}
72+
}
73+
74+
func applicationDidEnterBackground(watchExtension: WKExtension) {
75+
if analytics?.configuration.values.trackedApplicationLifecycleEvents.contains(.applicationBackgrounded) == true {
76+
analytics?.track(name: "Application Backgrounded")
5877
}
59-
60-
let currentVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
61-
let currentBuild = Bundle.main.infoDictionary?["CFBundleVersion"] as? String
62-
63-
analytics?.track(name: "Application Opened", properties: [
64-
"from_background": true,
65-
"version": currentVersion ?? "",
66-
"build": currentBuild ?? ""
67-
])
6878
}
6979
}
7080

0 commit comments

Comments
 (0)