Skip to content

Releases: snowplow/snowplow-android-tracker

Snowplow Android Tracker v0.5.2

07 Oct 18:46
Compare
Choose a tag to compare

Fixes a bug in the Timing event.

Bug fixes

  • Core: Timing event field is incorrectly converted to a String (#168)

Snowplow Android Tracker v0.5.1

04 Sep 11:42
Compare
Choose a tag to compare

Fixing a bug created by the change to using Event Builders.

Bug fixes

  • Core: Fixed eid and dtm being incorrectly added to screen_view and timing context (#163)

Testing

  • Common: Fixed test environment imposter path (#161)

Snowplow Android Tracker v0.5.0

28 Jul 14:12
Compare
Choose a tag to compare

Performance improvements and new Builder for events

App

  • Bumped version to 0.2.0 (#145)

Common

  • Added release and license buttons to README (#129)
  • Updated build.gradle to also publish javadoc (#100)
  • Renamed session pause and resume functions (#154)
  • Added ability to set event ID in Event builder (#59)
  • Added in-client sessionization (#37)
  • Created an option to opt-out of data collection (#6)
  • Emitter sometimes fails to timeout in certain scenarios (#138)
  • Made session checking interval a Tracker option (#137)
  • deviceManufacturer not getting set if it is unavailable (#135)
  • Added an event builder to simplify making events (#133)
  • Fixed issue with Events sharing one context object (#143)
  • Enabled writeAheadLogging for the SQLite database (#141)
  • Made sessionization optional (#147)
  • Ensured that ThreadPool is minimum of 2 in size (#150)
  • Fixed event required fields preconditions (#149)
  • Added TimeUnit builder argument to define all time based measurements upon (#151)
  • Added varargs argument as overloaded option for .items in EcommerceTransaction builder (#152)
  • Renamed opt in/out functions (#153)
  • Ensured the emitter is stopped before updating emitter settings (#155)
  • resumeSessionChecking should not take any arguments (#156)

RxJava

  • Stopped using scheduler.io() in favour of a controlled thread pool (#140)
  • Fixed emitter not using correct thread pool (#136)

RxJava/Classic

  • Updated event sending tests to use okhttp mocks over mountebank (#62)
  • 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)

Snowplow Android Tracker v0.4.0

21 Jun 19:44
Compare
Choose a tag to compare

Split the tracker out into Classic and RxJava versions

Bug fixes

  • Fixed ti_qu being converted from an int to a double (#127)
  • Fixed classic emitter status reporting (#124)
  • Fixed trackStructuredEvent() misleading docs (#106)
  • Fixed trackStructuredEvent value should be a Float or Double, not int (#101)
  • Gracefully handling lack of getAdvertisingIdInfo (#118)

New features

  • Added emitter setter functions to update URI (#122)
  • Added method to get the Idfa (#121)
  • Added device sent time on outbound events (#108)
  • Added user timings event (#63)
  • 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)

Better asynchronous support

  • Converted all Tracker.trackXXX functions into runnables (#125)
  • Converted all Tracker.trackXXX functions into RxJava Observables (#86)
  • Added emitter flush function (#123)
  • Added batching based on payload size (#110)

Under the hood

  • Bumped payload_data version to 1-0-3 (#109)
  • Using Google Play Services' analytic-specific library (6.5+) (#34)

Documentation, testing and help

  • Moved mountebank imposter into a static file in test/resources (#90)
  • Added test app (#56)

Snowplow Android Tracker v0.3.1

02 Jun 15:04
Compare
Choose a tag to compare

Various bug fixes

Bug fixes

  • 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)

Snowplow Android Tracker v0.3.0

18 Feb 16:04
Compare
Choose a tag to compare

Significant refresh, including moving from using AsyncTask to RxJava

Core updates

  • Made the default Emitter method POST for Android (#27)
  • Refactored AsyncTask to RxJava (#49)
  • Refactored HttpClient to OkHttp (#48)
  • Refactored SchemaPayload to make the API easier to use and understand (#89)
  • Replaced Base64.java with Android Base64 implementation (#58)
  • Reordered package/class structure to be simpler (#78)
  • Cleaned-up and Refactored Tracker (#84)
  • Changed package from com.snowplowanalytics.snowplow.tracker.android to com.snowplowanalytics.snowplow.tracker (#61)
  • Moved Version.java into gitignored sub-package(#60)
  • Updated contexts schema to 1-0-1 (#65)
  • Updated payload data schema to 1-0-2 (#64)
  • 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)
  • 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)

Bug fixes

  • Removed potential memory leak from SQLite database implementation (#76)
  • Ensured old Emitter is shutdown before appending new Emitter to Tracker (#83)
  • 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)
  • Fixed Uri.Builder implementation to allow for Port Keys (#71)

New functions

  • Added setUseragent to Subject class (#70)
  • Added setIpAddress to Subject class (#69)
  • Added setDomainUserId to Subject class (#68)
  • Added setNetworkUserId to Subject class (#67)

Build process

  • Added new dependencies to gradle.build scripts (#77)
  • Removed obsolete dependencies from gradle.build scripts (#74)
  • Removed dependency on Java Tracker Core (#57)

Development environment

  • Extended Android Test Suite (#80)
  • Added Mountebank Testing support (#75)

Snowplow Android Tracker v0.2.0

27 Dec 13:23
Compare
Choose a tag to compare

Upgraded to take advantage of Core v0.2.0; various improvements to development and build process

Bug fixes

  • Bumped Core version to 0.2.0 (#42)
  • Updated CHANGELOG with missing tickets (#41)
  • Added GET and POST logging in the Emitter, thanks @lixiaoyi! (#38)

Build process

  • Updated to latest gradle tools and plugin, thanks @hamidp! (#39)
  • Targeted latest SDK version (21) (#47)
  • Fixed Gradle Dynamic Version linting warning (#46)

Development environment

  • Added dedicated Vagrant setup (#40)
  • Added warning that Version.java is auto-generated (#45)
  • Added Quickstart section to README (#43)

Snowplow Android Tracker v0.1.3

25 Nov 22:50
Compare
Choose a tag to compare

Upgrading the Tracker Core to guarantee unique event IDs and fixing an NPE bug.

  • 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)

Snowplow Android Tracker v0.1.2

19 Sep 09:52
Compare
Choose a tag to compare

Fixes a critical bug in the way events are sent.

  • Fix Emitter encodes the slash in /tp2 #28

Snowplow Android Tracker v0.1.1

11 Sep 15:53
Compare
Choose a tag to compare

Fixing a variety of bugs identified in the initial release.

  • 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)