forked from snowplow/snowplow-android-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
186 lines (172 loc) · 8.99 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
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