- Fix: Catch serialization errors better
- Improvement: Better logging messages
- Fix: Add a default category for Google Analytics events
- Improvement: Follow App Links in Mixpanel
- Improvement: Eagerly clear references to OnIntegrationReadyListener
- Fix: Better error handling for unexpected deserialization
- Improvement: Update Play Services Dependencies
- Fix: Update Javadocs
- New: Kahuna Integration
- Improvement: Updating the Crittercism SDK version from 4.5.3 to 5.0.3
- Fix: Use
newId
parameter fromalias
method - Fix: Value should be numeric type
- Fix: Check if Error Input Stream is null before trying to read it
- Breaking: Add explicit dependency on Tape
- Breaking:
alias
method accepts(previousId, newId)
instead of(newId, previousId)
(arguments reversed). - New: Deprecate
logging
method on builder fordebugging
- New:
debugging
value will now be forwarded to integrations so they can enable it as we ll - New:
Analytics.setSingletonInstance
allows setting the global Analytics instance returned fromAnalytics.with
- Improvement: If integrations fail to load (e.g. due to missing permissions), we'll now update internal flags so server can send the event instead
- Improvement: Explicitly specify UTF-8 charset for serializing/deserializing payloads
- Improvement: Fallback to memory queue if disk fails to load
- Improvement: Accept
httpFallback
parameter for AppsFlyer - Fix: Don't call
Leanplum#forceContentUpdate
when flushing
- Accidentally skipped!
- Breaking: Updated Localytics integration (Localytics now returns LocalyticsAmpSession for listeners)
- New:
flushInterval
setting, that flushes any events in the queue at a specified interval - New: Added AppsFlyer integration
- New: Collect advertisingId as per spec
- Fix: Verify C2DM permission for Leanplum
- Fix: Synchronize maps across threads
- Fix: Ignore
siteSpeedSamplingRate
for Google Analytics
- Fix: Update
context.device.id
andcontext.referrer.id
to match spec
- Fix: Correctly use size of disk queue
- New: Added Leanplum Integration
- Improvement: Updated Google Analytics
- Improvement: Make Tape classes non-public
- New: Added
context.setDeviceToken()
, for push notifications e.g. Outbound.io
- Fix: Cache settings each time we request it
- Fix: Avoid race condition when calling tracking methods on bundled integrations
- Fix: Initialize bundled integrations on main thread
- Improvement: Better logging for serialization errors
- Fix: Make
Product
class public - Improvement: Add timezone in context
- Fix: Catch file system errors better
- API Change: Make logging state final
- Improvement: Explicitly create disk queue directory
- API Change: Hide lifecycle callbacks. We register this automatically so user's shouldn't use these.
- New: Added Integration Listener API
- Improvement: Better messages in logging
- Improvement: Integrations are now executed synchronously
- Fix: Forward
Activity Started
lifecycle event to integrations - Fix: Convert seconds to milliseconds for Flurry
- Improvement: Reduce size of batched payloads
- New: Added convenience methods for special properties
- Fix: Forward
analytics.flush()
to Google Analytics
- Improvement: Better detection of ecommerce events for bundled integrations
- Fix: Correctly pass in activity for lifecycle events
- Fix: Clean up logs for integrations that are not available
- Fix: use label instead of
applicationInfo.name
for context
- New architecture distances client from main thread even more
- Improves logging with consistent format :
THREAD | VERB | ID | EXTRAS
- Queue events for bundled integrations while initializing
- Use Tape for underlying disk queue
- Simpler and more consistent API
- Allow creation of multiple clients