Fixed
- Fixed an issue where calling
wipeData(),disableSdk(), orlogout()while the SDK was still initializing could crash the host app with an uncaughtCancellationException. - Fixed an issue where the Content Cards feed rendered underneath the status bar and navigation bar on apps targeting API 35 and higher, where the system enforces edge-to-edge display.
ContentCardsFragmentnow applies the system bar and display cutout insets as padding on itsRecyclerViewand offsets the pull-to-refresh indicator by the same top inset.- Cards are clipped at the padding edge by default. To let cards scroll behind the system bars instead, override
Braze.ContentCardsDisplay.Recyclerin your xml and set<item name="android:clipToPadding">false</item>. - Hosts whose view hierarchy consumes the insets before the feed, such as an ancestor with
android:fitsSystemWindows="true", are unaffected, because the feed then receives zero insets. - Hosts that inset the feed themselves without consuming the insets would otherwise get a double safe-area gap. Those hosts should set
ContentCardsFragment.isWindowInsetsHandlingEnabledto false. Setting it after the Fragment view exists applies or removes the safe area immediately. Defaults to true.
- Cards are clipped at the padding edge by default. To let cards scroll behind the system bars instead, override
Changed
Braze.unregisterPushnow completes successfully when this SDK instance holds no locally cached push token, instead of throwing. Nopush/unregisterrequest is sent in that case.Braze.refreshFeatureFlags()no longer applies a client-side Feature Flag refresh cooldown. Refresh volume is governed by global and per-endpoint rate limits.