mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-10 00:21:19 +02:00
More bug fixes (#45)
Fixes: * Issue from #39 where pressing back from playback went back two screens instead of one * Sometimes having to click on a server twice to switch to it * Update UI when marking a single season as watched * Fix needing to press back twice to hide skip segment buttons * Fix skip intro/outro behaviors being swapped * Always attempt to save playback progress when stopping playback
This commit is contained in:
parent
95a74b73ff
commit
77aaa87126
6 changed files with 51 additions and 35 deletions
|
|
@ -127,11 +127,7 @@ fun SeriesDetails(
|
|||
season,
|
||||
onClickItem = { viewModel.navigateTo(it.destination()) },
|
||||
markPlayed = { played ->
|
||||
viewModel.setWatched(
|
||||
season.id,
|
||||
played,
|
||||
null,
|
||||
)
|
||||
viewModel.setSeasonWatched(season.id, played)
|
||||
},
|
||||
)
|
||||
},
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ class SeriesViewModel
|
|||
itemId: UUID,
|
||||
played: Boolean,
|
||||
listIndex: Int?,
|
||||
) = viewModelScope.launch(ExceptionHandler()) {
|
||||
) = viewModelScope.launch(Dispatchers.IO + ExceptionHandler()) {
|
||||
if (played) {
|
||||
api.playStateApi.markPlayedItem(itemId)
|
||||
} else {
|
||||
|
|
@ -231,6 +231,16 @@ class SeriesViewModel
|
|||
}
|
||||
}
|
||||
|
||||
fun setSeasonWatched(
|
||||
seasonId: UUID,
|
||||
played: Boolean,
|
||||
) = viewModelScope.launch(Dispatchers.IO + ExceptionHandler()) {
|
||||
setWatched(seasonId, played, null)
|
||||
val series = fetchItem(seriesId, null)
|
||||
val seasons = getSeasons(series)
|
||||
this@SeriesViewModel.seasons.setValueOnMain(seasons)
|
||||
}
|
||||
|
||||
fun setWatchedSeries(played: Boolean) =
|
||||
viewModelScope.launch(ExceptionHandler() + Dispatchers.IO) {
|
||||
if (played) {
|
||||
|
|
|
|||
|
|
@ -373,32 +373,32 @@ fun PlaybackPage(
|
|||
currentSegment = currentSegment,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// Ask to skip intros, etc button
|
||||
AnimatedVisibility(
|
||||
showSegment,
|
||||
modifier =
|
||||
Modifier
|
||||
.padding(40.dp)
|
||||
.align(Alignment.BottomEnd),
|
||||
) {
|
||||
currentSegment?.let { segment ->
|
||||
val focusRequester = remember { FocusRequester() }
|
||||
LaunchedEffect(Unit) {
|
||||
focusRequester.tryRequestFocus()
|
||||
delay(10.seconds)
|
||||
segmentCancelled = false
|
||||
}
|
||||
Button(
|
||||
onClick = {
|
||||
player.seekTo(segment.endTicks.ticks.inWholeMilliseconds)
|
||||
},
|
||||
modifier = Modifier.focusRequester(focusRequester),
|
||||
) {
|
||||
Text(
|
||||
text = "Skip ${segment.type.serialName}",
|
||||
)
|
||||
}
|
||||
// Ask to skip intros, etc button
|
||||
AnimatedVisibility(
|
||||
showSegment,
|
||||
modifier =
|
||||
Modifier
|
||||
.padding(40.dp)
|
||||
.align(Alignment.BottomEnd),
|
||||
) {
|
||||
currentSegment?.let { segment ->
|
||||
val focusRequester = remember { FocusRequester() }
|
||||
LaunchedEffect(Unit) {
|
||||
focusRequester.tryRequestFocus()
|
||||
delay(10.seconds)
|
||||
segmentCancelled = false
|
||||
}
|
||||
Button(
|
||||
onClick = {
|
||||
player.seekTo(segment.endTicks.ticks.inWholeMilliseconds)
|
||||
},
|
||||
modifier = Modifier.focusRequester(focusRequester),
|
||||
) {
|
||||
Text(
|
||||
text = "Skip ${segment.type.serialName}",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -619,8 +619,8 @@ class PlaybackViewModel
|
|||
MediaSegmentType.COMMERCIAL -> prefs.skipCommercials
|
||||
MediaSegmentType.PREVIEW -> prefs.skipPreviews
|
||||
MediaSegmentType.RECAP -> prefs.skipRecaps
|
||||
MediaSegmentType.OUTRO -> prefs.skipIntros
|
||||
MediaSegmentType.INTRO -> prefs.skipOutros
|
||||
MediaSegmentType.OUTRO -> prefs.skipOutros
|
||||
MediaSegmentType.INTRO -> prefs.skipIntros
|
||||
MediaSegmentType.UNKNOWN -> SkipSegmentBehavior.IGNORE
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
|
|
@ -731,8 +731,8 @@ class PlaybackViewModel
|
|||
}
|
||||
|
||||
fun release() {
|
||||
activityListener?.release()
|
||||
player.release()
|
||||
navigationManager.goBack()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue