From 71e5e671568e449ade1312e16afd9dfdc0641600 Mon Sep 17 00:00:00 2001 From: Acclorite <140836141+Acclorite@users.noreply.github.com> Date: Thu, 2 Jan 2025 17:21:17 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Fix=20IndexOutOfBounds?= =?UTF-8?q?=20crash?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../acclorite/book_story/ui/reader/ReaderModel.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderModel.kt b/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderModel.kt index 30e35799..7be9693c 100644 --- a/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderModel.kt +++ b/app/src/main/java/ua/acclorite/book_story/ui/reader/ReaderModel.kt @@ -560,13 +560,18 @@ class ReaderModel @Inject constructor( } private fun findCurrentChapter(index: Int): Chapter? { - for (textIndex in index downTo 0) { - val readerText = _state.value.text[textIndex] - if (readerText is Chapter) { - return readerText + return try { + for (textIndex in index downTo 0) { + val readerText = _state.value.text.getOrNull(textIndex) ?: break + if (readerText is Chapter) { + return readerText + } } + null + } catch (e: Exception) { + e.printStackTrace() + null } - return null } private fun calculateProgress(firstVisibleItemIndex: Int? = null): Float {