forked from snowplow/snowplow-android-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
418 lines (371 loc) · 17.2 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
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
Version 3.1.1 (2022-03-09)
--------------------------
Enable updating collector endpoint while Emitter is running (#508)
Version 3.1.0 (2022-02-25)
--------------------------
Update copyright headers to 2022 (#502)
Update links to v3 docs in README (#498)
Add pause and resume to EmitterController (#505)
Check session for background event using foreground timeout (#499)
Add session callback (#500)
Version 3.0.3 (2022-01-05)
--------------------------
Fix multiple ScreenContexts on ScreenView events (#495)
Version 3.0.2 (2021-12-23)
--------------------------
Fix updating IDFA during app runtime (#492)
Version 3.0.1 (2021-12-17)
--------------------------
Do not allow multiple state machines with the same ID (#489)
Version 3.0.0 (2021-11-23)
--------------------------
Fix Copyright notice in LICENSE file (#483)
Remove v1 API (#484)
Allow campaign enrichment with DeepLinkReceived events (#480)
Add event for remote and local notifications (#478)
Add memory, battery and storage info to mobile context (#476)
Add convenient methods for DeepLinkReceived event (#474)
Add lifecycle context to indicate app state when the event is tracked (#471)
Capture campaign attribution data from deep links (#470)
Add tracker state management (#468)
Version 2.2.1 (2021-08-16)
--------------------------
Fix Session UserID not consistent among tracker instances (#466)
Version 2.2.0 (2021-07-16)
--------------------------
Set amended v_tracker indicating wrapper tracker version (#465)
Remove bufferOption tests (#464)
Set application install timestamp on device timestamp field (#462)
Version 2.1.1 (2021-06-24)
--------------------------
Fix Gdpr context being tracked without enabling it (#457)
Version 2.1.0 (2021-06-18)
--------------------------
Fix trueTimestamp not set by SelfDescribing builder (#451)
Fix screenView autotracking unable to send events (#455)
Fix missing base64encoding in remote config (#454)
Add remote configuration (#452)
Version 2.0.1 (2021-05-12)
--------------------------
Add SubjectController to update userId (#447)
Version 2.0.0 (2021-04-27)
--------------------------
Set lifecycle tracking off by default (#443)
Bump min Android API to 21+ (#445)
Fix crash with OkHttp 4.0.0 on API-30 (#446)
Update README (#369)
Fix crash on demo app on API 30 (#438)
Publish to MavenCentral (#436)
Fix StrictMode alerts (#434)
Remove protocol from NetworkController and NetworkConnection (#432)
Store sessions info separately per tracker namespace (#430)
Fix OkHttpClient sslSocketFactory always overriden (#417)
Add API reference documentation for configurations and controllers (#428)
Allow multiple instances of the tracker (#426)
Create API for v.2.0 (#422)
Add Nullability annotations to methods and parameters (#420)
Migrate to AndroidX (#411)
Bump min Android API to 16+ (#349)
Version 1.7.1 (2020-10-02)
--------------------------
Cannot provide OkHttp client when setting up Emitter (#414)
Version 1.7.0 (2020-09-23)
--------------------------
Session storageMechanism is marked SQLITE but it's not (#347)
Make session uuid rotation dependant on events being tracked (#366)
Version 1.6.0 (2020-09-01)
--------------------------
Emitter refactoring (#409)
Report logs to the app (#407)
Version 1.5.0 (2020-07-02)
--------------------------
Deprecate onlyTrackLabelledScreens option (#401)
Fix importing of kotlin on gradle (#396)
Fix duplication of contexts when the event is used multiple times (#397)
Background threads don't report exceptions (#394)
CI script improvements (#387)
Renew event ID when event object is reused (#390)
Add snyk monitoring to repository (#388)
Events processing refactoring (#381)
Bump Gradle to 6.1.1 (#386)
Add code coverage setting on build script (#385)
Update all copyright notices to 2020 (#383)
Switch README badge to use Github Actions for build information (#380)
Version 1.4.2 (2020-05-28)
--------------------------
Move from Travis CI to GitHub Actions (#375)
Fix race condition on tests (#376)
Fix crash caused by InstallTracker component (#377)
Version 1.4.1 uses AndroidX instead of Support library (#373)
Fix broken links to documentation (#368)
Version 1.4.1 (2020-03-27)
--------------------------
Fix flaky tests (#365)
ScreenView do not include previous screen state (#363)
Bump target Android API to 29 (#357)
Version 1.4.0 (2020-03-02)
--------------------------
Add tracker's error reporting (#343)
IAB enrichment treats Android tracker events as spider-generated (#359)
Bump target Android API to 29 (#357)
Add support for GDPR context (#312)
Make POST path of Emitter configurable (#319)
Cannot unset user id from subject (#353)
Version 1.3.5 (2020-02-05)
--------------------------
Fix screen context not correctly updated on screenView events (#350)
Version 1.3.4 (2020-01-30)
--------------------------
Session userId renewed for the same user (#345)
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