Skip to content

Releases: BatchLabs/Batch-Android-SDK

2.0.3

13 Jun 13:28
Compare
Choose a tag to compare

Core

  • Fixed an issue where Batch wasn't clearing some data when using Batch.optOutAndWipeData(). Since version 2.0, the Batch SDK caches some data (such as device language/region) to detect changes. It's this data that was not deleted when calling the opt-out method with data deletion. This issue only affects local SDK data and not server-side data.

2.0.2

27 May 08:28
Compare
Choose a tag to compare

Profile

  • Fixed an issue where Batch would crash when using addToArray or removeFromArray on a BatchProfileAttributeEditor instance.

2.0.1

22 May 13:52
Compare
Choose a tag to compare

Core

  • Fix an issue where some methods were obfuscated in a class annotated with @keep since AGP 8.0 enables R8 full mode by default.

1.21.2

29 Apr 09:38
Compare
Choose a tag to compare

Messaging

  • Fixed a rare crash on In-App Webview format that could happen when Batch would get the deeplink url for an image embedded into a hyperlink.
  • Fixed a rare crash on In-App and Mobile Landing that could happen when Batch would display a wrong gif format.

2.0.0

26 Apr 14:21
Compare
Choose a tag to compare

This is a major release, please see our migration guide for more info on how to update your current Batch implementation.

⚠️ Batch now requires Android min SDK level 21 or higher.

Core

All deprecated APIs in the SDK v1 have been removed and some others have been renamed/reworked.

  • The Config class has been removed with all related methods like Batch.setConfig(Config config) API. You should now use Batch.start(String apiKey).
  • Removed setCanUseAndroidID method from Config with no equivalent.
  • Removed setCanUseInstanceID method from Config with no equivalent.
  • Removed setShouldAutomaticallyRegisterPush method from Config with no equivalent.
  • Removed setUseAdvancedDeviceInformation method from Config. You should now use the new Batch.updateAutomaticDataCollection API. Please see our documentation for more information.
  • Removed Batch.getApiKey with no equivalent.
  • Removed Batch.shouldUseGoogleInstanceID with no equivalent.
  • Removed Batch.shouldAutoRegisterForPush with no equivalent.
  • Removed Batch.isRunningInDevMode with no equivalent.
  • Removed Batch.shouldUseAdvancedDeviceInformation with no equivalent.

Core - Advertising ID

Batch has dropped the support for Android Advertising ID. You can no longer set an advertising id to Batch and all related APIs have been removed.

  • Removed setCanUseAdvertisingID method from Config which was a no-op.
  • Removed Batch.shouldUseAdvertisingID which was a no-op.
  • Removed Batch.getAdvertisingID which was a no-op.
  • Removed class AdsIdentifierProvider.
  • Removed class AdsIdentifierProviderAvailabilityException.
  • Removed class AdsIdentifierProviderAvailabilityException.

Core - New APIs

  • Added Batch.updateAutomaticDataCollection to fine-tune the data sent by the SDK since Batch will not resolve the user's location/region and will not send device type and brand by default.
  • Added Batch.disableMigration(EnumSet<BatchMigration>) to explicitly disable some profile's data migration when running the SDK V2 for the first time if your app is linked to a project.

User

Most of all user's related APIs have been removed and replaced with their equivalent in the new Profile module. Only the reading methods are still present for backward-compatibility but keep in mind this methods are only about the installation data and not your Profile since it may be updated from another source.

  • Removed deprecated API Batch.User.getEditor.
  • Removed deprecated class BatchUserProfile.
  • Removed method printDebugInformation with no equivalent.
  • Removed method trackTransaction with no equivalent.
  • Removed method Batch.User.editor and the related class BatchUserDataEditor, you should now use Batch.Profile.editor which return an instance of BatchProfileAttributeEditor.
  • Added Batch.User.clearInstallationData() which allows you to remove the installation data without modifying the current profile.

Push

