Add theme option to disable animations and fix account avatar loading in bottom bar

This commit is contained in:
2025-03-28 19:59:38 +03:00
parent 9aa85d40c6
commit da9644cde1
14 changed files with 104 additions and 84 deletions
@@ -24,6 +24,7 @@ interface UserSettings {
val showEmojiButton: StateFlow<Boolean>
val showTimeInActionMessages: StateFlow<Boolean>
val useSystemFont: StateFlow<Boolean>
val enableAnimations: StateFlow<Boolean>
val showDebugCategory: StateFlow<Boolean>
fun onUseContactNamesChanged(use: Boolean)
@@ -68,6 +69,7 @@ class UserSettingsImpl : UserSettings {
override val showTimeInActionMessages =
MutableStateFlow(AppSettings.Experimental.showTimeInActionMessages)
override val useSystemFont = MutableStateFlow(AppSettings.Appearance.useSystemFont)
override val enableAnimations = MutableStateFlow(AppSettings.Experimental.moreAnimations)
override val showDebugCategory = MutableStateFlow(AppSettings.Debug.showDebugCategory)
override fun onUseContactNamesChanged(use: Boolean) {
@@ -7,5 +7,6 @@ data class ThemeConfig(
val amoledDark: Boolean,
val enableBlur: Boolean,
val enableMultiline: Boolean,
val useSystemFont: Boolean
val useSystemFont: Boolean,
val enableAnimations: Boolean
)
@@ -21,6 +21,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.core.view.WindowCompat
import dev.chrisbanes.haze.HazeState
import dev.meloda.fast.model.api.domain.VkUser
import dev.meloda.fast.ui.R
import dev.meloda.fast.ui.model.DeviceSize
import dev.meloda.fast.ui.model.SizeConfig
@@ -113,7 +114,8 @@ val LocalThemeConfig = compositionLocalOf {
amoledDark = false,
enableBlur = false,
enableMultiline = false,
useSystemFont = false
useSystemFont = false,
enableAnimations = false
)
}
@@ -124,13 +126,9 @@ val LocalSizeConfig = compositionLocalOf {
)
}
val LocalHazeState = compositionLocalOf {
HazeState()
}
val LocalBottomPadding = compositionLocalOf {
0.dp
}
val LocalHazeState = compositionLocalOf { HazeState() }
val LocalBottomPadding = compositionLocalOf { 0.dp }
val LocalUser = compositionLocalOf<VkUser?> { null }
@Composable
fun AppTheme(