Skip to content

Releases: braze-inc/braze-android-sdk

v33.1.0

06 Nov 15:19
Compare
Choose a tag to compare

Release Date

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 of WebViewClients in Banners and In-App Messages.
    • Added BannerWebViewClient, which extends BrazeWebViewClient.
    • InAppMessageWebViewClient now extends BrazeWebViewClient.
  • Added JavascriptInterfaceBase to simplify the creation of JavaScript interfaces for Banners and In-App Messages.
    • Added BannerJavascriptInterface, which extends JavascriptInterfaceBase.
    • InAppMessageJavascriptInterface now extends JavascriptInterfaceBase.
  • 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 file braze-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 of braze-html-bridge.js.
  • Changed properties in AttributionData from non-nullable to nullable to allow for optional values.

33.0.0

03 Oct 19:29
Compare
Choose a tag to compare

33.0.0

Release Date

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-ui AndroidManifest.xml. You should have this in your application AndroidManifest.xml.
    • Removed android:textAlignment="viewStart" from the In-App Message layouts, since this is sent by the server.
  • 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(), and logPurchase().

v32.1.0

16 Sep 13:39
Compare
Choose a tag to compare

Release Date

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.
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

29 Jul 18:05
Compare
Choose a tag to compare

32.0.0

Release Date

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 (like Braze.subscribeToContentCardsUpdates()) after being called.

v31.1.0

09 May 16:47
Compare
Choose a tag to compare
Fixed
  • Added getTimestampProperty(key) to FeatureFlag and deprecated getTimestamp(key) for consistency.
Added
  • Added Azerbaijani language translations for Braze UI elements.

v31.0.0

06 May 20:01
Compare
Choose a tag to compare

Breaking

  • BrazeImageUtils::getBitmap now returns a BitmapAndHeaders object instead of just a Bitmap. This object contains the Bitmap 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.
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), and getDateTimeProperty(key) to FeatureFlag.
Changed
  • Removed @Synchronized from Brazelogger in order to eliminate noisy thread deadlock logs.

30.4.0

18 Apr 16:08
Compare
Choose a tag to compare

30.4.0

Release Date

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

18 Mar 17:40
Compare
Choose a tag to compare

30.3.0

Release Date

Added
  • Added the fields responseCode, responseHeaders, requestUrl to BrazeNetworkFailureEvent.

v30.1.1

27 Feb 18:52
Compare
Choose a tag to compare

30.1.1

Release Date

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.

30.1.0

12 Feb 22:27
Compare
Choose a tag to compare
Added
  • Added the ability to configure whether SDK created Activities (such as ContentCardsActivity, BrazeWebViewActivity, etc.) use the WindowManager.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.