Skip to content

Releases: Iterable/iterable-android-sdk

3.9.0

Choose a tag to compare

@franco-zalamena-iterable franco-zalamena-iterable released this 24 Jun 14:47
1cb555b

Added

  • Added support for in-app messages in fully Jetpack Compose apps using a Dialog-based renderer (IterableInAppDialogNotification), removing the requirement for a FragmentActivity.
  • New IterableInboxToolbarView — an opt-in, reusable toolbar component for the inbox UI. Configurable via the new Kotlin sealed interface InboxToolbarOption:
    • 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 calls OnBackPressedDispatcher; override it by having the host Activity or parent Fragment implement IterableInboxToolbarBackListener.
    • Custom(layoutRes) — inflates the integrator's own toolbar layout. Views tagged with the reserved ids @id/iterable_reserved_inbox_toolbar_action and @id/iterable_reserved_inbox_toolbar_title are 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 via IterableInboxActivity intent extras (TOOLBAR_OPTION / TOOLBAR_TITLE).
    • Requires the host activity to use a Theme.AppCompat descendant when the toolbar is enabled.
  • Added appAlreadyRunning field to trackPushOpen. New trackPushOpen(int, int, String, boolean, JSONObject) overload sends the value through; existing overloads default to false.

Fixed

  • Fixed a TransactionTooLargeException crash 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

Choose a tag to compare

@joaodordio joaodordio released this 27 May 23:39
6b4dc1a

What's new

  • Better control over how in-app messages interact with system bars via the new IterableInAppDisplayMode config option (FORCE_EDGE_TO_EDGE default, 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. IterableEmbeddedViewConfig parameters now have sensible defaults.

Fixed

  • ConcurrentModificationException crash during device token registration.
  • NoSuchMethodException crash on Android 5–10 from an unsupported Map.of() call.

Removed

  • Legacy AES/CBC/PKCS5Padding encryption path in IterableDataEncryptor. The SDK now uses AES/GCM/NoPadding exclusively. Only impacted Android versions below API 19, which haven't been supported since minSdkVersion 21.

Full Changelog: 3.7.0...3.8.0

3.7.0

Choose a tag to compare

@joaodordio joaodordio released this 31 Mar 17:11
6e8509a

Fixed

  • Replaced the deprecated AsyncTask-based push notification handling with WorkManager for 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() and onEmbeddedMessagingSyncFailed() callbacks to IterableEmbeddedUpdateHandler for monitoring embedded message sync results.

Full Changelog: 3.6.6...3.7.0

3.6.6

Choose a tag to compare

@franco-zalamena-iterable franco-zalamena-iterable released this 12 Mar 11:57
ce8b322

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

Choose a tag to compare

@franco-zalamena-iterable franco-zalamena-iterable released this 13 Feb 17:36
3a0ac5c

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

Choose a tag to compare

@joaodordio joaodordio released this 29 Jan 12:06
a336b3a

Fixed

  • Updated customPayload of In-App Messages to be @Nullable

Added

  • Made isIterableDeepLink method public

3.6.3

Choose a tag to compare

@Ayyanchira Ayyanchira released this 03 Dec 23:40
ae4f949

Fixed

  • Improved in-app message sizing and positioning calculations for better stability and performance, especially during device orientation changes

3.6.2

Choose a tag to compare

@Ayyanchira Ayyanchira released this 31 Oct 20:42
fbf54f7

Added

  • Added background initialization support to prevent ANRs during app startup. Use IterableApi.initializeInBackground() instead of initialize() 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 to IterableConfig to support CORS for self-hosted custom fonts and external resources in WebView-based messages (in-app, inbox, embedded messages).

3.6.1

Choose a tag to compare

@joaodordio joaodordio released this 03 Oct 10:10
1a5cb2c

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

Choose a tag to compare

@Ayyanchira Ayyanchira released this 03 Sep 20:43
dfb9071

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).
  • IterableConfig is updated with an enableUnknownUserActivation flag 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.