mirror of
https://github.com/SimpleMobileTools/Simple-Calculator.git
synced 2025-02-22 06:17:42 +01:00
setStatusBarColor only when scrolling and make sure that action bar text color matches icon color for status bar
This commit is contained in:
parent
d90a86c319
commit
06ac637e50
@ -19,6 +19,7 @@ import androidx.compose.ui.platform.LocalContext
|
|||||||
import androidx.compose.ui.platform.LocalView
|
import androidx.compose.ui.platform.LocalView
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import com.google.accompanist.systemuicontroller.rememberSystemUiController
|
||||||
import com.simplemobiletools.calculator.compose.extensions.MyDevices
|
import com.simplemobiletools.calculator.compose.extensions.MyDevices
|
||||||
import com.simplemobiletools.calculator.compose.settings.SettingsCheckBoxComponent
|
import com.simplemobiletools.calculator.compose.settings.SettingsCheckBoxComponent
|
||||||
import com.simplemobiletools.calculator.compose.settings.SettingsGroup
|
import com.simplemobiletools.calculator.compose.settings.SettingsGroup
|
||||||
@ -54,16 +55,24 @@ fun SettingsScreen(
|
|||||||
onUseCommaAsDecimalMarkFlow: (Boolean) -> Unit,
|
onUseCommaAsDecimalMarkFlow: (Boolean) -> Unit,
|
||||||
lockedCustomizeColorText: String?
|
lockedCustomizeColorText: String?
|
||||||
) {
|
) {
|
||||||
|
val systemUiController = rememberSystemUiController()
|
||||||
val displayLanguage = remember { Locale.getDefault().displayLanguage }
|
val displayLanguage = remember { Locale.getDefault().displayLanguage }
|
||||||
val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState())
|
val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState())
|
||||||
val colorTransitionFraction = scrollBehavior.state.overlappedFraction
|
val colorTransitionFraction = scrollBehavior.state.overlappedFraction
|
||||||
val fraction = if (colorTransitionFraction > 0.01f) 1f else 0f
|
val fraction = if (colorTransitionFraction > 0.01f) 1f else 0f
|
||||||
val scrolledColor = lerp(
|
val scrolledColor = lerp(
|
||||||
nonScrolledTextColor,
|
start = nonScrolledTextColor,
|
||||||
scrolledTextColor,
|
stop = scrolledTextColor,
|
||||||
fraction
|
fraction = fraction
|
||||||
)
|
)
|
||||||
|
val scrolledColorStatusBar = lerp(
|
||||||
|
start = MaterialTheme.colorScheme.surface,
|
||||||
|
stop = MaterialTheme.colorScheme.primary,
|
||||||
|
fraction = fraction
|
||||||
|
)
|
||||||
|
systemUiController.setStatusBarColor(scrolledColorStatusBar, transformColorForLightContent = {
|
||||||
|
scrolledColor
|
||||||
|
})
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
@ -191,7 +191,6 @@ private fun Theme(
|
|||||||
SideEffect {
|
SideEffect {
|
||||||
systemUiController.setNavigationBarColor(colorScheme.surface, navigationBarContrastEnforced = false)
|
systemUiController.setNavigationBarColor(colorScheme.surface, navigationBarContrastEnforced = false)
|
||||||
systemUiController.setSystemBarsColor(colorScheme.surface)
|
systemUiController.setSystemBarsColor(colorScheme.surface)
|
||||||
systemUiController.setStatusBarColor(colorScheme.primary)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SideEffect {
|
SideEffect {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user