@@ -28,10 +28,6 @@ class macOSLifecycleEvents: PlatformPlugin, macOSLifecycle {
28
28
// Make sure we aren't double calling application:didFinishLaunchingWithOptions
29
29
// by resetting the check at the start
30
30
_didFinishLaunching. set ( true )
31
-
32
- if analytics? . configuration. values. trackApplicationLifecycleEvents == false {
33
- return
34
- }
35
31
36
32
let previousVersion = UserDefaults . standard. string ( forKey: Self . versionKey)
37
33
let previousBuild = UserDefaults . standard. string ( forKey: Self . buildKey)
@@ -40,64 +36,63 @@ class macOSLifecycleEvents: PlatformPlugin, macOSLifecycle {
40
36
let currentBuild = Bundle . main. infoDictionary ? [ " CFBundleVersion " ] as? String
41
37
42
38
if previousBuild == nil {
43
- analytics? . track ( name: " Application Installed " , properties: [
44
- " version " : currentVersion ?? " " ,
45
- " build " : currentBuild ?? " "
46
- ] )
39
+ if analytics? . configuration. values. trackedApplicationLifecycleEvents. contains ( . applicationInstalled) == true {
40
+ analytics? . track ( name: " Application Installed " , properties: [
41
+ " version " : currentVersion ?? " " ,
42
+ " build " : currentBuild ?? " "
43
+ ] )
44
+ }
47
45
} else if currentBuild != previousBuild {
48
- analytics? . track ( name: " Application Updated " , properties: [
49
- " previous_version " : previousVersion ?? " " ,
50
- " previous_build " : previousBuild ?? " " ,
46
+ if analytics? . configuration. values. trackedApplicationLifecycleEvents. contains ( . applicationUpdated) == true {
47
+ analytics? . track ( name: " Application Updated " , properties: [
48
+ " previous_version " : previousVersion ?? " " ,
49
+ " previous_build " : previousBuild ?? " " ,
50
+ " version " : currentVersion ?? " " ,
51
+ " build " : currentBuild ?? " "
52
+ ] )
53
+ }
54
+ }
55
+
56
+ if analytics? . configuration. values. trackedApplicationLifecycleEvents. contains ( . applicationOpened) == true {
57
+ analytics? . track ( name: " Application Opened " , properties: [
58
+ " from_background " : false ,
51
59
" version " : currentVersion ?? " " ,
52
60
" build " : currentBuild ?? " "
53
61
] )
54
62
}
55
-
56
- analytics? . track ( name: " Application Opened " , properties: [
57
- " from_background " : false ,
58
- " version " : currentVersion ?? " " ,
59
- " build " : currentBuild ?? " "
60
- ] )
61
-
63
+
62
64
UserDefaults . standard. setValue ( currentVersion, forKey: Self . versionKey)
63
65
UserDefaults . standard. setValue ( currentBuild, forKey: Self . buildKey)
64
66
}
65
67
66
68
func applicationDidUnhide( ) {
67
- if analytics? . configuration. values. trackApplicationLifecycleEvents == false {
68
- return
69
+ if analytics? . configuration. values. trackedApplicationLifecycleEvents. contains ( . applicationUnhidden) == true {
70
+ let currentVersion = Bundle . main. infoDictionary ? [ " CFBundleShortVersionString " ] as? String
71
+ let currentBuild = Bundle . main. infoDictionary ? [ " CFBundleVersion " ] as? String
72
+
73
+ analytics? . track ( name: " Application Unhidden " , properties: [
74
+ " from_background " : true ,
75
+ " version " : currentVersion ?? " " ,
76
+ " build " : currentBuild ?? " "
77
+ ] )
69
78
}
70
-
71
- let currentVersion = Bundle . main. infoDictionary ? [ " CFBundleShortVersionString " ] as? String
72
- let currentBuild = Bundle . main. infoDictionary ? [ " CFBundleVersion " ] as? String
73
-
74
- analytics? . track ( name: " Application Unhidden " , properties: [
75
- " from_background " : true ,
76
- " version " : currentVersion ?? " " ,
77
- " build " : currentBuild ?? " "
78
- ] )
79
79
}
80
80
81
81
func applicationDidHide( ) {
82
- if analytics? . configuration. values. trackApplicationLifecycleEvents == false {
83
- return
82
+ if analytics? . configuration. values. trackedApplicationLifecycleEvents . contains ( . applicationHidden ) == true {
83
+ analytics ? . track ( name : " Application Hidden " )
84
84
}
85
-
86
- analytics? . track ( name: " Application Hidden " )
87
85
}
88
86
func applicationDidResignActive( ) {
89
- if analytics? . configuration. values. trackApplicationLifecycleEvents == false {
90
- return
87
+ if analytics? . configuration. values. trackedApplicationLifecycleEvents . contains ( . applicationBackgrounded ) == true {
88
+ analytics ? . track ( name : " Application Backgrounded " )
91
89
}
92
-
93
- analytics? . track ( name: " Application Backgrounded " )
94
90
}
95
91
96
92
func applicationDidBecomeActive( ) {
97
- if analytics? . configuration. values. trackApplicationLifecycleEvents == false {
93
+ if analytics? . configuration. values. trackedApplicationLifecycleEvents . contains ( . applicationForegrounded ) == false {
98
94
return
99
95
}
100
-
101
96
analytics? . track ( name: " Application Foregrounded " )
102
97
103
98
// Lets check if we skipped application:didFinishLaunchingWithOptions,
@@ -109,11 +104,9 @@ class macOSLifecycleEvents: PlatformPlugin, macOSLifecycle {
109
104
}
110
105
111
106
func applicationWillTerminate( ) {
112
- if analytics? . configuration. values. trackApplicationLifecycleEvents == false {
113
- return
107
+ if analytics? . configuration. values. trackedApplicationLifecycleEvents . contains ( . applicationTerminated ) == true {
108
+ analytics ? . track ( name : " Application Terminated " )
114
109
}
115
-
116
- analytics? . track ( name: " Application Terminated " )
117
110
}
118
111
}
119
112
0 commit comments