Releases: braze-inc/braze-android-sdk
Releases · braze-inc/braze-android-sdk
v33.1.0
Fixed
- Fixed an issue where
ContentCardsFragment
would not show the empty state if the user had only control cards.
Added
- Adds support for the Braze Banner Cards product.
- Added
BrazeWebViewClient
to facilitate the creation ofWebViewClient
s in Banners and In-App Messages.- Added
BannerWebViewClient
, which extendsBrazeWebViewClient
. InAppMessageWebViewClient
now extendsBrazeWebViewClient
.
- Added
- Added
JavascriptInterfaceBase
to simplify the creation of JavaScript interfaces for Banners and In-App Messages.- Added
BannerJavascriptInterface
, which extendsJavascriptInterfaceBase
. InAppMessageJavascriptInterface
now extendsJavascriptInterfaceBase
.
- Added
- Added
IBannerWebViewClientListener
interface for Banner WebViewClient listeners. - Added an optional button id parameter to
IInAppMessage.logClick
.
Changed
- Changed the location of
brazeBridge
to be located in filebraze-html-bridge.js
.brazeBridge
is now accessible in both Banners and In-App Messages.braze-html-in-app-message-bridge.js
is now deprecated and will be removed in a future version of the SDK, in favor ofbraze-html-bridge.js
.
- Changed properties in
AttributionData
from non-nullable to nullable to allow for optional values.
33.0.0
33.0.0
Breaking
- Updated Kotlin from 1.8 to Kotlin 2.0.
Fixed
- Braze HTML In-App Message bridge method
incrementCustomUserAttribute()
will use the provided value as the increment amount instead of always incrementing by 1. - Fixed an issue where In-App Message text alignments would not match what was set in the dashboard in some cases.
- Removed
android:supportsRtl="true"
from android-sdk-uiAndroidManifest.xml
. You should have this in your applicationAndroidManifest.xml
. - Removed
android:textAlignment="viewStart"
from the In-App Message layouts, since this is sent by the server.
- Removed
- Fixed an issue where Content Cards and Feature Flags were not refreshing after a session started due to a session timeout.
- Fixed an issue with SDK Authentication where tokens that expired and refreshed mid session would be treated as failed.
Changed
- Braze HTML In-App Message bridge method will now also accept strings for
incrementCustomUserAttribute()
,setDateOfBirth()
,setCustomLocationAttribute()
, andlogPurchase()
.
v32.1.0
Fixed
- Fixed an issue where geofence events could not be sent when the app is in the background.
- Fixed an issue where In-App Messages would fail to be dismissed when the host app is using the predictive back gesture.
Added
- Added support for an upcoming Braze SDK Debugging tool.
- Added the ability to prevent certain edge cases where the SDK could show In-App Messages to different users than the one that triggered the In-App Message.
- Configured via
braze.xml
through<bool name="com_braze_prevent_in_app_message_display_for_different_user">true</bool>
. - Can also be configured via runtime configuration through
BrazeConfig.setShouldPreventInAppMessageDisplayForDifferentUsers()
. - Defaults to false. Note that even when false, the SDK will still prevent most cases of showing In-App Messages to different users. This configuration option is designed to prevent edge cases such as when the user changes while on a
BrazeActivityLifecycleCallbackListener
blocked Activity or when a mismatched message is still in the stack.
- Configured via
Changed
- Changed the behavior of the
Braze.getDeviceId()
method to return a different device ID based on the API key used to initialize the SDK.
32.0.0
32.0.0
Breaking
- Fixed issue where cards with duplicate IDs would cause a crash in Jetpack Compose Content Cards.
- If you manually add cards, please ensure that they have unique IDs.
Fixed
- Fixed an issue where closing an In-App Message could throw an error if the previously focused
View
was removed. - Fixed an issue where some In-App Messages could display after their expiration time.
- Fixed an issue with In-App Message and Content Cards not displaying RTL language properly.
- Fixed an issue where logging In-App Message impression or clicks could result in blocking the main thread.
Added
- Added support for Android 15 (API 35).
- Note that apps targeting API 35 should update to this SDK version.
Changed
- Changed the behavior of
Braze.wipeData()
to retain external subscriptions (likeBraze.subscribeToContentCardsUpdates()
) after being called.
v31.1.0
Fixed
- Added
getTimestampProperty(key)
toFeatureFlag
and deprecatedgetTimestamp(key)
for consistency.
Added
- Added Azerbaijani language translations for Braze UI elements.
v31.0.0
Breaking
BrazeImageUtils::getBitmap
now returns aBitmapAndHeaders
object instead of just aBitmap
. This object contains theBitmap
and headers from the image download network request.- Custom Image Loaders that have used code from
DefaultBrazeImageLoader
may need to update their code to handle the new return type.
- Custom Image Loaders that have used code from
Fixed
- Fixed an issue with
com.braze.support.DateTimeUtils.nowInMilliseconds()
where, in the event of the device network time clock not being available, the SDK would continually log about the error. - Fixed the potential for
ViewUtils.removeViewFromParent
to cause a crash. - Fixed an issue where an HTML In-App Message could crash if a bad external link had a query parameter of
target="_blank"
. Thanks to@chenxiangcxc
for finding the issue. - Fixed an issue where images would be cached when the HTTP headers indicated they shouldn't be cached.
- Fixed an issue where some liquid templated images would not have the proper aspect ratio.
Added
- Added support for new Feature Flag property types by adding
getJsonProperty(key)
,getImageProperty(key)
, andgetDateTimeProperty(key)
toFeatureFlag
.
Changed
- Removed
@Synchronized
from Brazelogger in order to eliminate noisy thread deadlock logs.
30.4.0
30.4.0
Fixed
- Fixed an issue with
com.braze.support.DateTimeUtils.nowInMilliseconds()
where, in the event of the device network time clock not being available, the SDK would continually log about the error.
Added
- Adds support for the
message_extras
Liquid tag for in-app messages.
30.3.0
30.3.0
Added
- Added the fields
responseCode, responseHeaders, requestUrl
toBrazeNetworkFailureEvent
.
v30.1.1
30.1.1
Fixed
- Fixed an issue where the SDK would fail to unregister session seal broadcast receivers.
- The intent action is suffixed with
.intent.BRAZE_SESSION_SHOULD_SEAL
.
- The intent action is suffixed with
30.1.0
Added
- Added the ability to configure whether SDK created Activities (such as
ContentCardsActivity
,BrazeWebViewActivity
, etc.) use theWindowManager.LayoutParams.FLAG_SECURE
to prevent screen capturing.- Configured via
braze.xml
through<bool name="com_braze_use_activity_window_flag_secure">true</bool>
. - Can also be configured via runtime configuration through
BrazeConfig.setShouldUseWindowFlagSecureInActivities()
. - Defaults to false.
- Configured via