Batch has dropped support for old push providers (GCM, IID) and now only support for FCM's Token APIs. Overriding the Sender ID is no longer possible in any way due to Firebase limitations.

  • Removed deprecated method Batch.setGCMSenderId.
  • Removed deprecated class BatchPushData.
  • Removed deprecated method getPriority from BatchPushPayload.
  • Removed Batch.Push.getLastKnownPushToken. You can now get the whole registration with Batch.Push.getRegistration and use getTokento access to the push token registration.
  • Batch now defaults to showing foreground notifications rather than directly displaying mobile landings.
  • Added Batch.Push.requestNotificationPermission(context, listener) API to request the notification permission with a callback notifying whether the permission has been granted or not.
  • Batch does not honor the batch_push_fcm_sender_id_override AndroidManifest meta-data anymore.

Event

This version introduced two new types of attribute that can be attached to an event : Array and Object.

  • Removed deprecated method Batch.trackEvent(String event, String label, JSONObject data).
  • Removed all trackEvent APIs from the user module. You should now use Batch.Profile.trackEvent.
  • BatchEventData has been renamed into BatchEventAttributes.
  • Removed addTag API from BatchEventData You should now use the $tags key with putStringList method.
  • Removed parameter label from trackEvent API. You should now use the $label key in BatchEventAttributes with the put(string, string) method.
  • Added support for Array and Object attributes with the added APIs to BatchEventAttributes :
    • put(String key, BatchEventAttributes value)
    • putObjectList(String key, List<BatchEventAttributes> value)
    • putStringList(String key, List<String> value)
  • Added validateEventAttributes method to BatchEventAttributes which return a list of human-readable errors to ensure your event attributes are valid before sending them.

Inbox

  • Removed deprecated Batch.Inbox.getFetcher method.
  • Removed deprecated isDeleted method from BatchInboxNotificationContent.

Profile

Introduced Profile, a new module that enables interacting with profiles. Its functionality replaces most of the User module used to do.

  • Added identify API as replacement of Batch.User.editor().setIdentifier.
  • Added editor method to get a new instance of an BatchProfileAttributeEditor as replacement of BatchUserDataEditor.
  • Added trackEvent APIs as replacement of the Batch.User.trackEvent methods.
  • Added trackLocation API as replacement of the BatchUser.trackLocation method.

1.21.1

16 Jan 14:54
Compare
Choose a tag to compare

Inbox

  • Fixed an issue where an inbox fetcher could have a wrong configuration.

1.20.2

16 Jan 14:25
Compare
Choose a tag to compare

This release backports changes from 1.21.1

Inbox

  • Fixed an issue where an inbox fetcher could have a wrong configuration.

1.21.0

05 Jan 14:39
Compare
Choose a tag to compare

BREAKING

  • Removed support for optional Play Core library. You should now use the Play In-App Review Library. Please see our documentation for more info.

Core

  • Removed automatic collection of AAID (Android Advertising Identifier). setCanUseAdvertisingID is now a no-op. You need to collect it from your side and pass it to Batch via the added Batch.User.editor().setAttributionIdentifier(id) method.

Push

  • To help with FCM v1 API migration, the SDK will send the GCP Project ID associated to the FCM Token to Batch's backend. This is not supported in legacy GCM/FCM Instance ID modes.

1.20.1

15 Sep 15:49
Compare
Choose a tag to compare

User

  • Fixed an issue on BatchUserDataEditor where data wasn't sent when using setEmail or setEmailMarketingSubscriptionState.

1.20.0

27 Jul 12:26
Compare
Choose a tag to compare

Core

  • Batch now compiles with and targets SDK 34 (Android 14 'Upside Down Cake').
  • Fixed a rare issue where the SDK could trigger an ANR on start when upgraded from an older version.

Push

  • Improved notification image by making notifications taller if possible and changing scaling type to Center Fit.

User

  • Added Batch.User.editor().setEmail(email) method. This requires to have a user identifier registered or to call the setIdentifier method on the editor instance beforehand.
  • Added Batch.User.editor().setEmailMarketingSubscriptionState(BatchEmailSubscriptionState) method to subscribe to the email marketing list.

Inbox

  • Added the ability to know if a BatchLandingMessage has been displayed from the inbox via the isDisplayedFromInbox() method.
  • Added the ability to know if a notification has a landing message attached on BatchInboxNotificationContent using the hasLandingMessage() method.
  • Added the ability to display a landing message attached to a BatchInboxNotificationContent using the displayLandingMessage(context) method.