rive-app / rive-app/rive-android
Nested Animation Triggers Fail After Completion
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 538
- Forks
- 66
- PR merge metrics
- No merged PRs in 30d
Description
<-- Thanks for using Rive!
If something isn't working like you expected, please:
- Make sure you've updated rive-android to the latest version:
https://search.maven.org/artifact/app.rive/rive-android - Check out our documentation
https://rive.app/community/doc - Get help on our forums
https://rive.app/community/forums/home - You can file a new feature request at
https://rive.app/community/forums/feature-requests/fsnweJpNLqIh
If you think you found a bug or if you can't find what you're looking for
in our docs, fill out the template below.
-->
Description
<-- A clear and concise description of what the problem is. -->
I've created an artboard where animations start with a trigger, and I've also made another artboard that nests several of these. On Android, I'm firing the triggers of these nested artboards using fireStateAtPath.
The animations play continuously as long as I keep firing the triggers before one animation finishes. However, if I fire the trigger after an animation has completed, it doesn't play.
Is this an incorrect StateMachine setup, or is this kind of use case not intended?
I've prepared a minimal project here to demonstrate this behavior. Could you please take a look?
Provide a Repro
<--
Please provide the most minimal repro you can:
- If the problem is small enough, paste a code snippet
- Otherwise, you can attach a ZIP archive or paste a link to a GitHub repository with the app bundle
that is reproducing the issue
-->
https://github.com/ttymsd/rive-sample-report
Source .riv/.rev file
https://github.com/ttymsd/rive-sample-report/blob/main/app/src/main/res/raw/untitled.riv
<--
Attaching runtime-exported .riv file that reproduces the issue is immensely helpful for our team
to identify the problem as fast as possible and fix it.
Please also include the source (.rev)
by downloading a backup from the Editor.
N.B. Because GitHub only supports certain file types use a ZIP archive to upload .riv/.rev files
to this issue.
You can also privately share the .riv/.rev file with us at hello@rive.app.
-->
Expected behavior
<-- A clear and concise description of what you expected to happen. -->
Users will trigger animations by tapping a button. On the artboard, several nested artboards are placed at various coordinates, and I'm controlling which artboard's trigger fires via my Kotlin implementation.
I want the animation to progress from 1st to 2nd to 3rd, and then if the button is tapped again after a short delay, I want it to start from the 4th animation. However, if there's a delay, the 4th animation doesn't play. If I keep tapping continuously, animations from the 4th onward will play.
Screenshots
<-- If applicable, add screenshots to help explain your problem. -->
Device & Versions (please complete the following information)
- Device: Pixel7Pro
- SDK Level : 35
I haven't tested this on other devices.
Additional context
<-- Add any other context about the problem here. -->
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked minimal project, especially app/src/main/res/raw/untitled.riv, and reproduce the delayed trigger behavior on the reported Android setup. Trace the Kotlin fireStateAtPath usage and compare triggers fired continuously with those fired after completion. Done means the fourth animation plays when its trigger is fired after a delay.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100