Skip to main content

Maestro Overlay

Overview

The Maestro SDK provides tools for enhancing user experiences in betting apps, including the MaestroOverlay() composable for displaying celebratory overlays when users win bets. This document outlines the current implementation, planned dynamic overlay functionality using the MaestroEventDelegate interface.

MaestroOverlay Feature

Current Implementation

The MaestroOverlay() composable allows manual display of a celebratory overlay when a user wins a bet or a Fantasy event happens.

Usage

  1. Initialize the Maestro SDK with a delegate conforming to MaestroEventDelegate.
  2. Use the MaestroOverlay() composable in your Jetpack Compose UI.

Example:

@Composable
fun MyScreen() {
// Obtain the event from the SDK upon the invocation of shouldShowOverlay.
// Ensure to nullify the event upon the invocation of shouldHideOverlay.
val overlayEvent: MaestroOverlayEvent? = ...
if (overlayEvent != null) {
val overlayVM = viewModel(
modelClass = MaestroOverlayViewModel::class.java,
factory = MaestroOverlayViewModelFactory(sdk = sdk),
key = "Overlay" + sdk.hashCode().toString(),
)
MaestroOverlay(
viewModel = overlayVM,
onDismissed = { ... },
event = overlayEvent,
)
}
}

Notes

The client app should maintain a state of MaestroOverlayEvent instances upon the SDK calling shouldShowOverlay and shouldHideOverlay methods.

Delegate Methods

  • shouldShowOverlay(event: MaestroOverlayEvent): Notifies the client app to display the overlay for a specific event.
  • shouldHideOverlay(): Notifies the client app to dismiss the overlay.

Workflow

  1. The SDK detects a bet win or a fantasy event
  2. The SDK calls shouldShowOverlay(event) on the client delegate.
  3. The Client app shows maintains a state of this event (e.g. with a mutable state or a StateFlow)
  4. The Client app passes the event to the MaestroOverlay composable
  5. The SDK calls shouldHideOverlay() after a certain duration/event.
  6. The Client app hides the overlay (e.g. by nullifying the mutable state or a StateFlow)