-
Notifications
You must be signed in to change notification settings - Fork 63
/
CHANGELOG
596 lines (520 loc) · 24.7 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
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
Version 6.0.6 (2024-09-12)
--------------------------
Set negative battery levels to null in mobile context (#698)
Version 6.0.5 (2024-06-22)
--------------------------
Handle exceptions raised by the Executor during initialization of the thread pool for emitter (#694)
Fix concurrent modification when creating TrackerEvent by copying the payload (#692)
Version 6.0.4 (2024-06-05)
--------------------------
Send correct install referrer timestamps (#687)
Set serverAnonymisation more quickly (#689)
Version 6.0.3 (2024-04-18)
--------------------------
Add Subject config flag to avoid WindowManager bug (#657)
Catch more generic exceptions for InstallReferrer (#647)
Version 6.0.2 (2024-02-28)
--------------------------
Fix createTracker call hanging for 10 seconds if run on a background thread (#620)
Version 6.0.1 (2024-02-14)
--------------------------
Fix wrong screen entity info assigned for screen end event and in case events are tracked right before screen view (#673)
Add percent progress to event (#662)
Version 6.0.0 (2024-02-01)
--------------------------
Enable lifecycle autotracking by default (#651)
Update copyright notices (#669)
Add API to decorate link with user/session info (#639)
Add an option to override platform context properties (#667)
Tidy AbstractEvent internal properties (#666)
Handle errors when fetching screen resolution in Subject (#657)
Undeprecate PageView event (#665)
Fix demo crash when using R8 full mode (#652)
Add configurable limit for the maximum age and number of events in the event store and remove old events before sending (#660)
Remove optional types in event store interface (#661)
Set default thread count in Executor to match the default thread pool size in the Emitter (#659)
Remove unused threadCount property from Tracker (#659)
Fix returning error from network connection requests (#659)
Change default emit timeout from 5 seconds to 30 seconds (#658)
Update Emitter constructor to accept namespace and event store and make them immutable (#659)
Do not track the screen view again when app comes to foreground (#653)
Add screen engagement tracking of time spent and list items scrolled on a screen (#654)
Make network requests serially in network connection (#646)
Change default buffer option to single (#649)
Flush events only when the buffer is full (#648)
Version 5.6.0 (2023-10-12)
--------------------------
Add configuration to send requests with user ID to a Focal Meter endpoint (#571)
Version 5.5.0 (2023-10-02)
--------------------------
Add option to disable retrying any failed requests (#641)
Version 5.4.4 (2023-09-05)
--------------------------
Fix invalid consent document context entity in case no name or description is given (#637)
Version 5.4.3 (2023-08-25)
--------------------------
Fix network type is tracked instead of network technology when filtering mobile context parameters (#635)
Upgrade com.google.android.gms:play-services-analytics from 18.0.2 to 18.0.3
Upgrade com.android.tools:desugar_jdk_libs from 1.1.5 to 1.1.9
Upgrade androidx.preference:preference from 1.2.0 to 1.2.1
Upgrade androidx.core:core-ktx from 1.9.0 to 1.10.1
Upgrade demo app dependencies
Set signing config for demo apps
Version 5.4.2 (2023-08-08)
--------------------------
Update vendor and version of the player schema used in media tracking (#632)
Version 5.4.1 (2023-07-25)
--------------------------
Prevent crash when Locale returns invalid language code (#628)
Correctly add ecommerce entity in demo remote config (#629)
Version 5.4.0 (2023-07-12)
--------------------------
Add Snowplow ecommerce events and entities (#611)
Increase interval for updating platform context properties from 0.1s to 1s (#624)
Version 5.3.0 (2023-06-30)
--------------------------
Add media controller with APIs to track media events (#606)
Add emitter configuration support to remote configuration (#607)
Use default configuration for properties that are not configured using remote configuration (#613)
Add custom HTTP headers configuration (#276)
Truncate language in platform context entity to max 8 characters (#621)
Truncate URL scheme for page_url and page_refr properties (#616)
Remember requestCallback, customRetryForStatusCodes and onSessionUpdate set for initialized trackers after configuration updates
Version 5.2.0 (2023-06-02)
--------------------------
Track install referrer details entity along with the application install event if available (#249)
Add a filter API to plugins to decide whether to track an event or not (#608)
Add version to default remote configuration and don't update unless remote configuration is newer (#603)
Version 5.1.0 (2023-05-11)
--------------------------
Track new properties in platform context version 1-0-3 and make it configurable which properties to track (#598)
Version 5.0.1 (2023-04-24)
--------------------------
Fix adding user ID set in SubjectConfiguration to events (#595)
Version 5.0.0 (2023-04-04)
--------------------------
Add plugin example to Kotlin demo (#593)
Add default POST argument to basic createTracker method (#592)
Use Dokka for API docs (#591)
Reintroduce customContexts as a Java field and return a mutable list from entities in events (#590)
Add Jetpack Compose demo app (#586)
Version 5.0.0-beta.2 (2023-03-28)
--------------------------
Upgrade Gradle to 7.6 and lower minSdkVersion requirement to 21 (#587 and #585)
Version 4.1.2 (2023-02-15)
--------------------------
Fix crash with null pointer when accessing session (#581)
Version 5.0.0-beta.1 (2023-02-02)
--------------------------
Update copyrights to 2023 (#579)
Add ability to provide custom tracker plugins to inspect and enrich tracked events (#574)
Refactor event interface and rename contexts to entities (#573)
Migrate internal classes to Kotlin (#564)
Version 4.1.1 (2022-12-02)
--------------------------
Hardcode the anonymised session user ID (#567)
Version 5.0.0-alpha.1 (2022-11-30)
--------------------------
Migrate published API to Kotlin (#561)
Version 4.1.0 (2022-11-16)
--------------------------
Anonymise previous session ID and user identifiers in subject when user anonymisation is enabled (#549)
Add DeepLink entity referrer and url to atomic properties in ScreenView events (#553)
Fix serialization of session timeouts in remote configuration cache (#547)
Expose public constructor for ConfigurationBundle (#550)
Log an error when recreating tracker after being removed (#548)
Fix links in README (#557)
Version 4.0.0 (2022-09-01)
--------------------------
Add interface to subscribe for events tracked in Web views (#531)
Add anonymous tracking features (#540)
Return tracked event ID from the track method (#544)
Extend the onSuccess callback when setting up remote configuration to pass configuration state (#694)
Do not resume remote configuration from cache in case it has different endpoint (#533)
Fix default session timeout values to 30 minutes everywhere (#542)
Version 3.2.1 (2022-08-17)
--------------------------
Ensure english numerals are used in datetimes (#537)
Version 3.2.0 (2022-06-28)
--------------------------
Add eventIndex and firstEventTimestamp properties to client sessions (#517)
Add a customizable set of failure HTTP status codes for which collector requests should not be retried (#518)
Add support for storing cookies in NetworkConnection (#519)
Update Android target SDK version to 31 (#526)
Bump okhttp3 to 4.10.0, play-services-analytics to 18.0.1, and gson to 2.9.0 (#520)
Version 3.1.2 (2022-05-25)
--------------------------
Set log level without trackerDiagnostic (#441)
Attach LifecycleEntity before the first Background event (#512)
Attach different entity in demo global context (#514)
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