Breaking
- Updated Kotlin from 2.2.20 to 2.4.21.
Fixed
- Fixed a freeze when the SDK blocked the shared IO thread pool. Content Card
logImpression()andlogClick(), banner impression logging, banner loading, and SDK network requests that wait on storage now use their own threads, so a burst of that work cannot stall the app's other background work. - Fixed an issue where a slideup in-app message could stay on screen if it was dismissed without animation while its closing animation was running. See #118.
- Fixed an issue where automatic Firebase Cloud Messaging registration was skipped when Google Play services were installed but
com.google.android.gsfwas not, including fresh GrapheneOS installs on Android 15 and later. See #119.
Added
- Added
BrazeLogger.redactSecrets. When set totrue, SDK logs redact the API key, SDK Authentication signatures, JWTs, cookies, push tokens, and exception messages.- Defaults to
false.
- Defaults to
Changed
BrazeLogger.onLoggedCallbacknow only receives logs at or aboveBrazeLogger.logLevel. Previously, some SDK logs below the log level, such as DEBUG and VERBOSE logs, were also delivered to the callback. To receive them, setBrazeLogger.logLevelto the level you need, for exampleBrazeLogger.enableVerboseLogging().- Logs now use stable feature log tags (
User,Session,Events,Network,InAppMessages,ContentCards,Banners,FeatureFlags,Push,Location,Dust,Storage,EventBus) instead ofBraze v<version> .<class>. Logs that belong to no feature use theBrazetag. If you filter SDK logs by tag, update your filters.