Skip to content

Fix bug where some items don't have chapters#512

Merged
r0adkll merged 14 commits intomainfrom
dh/fix-chapterForDuration
Dec 14, 2025
Merged

Fix bug where some items don't have chapters#512
r0adkll merged 14 commits intomainfrom
dh/fix-chapterForDuration

Conversation

@r0adkll
Copy link
Owner

@r0adkll r0adkll commented Dec 14, 2025

From crashlytics we are seeing a host of crashes like

Fatal Exception: java.lang.IllegalStateException: Unable to find chapter for duration 0
       at app.campfire.core.model.LibraryItem.getChapterForDuration(LibraryItem.java:43)
       at app.campfire.core.model.Session.getChapter(Session.kt:42)

From the logs it looks like these might be items without chapters, or items with mis-aligned chapters.

This PR updates some scenarios to fallback on AudioTracks instead of relying on Chapters themselves. The latter which in retrospect are probably more of a UI/Display concern than a representation of audio files to play

@github-actions
Copy link

github-actions bot commented Dec 14, 2025

Warnings
⚠️ Big PR, try to keep changes smaller if you can
Messages
📖 This PR has been checked by Danger
📖

ℹ️ Migrating Database from 2 to 3

Generated by 🚫 Danger Kotlin against e48d894

@github-actions
Copy link

github-actions bot commented Dec 14, 2025

Android APK @ 0b79ba7

@r0adkll r0adkll force-pushed the dh/fix-chapterForDuration branch from cad531b to 9f7d16d Compare December 14, 2025 20:51
@Rotom-Bot
Copy link
Collaborator

Rotom-Bot commented Dec 14, 2025

Code Coverage

File Coverage [9.57%]
core/src/commonMain/kotlin/app/campfire/core/model/AudioTrack.kt 0.00%
core/src/commonMain/kotlin/app/campfire/core/model/LibraryItem.kt 70.00%
core/src/commonMain/kotlin/app/campfire/core/model/Session.kt 52.38%
core/src/commonMain/kotlin/app/campfire/core/util/Requires.kt 0.00%
data/analytics/api/src/commonMain/kotlin/app/campfire/analytics/events/PlaybackActionEvent.kt 0.00%
data/db/mapping/src/commonMain/kotlin/app/campfire/data/mapping/AudioTrackMapping.kt 0.00%
data/db/mapping/src/commonMain/kotlin/app/campfire/data/mapping/LibraryItemMapping.kt 0.00%
data/network/api/src/commonMain/kotlin/app/campfire/network/models/AudioTrack.kt 0.00%
data/network/api/src/commonMain/kotlin/app/campfire/network/models/MetaTags.kt 0.00%
features/libraries/ui/src/commonMain/kotlin/app/campfire/libraries/ui/detail/LibraryItemPresenter.kt 87.40%
features/libraries/ui/src/commonMain/kotlin/app/campfire/libraries/ui/detail/LibraryItemUiState.kt 88.00%
features/libraries/ui/src/commonMain/kotlin/app/campfire/libraries/ui/detail/composables/slots/AudioTrackSlot.kt 0.00%
features/libraries/ui/src/commonMain/kotlin/app/campfire/libraries/ui/detail/composables/slots/ChapterHeaderSlot.kt 95.00%
features/sessions/impl/src/commonMain/kotlin/app/campfire/sessions/sync/MediaProgressSynchronizer.kt 0.00%
features/sessions/ui/src/commonMain/kotlin/app/campfire/sessions/ui/CollapsedPlaybackBar.kt 0.00%
features/sessions/ui/src/commonMain/kotlin/app/campfire/sessions/ui/ExpandedPlaybackBar.kt 0.00%
features/sessions/ui/src/commonMain/kotlin/app/campfire/sessions/ui/PlaybackBar.kt 0.00%
features/sessions/ui/src/commonMain/kotlin/app/campfire/sessions/ui/PlaybackBottomBar.kt 0.00%
features/sessions/ui/src/commonMain/kotlin/app/campfire/sessions/ui/sheets/tracks/AudioTrackListBottomSheet.kt 0.00%
infra/audioplayer/impl/src/androidMain/kotlin/app/campfire/audioplayer/impl/ExoPlayerAudioPlayer.kt 0.00%
infra/audioplayer/impl/src/commonMain/kotlin/app/campfire/audioplayer/impl/InvalidPlaybackSessionException.kt 0.00%
infra/audioplayer/impl/src/commonMain/kotlin/app/campfire/audioplayer/impl/mediaitem/MediaItemBuilder.kt 0.00%
infra/audioplayer/impl/src/commonMain/kotlin/app/campfire/audioplayer/impl/session/DefaultPlaybackSessionManager.kt 0.00%
infra/audioplayer/impl/src/jvmMain/kotlin/app/campfire/audioplayer/impl/VlcAudioPlayer.kt 0.00%
ui/theming/impl/src/commonMain/kotlin/app/campfire/ui/theming/CachingThemeManager.kt 0.00%
ui/widgets/impl/src/androidMain/kotlin/app/campfire/widgets/PlayerWidget.kt 0.00%
Total Project Coverage 6.54%

@r0adkll r0adkll enabled auto-merge (squash) December 14, 2025 20:58
@r0adkll r0adkll merged commit b470fa0 into main Dec 14, 2025
6 checks passed
@r0adkll r0adkll deleted the dh/fix-chapterForDuration branch December 14, 2025 21:49
r0adkll added a commit that referenced this pull request Dec 14, 2025
Co-authored-by: Rotom-Bot <veedubusc+deckbox@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants