diff --git a/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/MainActivity.kt b/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/MainActivity.kt
index 18a8d66..4493663 100644
--- a/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/MainActivity.kt
+++ b/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/MainActivity.kt
@@ -14,7 +14,7 @@ import androidx.lifecycle.lifecycleScope
import com.arkivanov.decompose.retainedComponent
import kotlinx.coroutines.launch
import ru.shadowsparky.koin
-import ru.shadowsparky.vbox.shared.presentation.LocalColorSchemeProvider
+import ru.shadowsparky.ui.theme.LocalColorSchemeProvider
import ru.shadowsparky.vbox.shared.presentation.Nav
import ru.shadowsparky.vbox.shared.presentation.RootComponent
import ru.shadowsparky.vbox.shared.presentation.RootFactory
diff --git a/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/piggy/Theme.kt b/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/piggy/Theme.kt
index cc7c7ff..51e71a4 100644
--- a/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/piggy/Theme.kt
+++ b/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/piggy/Theme.kt
@@ -86,4 +86,3 @@ private val darkScheme = darkColorScheme(
fun getPiggyColorScheme(): ColorScheme {
return if (isSystemInDarkTheme()) darkScheme else lightScheme
}
-
diff --git a/apps/vbox/client/androidApp/src/main/res/drawable/pig_launcher_foreground.xml b/apps/vbox/client/androidApp/src/main/res/drawable/pig_launcher_foreground.xml
index aaa26c7..45b9a0b 100644
--- a/apps/vbox/client/androidApp/src/main/res/drawable/pig_launcher_foreground.xml
+++ b/apps/vbox/client/androidApp/src/main/res/drawable/pig_launcher_foreground.xml
@@ -1,14 +1,95 @@
-
+ android:viewportWidth="471"
+ android:viewportHeight="458">
+
+ android:pathData="M197.58,203.61C170.88,160.97 122.56,149.44 92.05,188.63C74.25,212.83 70.43,237.04 45,250.87C31.02,258.93 33.56,276.22 50.09,281.99C84.42,294.66 140.36,278.53 168.34,250.87C186.14,233.58 195.04,217.44 197.58,203.61Z"
+ android:strokeLineJoin="round"
+ android:strokeWidth="7"
+ android:fillColor="#FFE1D8"
+ android:strokeColor="#7C5A50"
+ android:strokeLineCap="round"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/vbox/client/androidApp/src/main/res/drawable/pig_launcher_monochrome.xml b/apps/vbox/client/androidApp/src/main/res/drawable/pig_launcher_monochrome.xml
deleted file mode 100644
index aaa26c7..0000000
--- a/apps/vbox/client/androidApp/src/main/res/drawable/pig_launcher_monochrome.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
diff --git a/apps/vbox/client/androidApp/src/main/res/mipmap-anydpi-v26/pig_launcher.xml b/apps/vbox/client/androidApp/src/main/res/mipmap-anydpi-v26/pig_launcher.xml
index 8dc430c..f0338bc 100644
--- a/apps/vbox/client/androidApp/src/main/res/mipmap-anydpi-v26/pig_launcher.xml
+++ b/apps/vbox/client/androidApp/src/main/res/mipmap-anydpi-v26/pig_launcher.xml
@@ -2,5 +2,4 @@
-
diff --git a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/domain/PlayerInteractor.kt b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/domain/PlayerInteractor.kt
index fa69e95..33fbdcf 100644
--- a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/domain/PlayerInteractor.kt
+++ b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/domain/PlayerInteractor.kt
@@ -115,17 +115,20 @@ class PlayerInteractor(
}
private suspend fun saveTime(state: PlayerState) {
- with(cache) {
- movieId?.let {
- savedTimeRepository.setTime(
- SavedTimeInfo(
- movieId,
- seasonId,
- currentEpisodeIndex?.let { episodes?.getOrNull(it) }?.episode,
- state.currentPositionMs
+ if (playMutex.isLocked) return
+ playMutex.withLock {
+ with(cache) {
+ movieId?.let {
+ savedTimeRepository.setTime(
+ SavedTimeInfo(
+ movieId,
+ seasonId,
+ currentEpisodeIndex?.let { episodes?.getOrNull(it) }?.episode,
+ state.currentPositionMs
+ )
)
- )
- lastMillis = state.currentPositionMs
+ lastMillis = state.currentPositionMs
+ }
}
}
}
diff --git a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/BaseScreen.kt b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/BaseScreen.kt
index d65271e..a1dcf07 100644
--- a/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/BaseScreen.kt
+++ b/apps/vbox/client/shared/src/commonMain/kotlin/ru/shadowsparky/vbox/shared/presentation/BaseScreen.kt
@@ -9,7 +9,6 @@ import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarScrollBehavior
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
-import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import com.seiko.imageloader.LocalImageLoader
@@ -31,11 +30,9 @@ import ru.shadowsparky.vbox.shared.presentation.settings.register.RegisterScreen
import ru.shadowsparky.vbox.shared.presentation.settings.serv.EditServScreen
import ru.shadowsparky.vbox.shared.presentation.settings.tag.TagScreen
-val LocalColorSchemeProvider = compositionLocalOf { null }
-
@Composable
fun getColorScheme(): ColorScheme {
- return LocalColorSchemeProvider.current ?: ru.shadowsparky.ui.theme.getColorScheme()
+ return ru.shadowsparky.ui.theme.getColorScheme()
}
@Composable
diff --git a/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/theme/Theme.kt b/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/theme/Theme.kt
index 726c5fa..6f8332e 100644
--- a/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/theme/Theme.kt
+++ b/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/theme/Theme.kt
@@ -2,11 +2,10 @@ package ru.shadowsparky.ui.theme
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.ColorScheme
-import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
-import androidx.compose.material3.MaterialExpressiveTheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.compositionLocalOf
val lightScheme = lightColorScheme(
primary = primaryLight,
@@ -84,21 +83,11 @@ val darkScheme = darkColorScheme(
surfaceContainerHighest = surfaceContainerHighestDark,
)
-@OptIn(ExperimentalMaterial3ExpressiveApi::class)
-@Composable
-fun AppTheme(
- content: @Composable () -> Unit
-) {
- MaterialExpressiveTheme(
- colorScheme = getColorScheme(),
- typography = AppTypography,
- content = content
- )
-}
+val LocalColorSchemeProvider = compositionLocalOf { null }
@Composable
fun getColorScheme(): ColorScheme {
- return when {
+ return LocalColorSchemeProvider.current ?: when {
isSystemInDarkTheme() -> darkDynamicScheme() ?: darkScheme
else -> lightDynamicScheme() ?: lightScheme
}