Fixed theme not being changed properly until recomposition + reduced themes saturation

This commit is contained in:
Abdelilah El Aissaoui 2024-09-12 10:02:59 +02:00
parent 0f5e4248b9
commit ef367e1d89
No known key found for this signature in database
GPG Key ID: 7587FC860F594869
2 changed files with 50 additions and 28 deletions

View File

@ -43,10 +43,10 @@ val darkBlueTheme = ColorsScheme(
onBackgroundSecondary = Color(0xFFCCCBCB),
error = Color(0xFFc93838),
onError = Color(0xFFFFFFFF),
background = Color(0xFF0E1621),
background = Color(0xFF10161e),
backgroundSelected = Color(0xFF2f3640),
surface = Color(0xFF182533),
secondarySurface = Color(0xFF122C46),
surface = Color(0xff1d2630),
secondarySurface = Color(0xFF1a2b3d),
tertiarySurface = Color(0xFF0a335c),
addFile = Color(0xFF32A852),
deletedFile = Color(0xFFc93838),
@ -64,7 +64,7 @@ val darkBlueTheme = ColorsScheme(
)
val darkGrayTheme = ColorsScheme(
primary = Color(0xFF014F97),
primary = Color(0xFF264e73),
primaryVariant = Color(0xFFCDEAFF),
onPrimary = Color(0xFFFFFFFFF),
secondary = Color(0xFFe9c754),
@ -73,11 +73,11 @@ val darkGrayTheme = ColorsScheme(
onBackgroundSecondary = Color(0xFFCCCBCB),
error = Color(0xFFc93838),
onError = Color(0xFFFFFFFF),
background = Color(0xFF16181F),
background = Color(0xFF17181c),
backgroundSelected = Color(0xFF32373e),
surface = Color(0xFF212731),
secondarySurface = Color(0xFF282d36),
tertiarySurface = Color(0xFF21303d),
surface = Color(0xFF25282d),
secondarySurface = Color(0xFF292d32),
tertiarySurface = Color(0xFF252f37),
addFile = Color(0xFF32A852),
deletedFile = Color(0xFFc93838),
modifiedFile = Color(0xFF0070D8),

View File

@ -9,9 +9,10 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.jetpackduba.gitnuro.ui.dropdowns.DropDownOption
import kotlinx.coroutines.flow.MutableStateFlow
private val defaultAppTheme: ColorsScheme = darkBlueTheme
private var appTheme: ColorsScheme = defaultAppTheme
private var appTheme: MutableStateFlow<ColorsScheme> = MutableStateFlow(defaultAppTheme)
internal val LocalLinesHeight = compositionLocalOf { spacedLineHeight }
class LinesHeight internal constructor(
@ -60,7 +61,7 @@ fun AppTheme(
LinesHeightType.COMPACT -> compactLineHeight
}
appTheme = theme
appTheme.value = theme
val composeColors = theme.toComposeColors()
val compositionValues = arrayOf(LocalLinesHeight provides lineHeight)
@ -80,57 +81,78 @@ val MaterialTheme.linesHeight: LinesHeight
@ReadOnlyComposable
get() = LocalLinesHeight.current
private val theme: ColorsScheme
@Composable
get() = appTheme.collectAsState().value
val Colors.backgroundSelected: Color
get() = appTheme.backgroundSelected
@Composable
get() = theme.backgroundSelected
val Colors.onBackgroundSecondary: Color
get() = appTheme.onBackgroundSecondary
@Composable
get() = theme.onBackgroundSecondary
val Colors.secondarySurface: Color
get() = appTheme.secondarySurface
@Composable
get() = theme.secondarySurface
val Colors.tertiarySurface: Color
get() = appTheme.tertiarySurface
@Composable
get() = theme.tertiarySurface
val Colors.addFile: Color
get() = appTheme.addFile
@Composable
get() = theme.addFile
val Colors.deleteFile: Color
get() = appTheme.deletedFile
@Composable
get() = theme.deletedFile
val Colors.modifyFile: Color
get() = appTheme.modifiedFile
@Composable
get() = theme.modifiedFile
val Colors.conflictFile: Color
get() = appTheme.conflictingFile
@Composable
get() = theme.conflictingFile
val Colors.abortButton: Color
get() = appTheme.error
@Composable
get() = theme.error
val Colors.scrollbarNormal: Color
get() = appTheme.normalScrollbar
@Composable
get() = theme.normalScrollbar
val Colors.scrollbarHover: Color
get() = appTheme.hoverScrollbar
@Composable
get() = theme.hoverScrollbar
val Colors.dialogOverlay: Color
get() = appTheme.dialogOverlay
@Composable
get() = theme.dialogOverlay
val Colors.diffLineAdded: Color
get() = appTheme.diffLineAdded
@Composable
get() = theme.diffLineAdded
val Colors.diffLineRemoved: Color
get() = appTheme.diffLineRemoved
@Composable
get() = theme.diffLineRemoved
val Colors.diffKeyword: Color
get() = appTheme.diffKeyword
@Composable
get() = theme.diffKeyword
val Colors.diffAnnotation: Color
get() = appTheme.diffAnnotation
@Composable
get() = theme.diffAnnotation
val Colors.diffComment: Color
get() = appTheme.diffComment
@Composable
get() = theme.diffComment
val Colors.isDark: Boolean
get() = !this.isLight