forked from snowplow/snowplow-android-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
278 lines (252 loc) · 12.5 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
Version 1.3.3 (2019-11-26)
--------------------------
Fix crash when lifecycleEvents is enabled on Tracker initialisation (#339)
Version 1.3.2 (2019-10-15)
--------------------------
Fix ScreenState incompatibility with Screen schema (#336)
Version 1.3.1 (2019-10-01)
--------------------------
Fix tracker to send foreground event at application launch (#334)
Version 1.3.0 (2019-09-11)
--------------------------
Fix database cursor usage (#330)
Comply with isLimitAdTrackingEnabled (#329)
Integrate Snowplow Micro (#318)
Trim travis setup (#324)
Remove vagrant setup (#317)
Version 1.2.1 (2019-07-31)
--------------------------
Fix sending duplicate contexts (#314)
Version 1.2.0 (2019-07-01)
--------------------------
Add ability to customize timeout for Emitter (#311)
Set emitter status when event store not instantiated (#306)
Update Travis setup (#309)
Add support for global contexts (#307)
Version 1.1.0 (2019-05-06)
--------------------------
Add instrumented tests to debug coverage (#302)
Add support for application contexts (#162)
Add a basic application install event (#299)
Update screenview events with auto-tracking and add screen contexts (#298)
Version 1.0.1 (2019-02-20)
--------------------------
Update documentation link in README.md (#291)
Add script for generating API Reference (#293)
Bump Gradle to 4.10 (#292)
Version 1.0.0 (2019-01-23)
--------------------------
Output maximum logging detail in demo app (#279)
Perform blocking operations in the background (#159)
Enforce strict mode for demo app (#278)
Bump versions in build.gradle for demo app (#284)
Bump Android Gradle to 3.2.1 (#280)
Bump versions of build tools in Travis (#283)
Add option for callbacks on session transitions (#281)
Add setter for session context boolean (#282)
Use ProcessLifecycleOwner to detect foreground and background (#272)
Update to Android Target API level 26 (#273)
Add ability to momentarily suspend session checking (#271)
Add ability to share an OkHttpClient instance with Emitter (#269)
Add Futures for loading of Emitter and Session (#285)
Update to Android Target API level 28 (#287)
Fix Travis license issue (#288)
Version 0.8.0 (2018-06-20)
--------------------------
Fix LifecycleHandler callbacks being unregistered on activity destruction (#266)
Add ability to change custom context sent by LifecycleHandler (#267)
Version 0.7.0 (2018-05-10)
--------------------------
Make tracker.setLifecycleHandler take a Context instead of an Activity (#224)
Add a method to start a new session (#226)
Add ability to specify TLS protocols to use for emitting events (#245)
Add identifyUser as alias for setUserId (#254)
Add trackConsentGranted and trackConsentWithdrawn methods (#255)
Update README markdown in accordance with CommonMark (#256)
Reset firstId even if app is in the foreground (#257)
Fix outdated and broken Travis configuration (#258)
Unregister LifecycleHandler callbacks on activity destruction (#259)
Add the ability to suspend and resume a LifecycleHandler (#261)
Raise minimum supported Android API to level 14 (#262)
Add support for custom contexts to LifecycleHandler (#263)
Version 0.6.2 (2017-01-13)
--------------------------
Ensure we do not pass invalid information to application_error event (#237)
Mobile context: offline events not being recorded as such (#239)
GeoLocation context: changes in position not being reflected (#240)
Bump Android Gradle to 2.2.3 (#241)
Fix logger crashing when a value contains '%' (#238)
Update copyright to 2015-2017 (#243)
Ensure vagrant environment can build and test tracker (#227)
Version 0.6.1 (2016-10-03)
--------------------------
Ensure mobile_context only contains accepted enum values (#232)
Do not include geolocation permissions in tracker manifest (#229)
Bump Gradle Version to 2.2.0 (#230)
Version 0.6.0 (2016-08-29)
--------------------------
Added network type and technology to mobile context (#180)
Added firstEventId to client_session context (#160)
Added code coverage to project (#205)
Added CI/CD to project (#213)
Added Bintray credentials to .travis.yml (#212)
Added support for attaching true timestamp for events (#196)
Bumped geolocation_context to 1-1-0 (#203)
Stopped incrementing SessionIndex while application in background (#192)
Removed RxJava and merge Classic into core (#187)
Removed trailing newline character from base64 encoding (#207)
Removed `Emitter:performSyncEmit` as no longer used (#209)
Converted removal of events from database into a single query (#177)
Renamed TimingWithCategory to Timing (#164)
Renamed Unstructured Event to SelfDescribing Event (#190)
Upgraded OkHttp from 2 to 3 (#183)
Refactored how extra contexts are attached to events (#204)
Ensured Timing event does not set a null or empty value for `label` (#210)
Forced singleton pattern for the Tracker (#175)
Moved EventStore serialize & deserialize functions to Util (#211)
Util.getAdvertisingId(Context) e.getCause() can be null (#191)
Do not send "co/cx" when there are no contexts to send (#194)
SelfDescribingJson `setData` has invalid equality check (#208)
Automatically track fatal/uncaught application exceptions (#202)
Automatically track activity resume/pause lifecycle events (#206)
Version 0.5.4 (2016-03-02)
--------------------------
Core: fixed input string \"null\" is not a valid UUID with previousSessionId on Android Versions lower than KitKat (#185)
Add speed optimisations to Vagrantfile (#188)
Version 0.5.3 (2015-11-22)
--------------------------
Core: fixed session context fails on first session (#176)
Core: fixed adding STM to events is not in order (#169)
Added comments to demo-app's build.gradle to explain why it shouldn't be copied (#158)
Removed chmod +x ./ci/wait_for_emulator from README (#157)
Version 0.5.2 (2015-10-07)
--------------------------
Core: Timing event field is incorrectly converted to a String (#168)
Version 0.5.1 (2015-09-04)
--------------------------
Core: fixed eid and dtm being incorrectly added to screen_view and timing context (#163)
Common: fixed test environment imposter path (#161)
Version 0.5.0 (2015-07-28)
--------------------------
App: bumped version to 0.2.0 (#145)
Common: added release and license buttons to README (#129)
Common: updated build.gradle to also publish javadoc (#100)
Common: renamed session pause and resume functions (#154)
Core: added ability to set event ID in Event builder (#59)
Core: added in-client sessionization (#37)
Core: created an option to opt-out of data collection (#6)
Core: emitter sometimes fails to timeout in certain scenarios (#138)
Core: made session checking interval a Tracker option (#137)
Core: deviceManufacturer not getting set if it is unavailable (#135)
Core: added an event builder to simplify making events (#133)
Core: fixed issue with Events sharing one context object (#143)
Core: enabled writeAheadLogging for the SQLite database (#141)
Core: made sessionization optional (#147)
Core: ensured that ThreadPool is minimum of 2 in size (#150)
Core: fixed event required fields preconditions (#149)
Core: added TimeUnit builder argument to define all time based measurements upon (#151)
Core: added varargs argument as overloaded option for `.items` in EcommerceTransaction builder (#152)
Core: renamed opt in/out functions (#153)
Core: ensured the emitter is stopped before updating emitter settings (#155)
Core: resumeSessionChecking should not take any arguments (#156)
RxJava: stopped using scheduler.io() in favour of a controlled thread pool (#140)
RxJava: fixed emitter not using correct thread pool (#136)
RxJava/Classic: updated event sending tests to use okhttp mocks over mountebank (#62)
RxJava/Classic: reduced memory footprint of emitter by setting large variables to null after use (#144)
Core/RxJava/Classic: converted event sending & event removal into asynchronous tasks (#139)
Version 0.4.0 (2015-06-21)
--------------------------
Fixed ti_qu being converted from an int to a double (#127)
Converted all Tracker.trackXXX functions into runnables (#125)
Converted all Tracker.trackXXX functions into RxJava Observables (#86)
Fixed classic emitter status reporting (#124)
Added emitter flush function (#123)
Added emitter setter functions to update URI (#122)
Added method to get the Idfa (#121)
Gracefully handling lack of getAdvertisingIdInfo (#118)
Added batching based on payload size (#110)
Bumped payload_data version to 1-0-3 (#109)
Added device sent time on outbound events (#108)
Fixed trackStructuredEvent() misleading docs (#106)
Fixed trackStructuredEvent value should be a Float or Double, not int (#101)
Created SubjectBuilder to make creating a new subject easier (#98)
Added builder option to Emitter which allows the EMITTER_EMPTY_EVENTS_LIMIT to be set (#97)
Added builder option to Emitter which allows the EMITTER_SEND_LIMIT to be set (#96)
Added builder option to Emitter which allows the EMITTER_TICK to be set (#95)
Added builder option to Tracker which allows custom logging modes to be set (#94)
Moved mountebank imposter into a static file in test/resources (#90)
Added user timings event (#63)
Added test app (#56)
Using Google Play Services' analytic-specific library (6.5+) (#34)
Version 0.3.1 (2015-06-02)
--------------------------
Can now process immutable lists of custom contexts (#115)
Changed Debug mode to be off by default (#112)
Fixed NullPointerException when subject is null (#107)
Fixed java.lang.IllegalStateException in setAdvertisingID (#105)
Version 0.3.0 (2014-02-18)
--------------------------
Added new BufferOption for heavier event sending (#85)
Added function for users to update the DevicePlatform after Tracker creation (#82)
Added Logger class to easily handle debug messages for Logcat (#81)
Added new dependencies to gradle.build scripts (#77)
Added Mountebank Testing support (#75)
Added setUseragent to Subject class (#70)
Added setIpAddress to Subject class (#69)
Added setDomainUserId to Subject class (#68)
Added setNetworkUserId to Subject class (#67)
Added Emitter option to use either HTTP or HTTPS for event sending (#66)
Added permission to AndroidManifest for checking online status (#73)
Added function to check if the device is online before attempting to send (#72)
Removed potential memory leak from SQLite database implementation (#76)
Removed obsolete dependencies from gradle.build scripts (#74)
Removed dependency on Java Tracker Core (#57)
Updated contexts schema to 1-0-1 (#65)
Updated payload data schema to 1-0-2 (#64)
Replaced Base64.java with Android Base64 implementation (#58)
Fixed Uri.Builder implementation to allow for Port Keys (#71)
Cleaned-up and Refactored Tracker (#84)
Refactored AsyncTask to RxJava (#49)
Refactored HttpClient to OkHttp (#48)
Made the default Emitter method POST for Android (#27)
Ensured old Emitter is shutdown before appending new Emitter to Tracker (#83)
Extended Android Test Suite (#80)
Reordered package/class structure to be simpler (#78)
Changed package from com.snowplowanalytics.snowplow.tracker.android to com.snowplowanalytics.snowplow.tracker(#61)
Moved Version.java into gitignored sub-package(#60)
Emitter.addToBuffer was doing a sync write to database (#53)
Emitter.addToBuffer was leading to network on UI thread if set to immediately flush (#52)
Advertising ID was not being fetched before events sent (#51)
Advertising ID retrieval was creating new thread (#50)
Refactored SchemaPayload to make the API easier to use and understand (#89)
Version 0.2.0 (2014-12-27)
--------------------------
Added dedicated Vagrant setup (#40)
Bumped Core version to 0.2.0 (#42)
Added warning that Version.java is auto-generated (#45)
Updated to latest gradle tools and plugin, thanks @hamidp! (#39)
Added GET and POST logging in the Emitter, thanks @lixiaoyi! (#38)
Fixed Gradle Dynamic Version linting warning (#46)
Targeted latest SDK version (21) (#47)
Added Quickstart section to README (#43)
Updated CHANGELOG with missing tickets (#41)
Version 0.1.3 (2014-11-25)
--------------------------
Updated Java Tracker Core to 0.1.4 (#33)
Updated completePayload to take timestamp as a long (#35)
Fixed Emitter NPE when device is not connected (#32)
Version 0.1.2 (2014-09-19)
--------------------------
Fixed Emitter encoding the slash in /tp2 (#28)
Changed SLF4J logging to use Android logger (#19)
Version 0.1.1 (2014-09-11)
--------------------------
Bumped Core version to 0.1.3 (#22)
Fixed sending a flushBuffer twice stops the database from removing pending flags on events (#24)
Fixed addToBuffer doesn't always hit flushBuffer (#20)
Fixed data types for geolocation_context (#17)
Fixed tracker failing to retrieve Advertising ID if Play Services isn't available (#16)
Fixed library dependency warnings in Android Studio (#15)
Version 0.1.0 (2014-09-01)
--------------------------
Initial release