Submission checklist
Description
We show short Rive animations as TV overlays. When the animation finishes,
we remove the overlay from the screen. To know when it finishes, we need a
signal from the runtime.
What we did on 11.7.1
We collected RiveWorker.settledFlow and waited for our state machine's
handle. When it settled after our trigger fired, we removed the overlay.
What changed in 11.8.0
settledFlow is gone. The replacement, StateMachine.settled: StateFlow<Boolean>, is internal. So there is now no public way to know
that a state machine has finished.
We also can't use Rive events for this: our files fire an "eventDone" event,
but the Compose API has no way to listen to events (the legacy
RiveFileController.addEventListener does, but we migrated off the legacy
view).
Ask
One of these would unblock us:
- Make
StateMachine.settled public. The docs on it are already written,
and Rive() and RiveCanvasSession both use it internally.
- Or expose state machine events (like
eventDone) in the Compose API,
like the legacy listener API does.
We would rather not call the internal member through
@Suppress("INVISIBLE_MEMBER") or a Java bridge, so an official API would
be great.
Previous working version
11.7.1,
Reproduction steps / code
No response
Upload your reproduction files / stack trace
No response
Source .riv / .rev file
No response
Screenshots / video
No response
Rive Android runtime version
11.8.0
Rive API
Compose
Device
Any
Device OS
Any
App minimum SDK level
21
App target SDK level
36
App NDK level
No response
Other Rive runtimes affected
No response
Dependencies with native libraries
No response
Additional context
No response
Submission checklist
rive-androidDescription
We show short Rive animations as TV overlays. When the animation finishes,
we remove the overlay from the screen. To know when it finishes, we need a
signal from the runtime.
What we did on 11.7.1
We collected
RiveWorker.settledFlowand waited for our state machine'shandle. When it settled after our trigger fired, we removed the overlay.
What changed in 11.8.0
settledFlowis gone. The replacement,StateMachine.settled: StateFlow<Boolean>, isinternal. So there is now no public way to knowthat a state machine has finished.
We also can't use Rive events for this: our files fire an "eventDone" event,
but the Compose API has no way to listen to events (the legacy
RiveFileController.addEventListenerdoes, but we migrated off the legacyview).
Ask
One of these would unblock us:
StateMachine.settledpublic. The docs on it are already written,and
Rive()andRiveCanvasSessionboth use it internally.eventDone) in the Compose API,like the legacy listener API does.
We would rather not call the internal member through
@Suppress("INVISIBLE_MEMBER")or a Java bridge, so an official API wouldbe great.
Previous working version
11.7.1,
Reproduction steps / code
No response
Upload your reproduction files / stack trace
No response
Source
.riv/.revfileNo response
Screenshots / video
No response
Rive Android runtime version
11.8.0
Rive API
Compose
Device
Any
Device OS
Any
App minimum SDK level
21
App target SDK level
36
App NDK level
No response
Other Rive runtimes affected
No response
Dependencies with native libraries
No response
Additional context
No response