Releases: mixpanel/mixpanel-android
Handle null properties and remove code
- Remove unused code
- Fix #505
Urban Airship integration support + bug fixes
New features
- Added support for Urban Airship integration. Learn more here: https://mixpanel.com/platform
Fixes
Various tweak improvements
Fixes
- When running an experiment with multiple tweaks, only one was applied.
Improvements
- We now persist variants as soon as the SDK receives them. In our previous release we relied on the call of
joinExperimentsIfAvailable()
method. - We now apply persisted tweaks even if they are not declared yet.
Android O and AB Test persistency support
New features
- We now persist Tweaks and AB test experiments!
- Android Oreo support. If you want to customize your notifications channel for devices running 26 or above you can use the following new keys:
<meta-data android:name="com.mixpanel.android.MPConfig.NotificationChannelId"
android:value="mixpanel_id" />
<meta-data android:name="com.mixpanel.android.MPConfig.NotificationChannelName"
android:value="mixpanel" />
<meta-data android:name="com.mixpanel.android.MPConfig.NotificationChannelImportance"
android:value="4" /> <!-- IMPORTANCE_HIGH -->
- Add option to specify whether or not Mixpanel will determine geolocation information using the client IP (see
ip=1
in https://mixpanel.com/help/reference/http for more information). Example of use:
<meta-data android:name="com.mixpanel.android.MPConfig.UseIpAddressForGeolocation"
android:value="false" />
- You can now specify maximum and minimum values for your tweaks with
longTweak
intTweak
doubleTweak
andfloatTweak
.
Fixes
- Fix
SecurityException
crash on some Samsung devices running 7.0 due to missingBLUETOOTH
permission (fixes #424) - Call
onMixpanelTweakUpdated
only after tweaks are updated (fixes #472) - Fix random crash on emulators (#417)
- Fix crash using mini in-app notifications when trying to remove a notification while the activity was being destroyed (fixes #400)
- Fix crash if we tried to show an in-app before
people.identify()
is called (fixes #449) - Fix
BadParceableException
for activities with unparceable intents (fixes #251) - Specify locale to calculate session length so session lengths are always in seconds.
Improvements
- Various AB tests and Codeless events improvements (see PR for more details #492)
- Remove fallback urls support. The following meta-tags won't have any effect:
com.mixpanel.android.MPConfig.DisableFallback
com.mixpanel.android.MPConfig.EventsFallbackEndpoint
com.mixpanel.android.MPConfig.DecideFallbackEndpoint
com.mixpanel.android.MPConfig.PeopleFallbackEndpoint
- Change thread priority from
THREAD_PRIORITY_LESS_FAVORABLE
toTHREAD_PRIORITY_BACKGROUND
- Track whether the user tapped on the primary or secondary button in an in-app notification. We also now track
$campaign_open
even if there is no cta url - Cast
campaign_id
andmessage_id
to integers
Prevent in-app notifications from showing more than once
Tracking notification journeys
We added support for tracking Mixpanel smart notifications (#467)
Fix memory leak and add eventElapsedTime method
- Fix memory leak #463
- Add
eventElapsedTime()
API to retrieve the time elapsed for the named event sincetimeEvent()
was called.
MinimumSessionDuration and SessionTimeoutDuration fix
Automatic tracking of common mobile events
With this release we are adding automatic tracking of common mobile events.
These events include tracking app sessions, first app opens, app updated, and app crashed.
The feature will be rolled out slowly to all our users, and can be turned on in Project settings under Autotrack.
To configure the tracking of app sessions, we now expose two new configurations to provide lower and upper bounds on the session lengths that your app will track. For example, to only track app sessions with a minimum duration of 3 seconds and maximum duration of 5 minutes:
<meta-data android:name="com.mixpanel.android.MPConfig.MinimumSessionDuration"
android:value="3000" />
<meta-data android:name="com.mixpanel.android.MPConfig.SessionTimeoutDuration"
android:value="300000" />
Fix crash when takeover activity is not defined in the AndroidManifest.xml
- Fix provided #451
As a reminder, if you are using 5.0.0 or later you should define the following on your AndroidManifest.xml
:
<activity android:name="com.mixpanel.android.takeoverinapp.TakeoverInAppActivity"
android:theme="@style/com_mixpanel_android_TakeoverInAppActivityTheme"/>
Previous versions use a different activity and theme:
<activity android:name="com.mixpanel.android.surveys.SurveyActivity"
android:theme="@style/com_mixpanel_android_SurveyActivityTheme"/>