in slideshow/src/main/java/com/zachklipp/richtext/ui/slideshow/Slideshow.kt [324:340]
fun navigate(forward: Boolean) {
val interceptors = navigationInterceptorsBySlide.getOrElse(requestedSlide, ::mutableListOf)
// Iterate reversed so that later interceptors can intercept from earlier ones.
for (i in interceptors.indices.reversed()) {
val interceptor = interceptors[i]
if (interceptor.invoke(forward)) return
}
requestedSlide = if (forward) {
navigatedForward = true
min(requestedSlide + 1, slides.size)
} else {
navigatedForward = false
max(requestedSlide - 1, 0)
}
}