mirror of
https://github.com/bbara04/Purefin.git
synced 2026-03-31 17:10:08 +02:00
Return to episode screen after playback
This commit is contained in:
@@ -107,7 +107,6 @@ internal fun EpisodeDetails(
|
|||||||
episode: Episode,
|
episode: Episode,
|
||||||
downloadState: DownloadState,
|
downloadState: DownloadState,
|
||||||
onDownloadClick: () -> Unit,
|
onDownloadClick: () -> Unit,
|
||||||
onPlaybackStarted: () -> Unit,
|
|
||||||
modifier: Modifier = Modifier
|
modifier: Modifier = Modifier
|
||||||
) {
|
) {
|
||||||
val scheme = MaterialTheme.colorScheme
|
val scheme = MaterialTheme.colorScheme
|
||||||
@@ -118,7 +117,6 @@ internal fun EpisodeDetails(
|
|||||||
val intent = Intent(context, PlayerActivity::class.java)
|
val intent = Intent(context, PlayerActivity::class.java)
|
||||||
intent.putExtra("MEDIA_ID", episode.id.toString())
|
intent.putExtra("MEDIA_ID", episode.id.toString())
|
||||||
context.startActivity(intent)
|
context.startActivity(intent)
|
||||||
onPlaybackStarted()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ fun EpisodeScreen(
|
|||||||
downloadState = downloadState.value,
|
downloadState = downloadState.value,
|
||||||
onBack = viewModel::onBack,
|
onBack = viewModel::onBack,
|
||||||
onSeriesClick = viewModel::onSeriesClick,
|
onSeriesClick = viewModel::onSeriesClick,
|
||||||
onPlaybackStarted = viewModel::onPlaybackStarted,
|
|
||||||
onDownloadClick = onDownloadClick,
|
onDownloadClick = onDownloadClick,
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
)
|
)
|
||||||
@@ -85,7 +84,6 @@ private fun EpisodeScreenInternal(
|
|||||||
downloadState: DownloadState,
|
downloadState: DownloadState,
|
||||||
onBack: () -> Unit,
|
onBack: () -> Unit,
|
||||||
onSeriesClick: () -> Unit,
|
onSeriesClick: () -> Unit,
|
||||||
onPlaybackStarted: () -> Unit,
|
|
||||||
onDownloadClick: () -> Unit,
|
onDownloadClick: () -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
@@ -117,7 +115,6 @@ private fun EpisodeScreenInternal(
|
|||||||
episode = episode,
|
episode = episode,
|
||||||
downloadState = downloadState,
|
downloadState = downloadState,
|
||||||
onDownloadClick = onDownloadClick,
|
onDownloadClick = onDownloadClick,
|
||||||
onPlaybackStarted = onPlaybackStarted,
|
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(horizontal = 16.dp)
|
.padding(horizontal = 16.dp)
|
||||||
|
|||||||
@@ -63,15 +63,18 @@ import hu.bbara.purefin.common.ui.components.GhostIconButton
|
|||||||
import hu.bbara.purefin.common.ui.components.MediaActionButton
|
import hu.bbara.purefin.common.ui.components.MediaActionButton
|
||||||
import hu.bbara.purefin.common.ui.components.MediaProgressBar
|
import hu.bbara.purefin.common.ui.components.MediaProgressBar
|
||||||
import hu.bbara.purefin.common.ui.components.MediaResumeButton
|
import hu.bbara.purefin.common.ui.components.MediaResumeButton
|
||||||
import hu.bbara.purefin.player.PlayerActivity
|
|
||||||
import hu.bbara.purefin.common.ui.components.PurefinAsyncImage
|
import hu.bbara.purefin.common.ui.components.PurefinAsyncImage
|
||||||
import hu.bbara.purefin.common.ui.components.WatchStateIndicator
|
import hu.bbara.purefin.common.ui.components.WatchStateIndicator
|
||||||
import hu.bbara.purefin.feature.download.DownloadState
|
import hu.bbara.purefin.core.data.navigation.EpisodeDto
|
||||||
|
import hu.bbara.purefin.core.data.navigation.LocalNavigationManager
|
||||||
|
import hu.bbara.purefin.core.data.navigation.Route
|
||||||
import hu.bbara.purefin.core.model.CastMember
|
import hu.bbara.purefin.core.model.CastMember
|
||||||
import hu.bbara.purefin.core.model.Episode
|
import hu.bbara.purefin.core.model.Episode
|
||||||
import hu.bbara.purefin.core.model.Season
|
import hu.bbara.purefin.core.model.Season
|
||||||
import hu.bbara.purefin.core.model.Series
|
import hu.bbara.purefin.core.model.Series
|
||||||
|
import hu.bbara.purefin.feature.download.DownloadState
|
||||||
import hu.bbara.purefin.feature.shared.content.series.SeriesViewModel
|
import hu.bbara.purefin.feature.shared.content.series.SeriesViewModel
|
||||||
|
import hu.bbara.purefin.player.PlayerActivity
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
internal fun SeriesTopBar(
|
internal fun SeriesTopBar(
|
||||||
@@ -127,14 +130,24 @@ internal fun SeriesActionButtons(
|
|||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
|
val navigationManager = LocalNavigationManager.current
|
||||||
val scheme = MaterialTheme.colorScheme
|
val scheme = MaterialTheme.colorScheme
|
||||||
var showDownloadDialog by remember { mutableStateOf(false) }
|
var showDownloadDialog by remember { mutableStateOf(false) }
|
||||||
val episodeId = nextUpEpisode?.id
|
val episodeId = nextUpEpisode?.id
|
||||||
val playAction = remember(episodeId) {
|
val playAction = remember(nextUpEpisode) {
|
||||||
episodeId?.let { id ->
|
nextUpEpisode?.let { episode ->
|
||||||
{
|
{
|
||||||
|
navigationManager.navigate(
|
||||||
|
Route.EpisodeRoute(
|
||||||
|
EpisodeDto(
|
||||||
|
id = episode.id,
|
||||||
|
seasonId = episode.seasonId,
|
||||||
|
seriesId = episode.seriesId
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
val intent = Intent(context, PlayerActivity::class.java)
|
val intent = Intent(context, PlayerActivity::class.java)
|
||||||
intent.putExtra("MEDIA_ID", id.toString())
|
intent.putExtra("MEDIA_ID", episode.id.toString())
|
||||||
context.startActivity(intent)
|
context.startActivity(intent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ import androidx.lifecycle.viewModelScope
|
|||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import hu.bbara.purefin.core.data.AppContentRepository
|
import hu.bbara.purefin.core.data.AppContentRepository
|
||||||
import hu.bbara.purefin.core.data.navigation.NavigationManager
|
import hu.bbara.purefin.core.data.navigation.NavigationManager
|
||||||
import hu.bbara.purefin.core.data.navigation.Route
|
|
||||||
import hu.bbara.purefin.core.data.navigation.SeriesDto
|
|
||||||
import hu.bbara.purefin.core.model.Episode
|
import hu.bbara.purefin.core.model.Episode
|
||||||
import hu.bbara.purefin.feature.download.DownloadState
|
import hu.bbara.purefin.feature.download.DownloadState
|
||||||
import hu.bbara.purefin.feature.download.MediaDownloadManager
|
import hu.bbara.purefin.feature.download.MediaDownloadManager
|
||||||
@@ -51,20 +49,8 @@ class EpisodeScreenViewModel @Inject constructor(
|
|||||||
navigationManager.pop()
|
navigationManager.pop()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onPlay() {
|
|
||||||
val id = _episodeId.value?.toString() ?: return
|
|
||||||
navigationManager.navigate(Route.PlayerRoute(mediaId = id))
|
|
||||||
}
|
|
||||||
|
|
||||||
fun onPlaybackStarted() {
|
|
||||||
val seriesId = _seriesId.value ?: return
|
|
||||||
navigationManager.pop()
|
|
||||||
navigationManager.navigate(Route.SeriesRoute(SeriesDto(id = seriesId)))
|
|
||||||
}
|
|
||||||
|
|
||||||
fun onSeriesClick() {
|
fun onSeriesClick() {
|
||||||
val seriesId = _seriesId.value ?: return
|
navigationManager.pop()
|
||||||
navigationManager.navigate(Route.SeriesRoute(SeriesDto(id = seriesId)))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun selectEpisode(seriesId: UUID, seasonId: UUID, episodeId: UUID) {
|
fun selectEpisode(seriesId: UUID, seasonId: UUID, episodeId: UUID) {
|
||||||
|
|||||||
Reference in New Issue
Block a user