diff --git a/app/src/main/java/org/grakovne/lissen/ui/screens/player/PlayerScreen.kt b/app/src/main/java/org/grakovne/lissen/ui/screens/player/PlayerScreen.kt index be665710..6dbb48dc 100644 --- a/app/src/main/java/org/grakovne/lissen/ui/screens/player/PlayerScreen.kt +++ b/app/src/main/java/org/grakovne/lissen/ui/screens/player/PlayerScreen.kt @@ -1,6 +1,5 @@ package org.grakovne.lissen.ui.screens.player -import android.content.Context import androidx.activity.compose.BackHandler import androidx.compose.animation.AnimatedContent import androidx.compose.animation.AnimatedVisibility @@ -42,7 +41,6 @@ import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import coil.ImageLoader import org.grakovne.lissen.R -import org.grakovne.lissen.channel.common.LibraryType import org.grakovne.lissen.domain.DetailedItem import org.grakovne.lissen.ui.icons.Search import org.grakovne.lissen.ui.navigation.AppNavigationService @@ -194,6 +192,7 @@ fun PlayerScreen( TrackDetailsComposable( viewModel = playerViewModel, imageLoader = imageLoader, + libraryViewModel = libraryViewModel, ) } @@ -230,4 +229,4 @@ private fun playingItemChanged( private fun cachePolicyChanged( contentCachingModelView: ContentCachingModelView, playingBook: DetailedItem?, -) = contentCachingModelView.localCacheUsing() != playingBook?.localProvided \ No newline at end of file +) = contentCachingModelView.localCacheUsing() != playingBook?.localProvided diff --git a/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/PlayingQueueComposable.kt b/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/PlayingQueueComposable.kt index 8ae5e42d..28c72358 100644 --- a/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/PlayingQueueComposable.kt +++ b/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/PlayingQueueComposable.kt @@ -41,14 +41,12 @@ import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.Velocity import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import kotlinx.coroutines.android.awaitFrame import kotlinx.coroutines.launch -import org.grakovne.lissen.R import org.grakovne.lissen.viewmodel.LibraryViewModel import org.grakovne.lissen.viewmodel.PlayerViewModel diff --git a/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/TrackDetailsComposable.kt b/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/TrackDetailsComposable.kt index ac1c074e..a07ff304 100644 --- a/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/TrackDetailsComposable.kt +++ b/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/TrackDetailsComposable.kt @@ -1,5 +1,6 @@ package org.grakovne.lissen.ui.screens.player.composable +import android.content.Context import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.aspectRatio @@ -22,7 +23,6 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow @@ -30,11 +30,15 @@ import androidx.compose.ui.unit.dp import coil.ImageLoader import coil.request.ImageRequest import org.grakovne.lissen.R +import org.grakovne.lissen.channel.common.LibraryType +import org.grakovne.lissen.domain.DetailedItem import org.grakovne.lissen.ui.components.AsyncShimmeringImage +import org.grakovne.lissen.viewmodel.LibraryViewModel import org.grakovne.lissen.viewmodel.PlayerViewModel @Composable fun TrackDetailsComposable( + libraryViewModel: LibraryViewModel, viewModel: PlayerViewModel, modifier: Modifier = Modifier, imageLoader: ImageLoader, @@ -89,10 +93,11 @@ fun TrackDetailsComposable( Spacer(modifier = Modifier.height(4.dp)) Text( - text = stringResource( - R.string.player_screen_now_playing_title_chapter_of, - currentTrackIndex + 1, - book?.chapters?.size ?: "?", + text = provideChapterNumberTitle( + currentTrackIndex = currentTrackIndex + 1, + book = book, + libraryType = libraryViewModel.fetchPreferredLibraryType(), + context = context, ), style = typography.bodySmall, color = colorScheme.onBackground.copy(alpha = 0.6f), @@ -101,3 +106,28 @@ fun TrackDetailsComposable( ) } } + +private fun provideChapterNumberTitle( + currentTrackIndex: Int, + book: DetailedItem?, + libraryType: LibraryType, + context: Context, +): String = when (libraryType) { + LibraryType.LIBRARY -> context.getString( + R.string.player_screen_now_playing_title_chapter_of, + currentTrackIndex + 1, + book?.chapters?.size ?: "?", + ) + + LibraryType.PODCAST -> context.getString( + R.string.player_screen_now_playing_title_podcast_of, + currentTrackIndex + 1, + book?.chapters?.size ?: "?", + ) + + LibraryType.UNKNOWN -> context.getString( + R.string.player_screen_now_playing_title_item_of, + currentTrackIndex + 1, + book?.chapters?.size ?: "?", + ) +} diff --git a/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/provideNowPlayingTitle.kt b/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/provideNowPlayingTitle.kt index 5e3cbb60..8c4db7bd 100644 --- a/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/provideNowPlayingTitle.kt +++ b/app/src/main/java/org/grakovne/lissen/ui/screens/player/composable/provideNowPlayingTitle.kt @@ -6,7 +6,7 @@ import org.grakovne.lissen.channel.common.LibraryType fun provideNowPlayingTitle( libraryType: LibraryType, - context: Context + context: Context, ) = when (libraryType) { LibraryType.LIBRARY -> context.getString(R.string.player_screen_library_playing_title) LibraryType.PODCAST -> context.getString(R.string.player_screen_podcast_playing_title) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index ba33086f..1eb6f02e 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -15,7 +15,7 @@ Эпизоды Настройки "Список глав" - Эпизод %1$s из %2$s + Глава %1$d из %2$s Настройки Выбранная библиотека Подключен как @@ -80,4 +80,6 @@ Удалить загруженные элементы Список выпусков Список элементов + Выпуск %1$d из %2$s + Элемент %1$d из %2$s \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eb739b7f..9a3ba3a4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -17,7 +17,9 @@ Playing chapters Playing episodes Playing items - Chapter %1$s of %2$s + Chapter %1$d of %2$s + Episode %1$d of %2$s + Item %1$d of %2$s Preferences Preferred library Connected as