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 }