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 {
val useKotlinBasedMarkdownRenderer = ExperimentInstance(false)
val usePolar = ExperimentInstance(false)
suspend fun hydrateWithKv() {
val kvStorage = KVStorage(RevoltApplication.instance)
@ -38,7 +39,10 @@ object Experiments {
}
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
}
}
val usePolarChecked = mutableStateOf(false)
fun setUsePolarChecked(value: Boolean) {
viewModelScope.launch {
kv.set("exp/usePolar", value)
Experiments.usePolar.setEnabled(value)
usePolarChecked.value = value
}
}
}
@Composable
@ -77,12 +87,28 @@ fun ExperimentsSettingsScreen(
trailingContent = {
Switch(
checked = viewModel.useKotlinMdRendererChecked.value,
onCheckedChange = viewModel::setUseKotlinMdRendererChecked
onCheckedChange = null
)
},
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(
title = {
Text("Disable experiments")