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
- Initialize the Maestro SDK with a delegate conforming to
MaestroEventDelegate
. - 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 specificevent
.shouldHideOverlay()
: Notifies the client app to dismiss the overlay.
Workflow
- The SDK detects a bet win or a fantasy event
- The SDK calls
shouldShowOverlay(event)
on the client delegate. - The Client app shows maintains a state of this event (e.g. with a mutable state or a
StateFlow
) - The Client app passes the event to the
MaestroOverlay
composable - The SDK calls
shouldHideOverlay()
after a certain duration/event. - The Client app hides the overlay (e.g. by nullifying the mutable state or a
StateFlow
)