GuidesAPI ReferenceRelease Notes
HomeLog InHome
Release Notes

1.16.0 - Android

ChangeLog

Added

Updated

  • When hosting application is using the BlazeSDK.setExternalUserId method, the SDK will no longer clean the local db (meaning, unread states will be preserved across multiple externals ids on the same device).

Fixed

  • Fixed an issue caused black screen when no content is available for the first tab.

Widget Play Enhancement & Click Handler Updates

✨ What's New

Enhanced Play Method with Position Control

Widgets can now play content from specific positions using the BlazeWidgetPlayFrom sealed class.

widget.play()                                           // First item (default)
widget.play(BlazeWidgetPlayFrom.Index(2))              // Specific index
widget.play(BlazeWidgetPlayFrom.ContentId("story-123")) // Specific content ID

BlazeWidgetPlayFrom Sealed Class:

sealed class BlazeWidgetPlayFrom {
    data class Index(val index: Int) : BlazeWidgetPlayFrom()
    data class ContentId(val contentId: String) : BlazeWidgetPlayFrom()
}

Supported Widgets:

  • BlazeStoriesWidget (Native & Compose)
  • BlazeMomentsWidget (Native & Compose)
  • BlazeVideosWidget (Native & Compose)

🔴 Breaking Change: onWidgetItemClickHandler

The handler now receives parameters with context about the clicked item.

Parameter Data Class

@Keep
data class BlazeWidgetItemClickParams(
    val widgetId: String,        // ID of the widget
    val contentIndex: Int,       // Zero-based index of clicked item
    val contentId: String        // Unique content ID
)

Signature Change

Old:

onWidgetItemClickHandler = {
    BlazeWidgetItemClickHandlerState.HANDLED_BY_APP
}

New:

onWidgetItemClickHandler = { params ->
    // params.widgetId, params.contentIndex, params.contentId
    BlazeWidgetItemClickHandlerState.HANDLED_BY_APP
}

📖 Migration Guide

If You're NOT Using onWidgetItemClickHandler

No action required - your code works without changes.

If You ARE Using onWidgetItemClickHandler

Simply add the params parameter to your handler:

// Before
onWidgetItemClickHandler = {
    performCustomAction()
    BlazeWidgetItemClickHandlerState.HANDLED_BY_APP
}

// After
onWidgetItemClickHandler = { params ->
    performCustomAction()
    BlazeWidgetItemClickHandlerState.HANDLED_BY_APP
}

Optional - Access the new parameters:

onWidgetItemClickHandler = { params ->
    Log.d("Widget", "ID: ${params.widgetId}")
    Log.d("Widget", "Index: ${params.contentIndex}")
    Log.d("Widget", "Content ID: ${params.contentId}")
    BlazeWidgetItemClickHandlerState.HANDLED_BY_APP
}

📚 API Reference

Play Methods

// All widgets (Native & Compose)
fun play()                              // First item
fun play(from: BlazeWidgetPlayFrom)     // Specific position

Handler

onWidgetItemClickHandler: ((BlazeWidgetItemClickParams) -> BlazeWidgetItemClickHandlerState)? = null