Releases: Iterable/iterable-android-sdk
Releases · Iterable/iterable-android-sdk
Release list
3.9.0
Added
- Added support for in-app messages in fully Jetpack Compose apps using a Dialog-based renderer (
IterableInAppDialogNotification), removing the requirement for aFragmentActivity. - New
IterableInboxToolbarView— an opt-in, reusable toolbar component for the inbox UI. Configurable via the new Kotlin sealed interfaceInboxToolbarOption:None(default) — no toolbar; behavior is unchanged from prior SDK versions.Default— title-only toolbar above the inbox list.WithBackButton— title plus a back navigation icon. The default back action callsOnBackPressedDispatcher; override it by having the host Activity or parent Fragment implementIterableInboxToolbarBackListener.Custom(layoutRes)— inflates the integrator's own toolbar layout. Views tagged with the reserved ids@id/iterable_reserved_inbox_toolbar_actionand@id/iterable_reserved_inbox_toolbar_titleare auto-wired to the SDK's back handler and title binding respectively. Both ids are optional.- Configure programmatically via
IterableInboxFragment.newInstance(...)(new 2-arg and 6-arg overloads) or viaIterableInboxActivityintent extras (TOOLBAR_OPTION/TOOLBAR_TITLE). - Requires the host activity to use a
Theme.AppCompatdescendant when the toolbar is enabled.
- Added
appAlreadyRunningfield totrackPushOpen. NewtrackPushOpen(int, int, String, boolean, JSONObject)overload sends the value through; existing overloads default tofalse.
Fixed
- Fixed a
TransactionTooLargeExceptioncrash when displaying in-app messages with oversized HTML payloads. The HTML is no longer serialized into the fragment's saved instance state; it is reloaded from storage on recreation. In-apps with missing HTML now dismiss gracefully without registering tracking events, and a warning is logged for HTML payloads exceeding the recommended size.
3.8.0
What's new
- Better control over how in-app messages interact with system bars via the new
IterableInAppDisplayModeconfig option (FORCE_EDGE_TO_EDGEdefault,FOLLOW_APP_LAYOUT,FORCE_FULLSCREEN,FORCE_RESPECT_BOUNDS). Use this to fix close buttons hidden behind the status bar in fullscreen in-apps. No action required for existing apps. - Polished embedded card views with a configurable
imageScaleType, proper 16:9 image aspect ratio, correct card sizing, button spacing, and rounded-corner image clipping.IterableEmbeddedViewConfigparameters now have sensible defaults.
Fixed
ConcurrentModificationExceptioncrash during device token registration.NoSuchMethodExceptioncrash on Android 5–10 from an unsupportedMap.of()call.
Removed
- Legacy
AES/CBC/PKCS5Paddingencryption path inIterableDataEncryptor. The SDK now usesAES/GCM/NoPaddingexclusively. Only impacted Android versions below API 19, which haven't been supported sinceminSdkVersion21.
Full Changelog: 3.7.0...3.8.0
3.7.0
Fixed
- Replaced the deprecated
AsyncTask-based push notification handling withWorkManagerfor improved reliability and compatibility with modern Android versions. No action is required. - Fixed lost event tracking and missed API calls with an auto-retry feature for JWT token failures.
- Added
onEmbeddedMessagingSyncSucceeded()andonEmbeddedMessagingSyncFailed()callbacks toIterableEmbeddedUpdateHandlerfor monitoring embedded message sync results.
Full Changelog: 3.6.6...3.7.0
3.6.6
Fixed
- Fixed push notifications killing the existing activity when opened
- Fixed in-app message crash caused by WebView creation issues
- Fixed BROADCAST_CLOSE_SYSTEM_DIALOGS permission error on Android 12+ by restricting usage to Android SDK 30 and below
3.6.5
Fixed
- Fixed IterableEmbeddedView not having an empty constructor and causing crashes
- Fixed custom actions not working in background when SDK is not initialized
- Fixed double callback problem for setEmail with auto push registration
3.6.4
Fixed
- Updated
customPayloadof In-App Messages to be@Nullable
Added
- Made
isIterableDeepLinkmethod public
3.6.3
Fixed
- Improved in-app message sizing and positioning calculations for better stability and performance, especially during device orientation changes
3.6.2
Added
- Added background initialization support to prevent ANRs during app startup. Use
IterableApi.initializeInBackground()instead ofinitialize()to run initialization on a background thread while automatically queuing API calls until ready. See README for implementation details. - Added
IterableApi.onSDKInitialized()callback method to subscribe to initialization completion from multiple places in your app. - Added
setWebViewBaseUrl()configuration option toIterableConfigto support CORS for self-hosted custom fonts and external resources in WebView-based messages (in-app, inbox, embedded messages).
3.6.1
Added
- Added edge-to-edge support for in-app messages to ensure proper display on devices with notches, cutouts, and system bars. Test your in-app messages on various devices to ensure optimal display.
Note
⚠️ Important: The system applies white insets by default, which may contrast with dark-themed apps. Marketers can control the visual appearance using the background overlay option in the Iterable UI to choose appropriate background colors that work well with their app's theme.
3.6.0
Added
- Introduces support for Unknown user activation: a feature that allows marketers to convert valuable visitors into customers. With this feature, the SDK can:
- Fetch unknown user profile creation criteria from your Iterable project, and then automatically create Iterable user profiles for unknown users who meet these criteria.
- Save information about a visitor's previous interactions with your application to their unknown user profile, after it's created.
- Display personalized messages for unknown users (in-app, push, and embedded messages).
- Merge unknown user profiles into an existing, known user profiles (when needed).
IterableConfigis updated with anenableUnknownUserActivationflag that needs to be set to true to allow use of the unknown user activation functionality- Unknown user activation is currently in public beta. If you'd like to learn more about it or discuss using it, talk to your Iterable customer success manager (who can also provide detailed documentation).
- To learn more, read Unknown User Activation: Developer Docs.