feat: add polar experiment

Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
Infi 2025-03-23 04:35:33 +01:00
parent d0ccb4b568
commit 0eaa272054
2 changed files with 32 additions and 2 deletions

View File

@ -27,6 +27,7 @@ class ExperimentInstance(default: Boolean) {
*/ */
object Experiments { object Experiments {
val useKotlinBasedMarkdownRenderer = ExperimentInstance(false) val useKotlinBasedMarkdownRenderer = ExperimentInstance(false)
val usePolar = ExperimentInstance(false)
suspend fun hydrateWithKv() { suspend fun hydrateWithKv() {
val kvStorage = KVStorage(RevoltApplication.instance) val kvStorage = KVStorage(RevoltApplication.instance)
@ -38,7 +39,10 @@ object Experiments {
} }
useKotlinBasedMarkdownRenderer.setEnabled( useKotlinBasedMarkdownRenderer.setEnabled(
kvStorage.getBoolean("exp/useKotlinBasedMarkdownRenderer") ?: false kvStorage.getBoolean("exp/useKotlinBasedMarkdownRenderer") == true
)
usePolar.setEnabled(
kvStorage.getBoolean("exp/usePolar") == true
) )
} }
} }

View File

@ -50,6 +50,16 @@ class ExperimentsSettingsScreenViewModel : ViewModel() {
useKotlinMdRendererChecked.value = value useKotlinMdRendererChecked.value = value
} }
} }
val usePolarChecked = mutableStateOf(false)
fun setUsePolarChecked(value: Boolean) {
viewModelScope.launch {
kv.set("exp/usePolar", value)
Experiments.usePolar.setEnabled(value)
usePolarChecked.value = value
}
}
} }
@Composable @Composable
@ -77,12 +87,28 @@ fun ExperimentsSettingsScreen(
trailingContent = { trailingContent = {
Switch( Switch(
checked = viewModel.useKotlinMdRendererChecked.value, checked = viewModel.useKotlinMdRendererChecked.value,
onCheckedChange = viewModel::setUseKotlinMdRendererChecked onCheckedChange = null
) )
}, },
modifier = Modifier.clickable { viewModel.setUseKotlinMdRendererChecked(!viewModel.useKotlinMdRendererChecked.value) } modifier = Modifier.clickable { viewModel.setUseKotlinMdRendererChecked(!viewModel.useKotlinMdRendererChecked.value) }
) )
ListItem(
headlineContent = {
Text("Threefold Root User Interface")
},
supportingContent = {
Text("Polar")
},
trailingContent = {
Switch(
checked = viewModel.usePolarChecked.value,
onCheckedChange = null
)
},
modifier = Modifier.clickable { viewModel.setUsePolarChecked(!viewModel.usePolarChecked.value) }
)
Subcategory( Subcategory(
title = { title = {
Text("Disable experiments") Text("Disable experiments")