Releases: sailthru/sailthru-mobile-android-sdk
Sailthru Mobile Android SDK 6.0.0
Features
FCM Integration
The Sailthru Mobile Android SDK now works with the Firebase Messaging library! There are several steps that need to be followed to ensure push functionality will still work as expected with this upgrade, which is why we have created a handy upgrade guide here:
https://docs.carnival.io/docs/android-updating-to-version-6
Note: that some of the stages must be completed for push notifications to work in your application. Failure to follow some of the steps can lead to pushes not working correctly, or even crashes in your application. Following the guide carefully during the upgrade process is highly recommended.
Bug Fixes
- Dependencies in the SDK have undergone a cleanup and now the Firebase Messaging library is the only dependency exposed to the app. It should no longer be necessary to exclude dependencies in the SDK in Gradle.
Sailthru Mobile Android SDK 6.0.0-SNAPSHOT
Feature: FCM Integration
This release is a beta test of the new FCM integration. As the SDK is now integrated with the FCM library, there are some important steps that have to be taken to ensure that the push functionality will still work correctly. Documentation to assist with this process can be found here:
https://docs.carnival.io/v1.3/docs/android-updating-to-version-6
Sailthru Mobile Android SDK 5.7.2-SNAPSHOT
Introduces an experimental fix for stale device data.
To use this you will need to change your respository to snapshots
repositories {
maven {
url "https://github.com/carnivalmobile/maven-repository/raw/snapshots/"
}
}
Sailthru Mobile Android SDK 5.7.1
Bugfixes
- This release fixes an issue with Notification Titles where notifications consisting of only a title (ie having no alert) would not correctly display. This issue has now been fixed, and now notifications can have any mix of alert, title, both, or neither!
Sailthru Mobile Android SDK 5.7.0
First Things First
We've rebranded to be called Sailthru Mobile! Don't worry, nothing is changing - we'll just refer to it as the Sailthru Mobile SDK from now on 🙂
Feature: Notification Titles
The Sailthru Mobile SDK will now automatically include titles in the notifications when they're added, and won't include a title when one isn't attached - previously the SDK set the title of the notification as the name of the app implementing it.
Pushes with a title will look like this:
And those with no title will look like this:
If you want to keep a static string as your notification title, that's totally fine! Just add a NotificationCompat.Extender
that sets the builder's contentTitle
:
NotificationConfig config = new NotificationConfig();
// Use Sailthru's default notification extender as our base
config.addNotificationExtender(new CarnivalNotificationExtender());
config.addNotificationExtender(new NotificationCompat.Extender() {
@Override
public NotificationCompat.Builder extend(NotificationCompat.Builder builder) {
builder.setContentTitle("My cool string");
return builder;
}
});
Carnival.setNotificationConfig(config);
Deprecations
We've cleaned up the NotificationBundle
class and made it a little easier to use:
- We've deprecated
NotificationBundle.build(Bundle)
, as it's exactly the same asNotificationBundler(Bundle)
, and a constructor makes more sense than a build method in this case - We've deprecated
NotificationBundle.getStringFromPayload(String, Bundle)
, as it doesn't make much sense for a static method to access an instance of the class defining it! You can replace this withNotificationBundle#getMessageIdFromPayload()
,NotificationBundle#getImageUrlFromPayload()
or the newly-definedNotificationBundle#getVideoUrlFromPayload()
Carnival Android SDK 5.6.0
Feature
Mobile Track and Personalize
Carnival SDK 5.6.0 brings new features to let you better personalize your content on mobile and on the web. You can use the Carnival.getRecommendations()
method to get an array of personalized content from Sailthru's SPM service, provided you have Sailthru integrated.
To recommend your users the right content, you can track the content they interact with by calling the Carnival.trackPageview()
, Carnival.trackImpression()
and Carnival.trackClick()
methods. More information on integrating SPM can be found in our docs, and more in-depth mobile integration advice can be found in the Carnival Developer Documentation
v5.5.0
This release brings changes to the way of customising notifications to be able to have a better support to our tracking system. Using the new methods you are able to customize Deep link notifications (_u
) and to have a better control over the notification without the need of implementing the whole notification by yourself.
Deprecate CarnivalMessageListener
You can find more about it on our docs about handling notifications
There's an example of how to migrate a implementation of rich push notifications
Before
CarnivalMessageListener.onMessageReceived
was responsible to prepare the notification and customize it, and to create the intent to be executed when notification is clicked, and it could be used to listen for events and for silencing notifications as well
After
- NotificationTapped intent is defined by default, you can override it but is encouraged to not do it
- You can add a
NotificationCompat.Extender
to customise the look of a notification- If you want to keep the default look from carnival, and your own extension user can call
NotificationConfig.addNotificationExtender(new CarnivalNotificationExtender())
- If you want to keep the default look from carnival, and your own extension user can call
- You can set
CarnivalContentIntentBuilder
to build an intent to be excuted when notification is tapped. If returnnull
, the default behaviour is maintainedNotificationConfig.setContentIntentBuilder(new ContentIntentBuilder())
- You can set
NotificationSilencer
to avoid a notification to be presented to the userNotificationConfig.setSilencer(new NotificationSilencer())
- You still able to listen for events using
NotificationTappedListener
andNotificationReceivedListener
Carnival.addNotificationTappedListener(new NotificationTappedListener())
Carnival.addNotificationReceivedListener(new NotificationReceivedListener())
v5.4.0-SNAPSHOT
Introduces experimental features that allow integrating Track and Personalize features from Sailthru SPM (Site Personalisation Manager).
These methods are being validated and they are likely to change. Please, reach out to your CSM or [email protected] for more details.
To be used, you should change the repository to snapshots
repositories {
maven {
url "https://github.com/carnivalmobile/maven-repository/raw/snapshots/"
}
}
v5.3.0
Recently, we've identified some issues attributing direct opens to Push Notifications and deep-link Notifications (ones using the _u
key). This release fixes them by using a single intent, to be executed when the Notification is tapped.
Before this release, the intents being executed (Content Intents) were created before the notification was presented to the user, and executed when the user tapped the notification. With this new approach, the final intent is built and executed after the user taps on the notification.
Rich Pushes, and other custom notification implementations using CarnivalMessageListener
, will remain untracked. We're looking at making changes to this workflow in the future.
v5.2.2
We have identified and fixed a potential problem with our usage of the Android message intent that, under rare circumstances, can lead to incorrect message handling for apps namespaced under a single vendor.