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