// }
// see if it's already tracked
Timeline existing = this.getRunningTimeline(timeline);
if (existing == null) {
TimelineState oldState = timeline.getState();
timeline.timeUntilPlay = timeline.initialDelay - msToSkip;
if (timeline.timeUntilPlay < 0) {
timeline.durationFraction = 1.0f
- (float) -timeline.timeUntilPlay
/ (float) timeline.duration;
timeline.timelinePosition = timeline.ease
.map(timeline.durationFraction);
timeline.timeUntilPlay = 0;
} else {
timeline.durationFraction = 1.0f;
timeline.timelinePosition = 1.0f;
}
timeline.pushState(TimelineState.PLAYING_REVERSE);
timeline.pushState(TimelineState.READY);
this.addTimeline(timeline);
this.callbackCallTimelineStateChanged(timeline, oldState);
} else {
TimelineState oldState = existing.getState();
if (oldState == TimelineState.READY) {
// the timeline remains READY, but after that it will be
// PLAYING_REVERSE
existing.popState();
existing.replaceState(TimelineState.PLAYING_REVERSE);