From 948933e3800f929283a9bcb957a585b5a9ddf1e0 Mon Sep 17 00:00:00 2001 From: grakovne Date: Mon, 23 Dec 2024 11:00:07 +0100 Subject: [PATCH] fix app crash when tried to download the empty book or podcast --- app/build.gradle.kts | 4 ++-- .../grakovne/lissen/content/cache/ContentCachingService.kt | 6 +++--- .../main/java/org/grakovne/lissen/widget/MediaRepository.kt | 5 +++++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 757f7fa4..5172c2f1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -29,8 +29,8 @@ android { applicationId = "org.grakovne.lissen" minSdk = 28 targetSdk = 35 - versionCode = 59 - versionName = "1.1.28" + versionCode = 60 + versionName = "1.1.29" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/app/src/main/java/org/grakovne/lissen/content/cache/ContentCachingService.kt b/app/src/main/java/org/grakovne/lissen/content/cache/ContentCachingService.kt index e370af02..94fbf42e 100644 --- a/app/src/main/java/org/grakovne/lissen/content/cache/ContentCachingService.kt +++ b/app/src/main/java/org/grakovne/lissen/content/cache/ContentCachingService.kt @@ -226,10 +226,10 @@ class ContentCachingService @Inject constructor( return when (option) { AllItemsDownloadOption -> book.chapters - CurrentItemDownloadOption -> listOf(book.chapters[chapterIndex]) + CurrentItemDownloadOption -> listOfNotNull(book.chapters.getOrNull(chapterIndex)) is NumberItemDownloadOption -> book.chapters.subList( - fromIndex = chapterIndex, - toIndex = (chapterIndex + option.itemsNumber).coerceAtMost(book.chapters.size), + chapterIndex.coerceAtLeast(0), + (chapterIndex + option.itemsNumber).coerceIn(chapterIndex..book.chapters.size), ) } } diff --git a/app/src/main/java/org/grakovne/lissen/widget/MediaRepository.kt b/app/src/main/java/org/grakovne/lissen/widget/MediaRepository.kt index e12c3076..6a4f1e54 100644 --- a/app/src/main/java/org/grakovne/lissen/widget/MediaRepository.kt +++ b/app/src/main/java/org/grakovne/lissen/widget/MediaRepository.kt @@ -408,6 +408,11 @@ class MediaRepository @Inject constructor( private fun seekTo(position: Double) { val book = playingBook.value ?: return + if (book.chapters.isEmpty()) { + Log.d(TAG, "Tried to seek on the empty book") + return + } + val overallDuration = book .chapters .sumOf { it.duration }