This is a major release, please see our migration guide for more info on how update your current Batch implementation.
Core
- Batch now compiles with SDK 36 (Android 16 'Baklava').
- Batch now uses Kotlin (1.9.0) internally. This should not affect your existing Java-based integrations as public APIs remain in Java.
Push
- Fixed an issue where push notifications could display a blank area when the image download failed.
- Added
Batch.Push.setShowNotifications
method to control whether push notifications should be displayed. - Added
Batch.Push.shouldShowNotifications
method to check current notification display settings. - Removed
PushNotificationType
enum and related methodsgetNotificationsType
andsetNotificationsType
fromBatch.Push
. You should now usesetShowNotifications
to control whether Batch should display notifications or not. Note that Batch still preserves your previous values andshouldShowNotifications
will reflect them."
Profile
- Fixed an issue preventing Turkish-speaking users from correctly setting Email/SMS subscription states.
Messaging
- Added compatibility for Mobile Landings with Push v2 which can be created from the drag & drop composer in the Batch Dashboard.
- Added interface
Batch.Messaging.InAppInterceptor
and methodBatch.Messaging.setInAppInterceptor
in order to handle messages yourself. - Added method
loadMessagingView
to control when and how a mobile landing will be displayed. LifecycleListener
has been redesigned:- Added method
onBatchMessageClosed(String, MessagingCloseReason)
. - Added enum
Batch.Messaging.LifecycleListener.MessagingCloseReason
which indicates why an In-App message was closed. - Updated method
onBatchMessageActionTriggered
. Theindex
parameter has been replaced byctaIdentifier
. This method is still called on MEP (Mobile Engagement Platform) messages, but you will now receive an identifier built from the old cta index : “mepCtaIndex:” + index. - Removed individual close callback methods (
onBatchMessageCancelledByUser
,onBatchMessageCancelledByAutoclose
,onBatchMessageCancelledByError
,onBatchMessageClosed
). Use the new unifiedonBatchMessageClosed(String, MessagingCloseReason)
method. - Removed method
onBatchMessageWebViewActionTriggered
. This will now triggered ononBatchMessageActionTriggered
with theanalyticsID
asctaIdentifier
. - Constant
GLOBAL_TAP_ACTION_INDEX
now returns a String instead of an int.
- Added method
- Removed
Batch.Messaging.LifecycleListener2
interface, you should now useBatch.Messaging.InAppInterceptor
withsetInAppInterceptor
. - Removed enum
Format
and methodgetFormat
fromBatchMessage
. You should now check the kind of aBatchMessagingView
to use the dedicated right methods to show your message. - Removed methods
loadFragment
andloadBanner
fromBatch.Messaging
. Use the newloadMessagingView
method instead. - Removed class
BatchBannerView
. UseBatchMessagingView
returned byloadMessagingView
instead. - Renamed method
getContent
from classBatchInAppMessage
togetMEPContent
. This method will return null for messages coming from the CEP (Customer Engagement Platform).
Debug
- Added support for edge-to-edge display in
BatchDebugActivity
.