From 0eaa2720540e8b340c11c9b3cfd46677e339e524 Mon Sep 17 00:00:00 2001 From: Infi Date: Sun, 23 Mar 2025 04:35:33 +0100 Subject: [PATCH] feat: add polar experiment Signed-off-by: Infi --- .../chat/revolt/api/settings/Experiments.kt | 6 +++- .../settings/ExperimentsSettingsScreen.kt | 28 ++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/chat/revolt/api/settings/Experiments.kt b/app/src/main/java/chat/revolt/api/settings/Experiments.kt index d750049d..4bd755dc 100644 --- a/app/src/main/java/chat/revolt/api/settings/Experiments.kt +++ b/app/src/main/java/chat/revolt/api/settings/Experiments.kt @@ -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 ) } } \ No newline at end of file diff --git a/app/src/main/java/chat/revolt/screens/settings/ExperimentsSettingsScreen.kt b/app/src/main/java/chat/revolt/screens/settings/ExperimentsSettingsScreen.kt index 29a79173..bdeab4ba 100644 --- a/app/src/main/java/chat/revolt/screens/settings/ExperimentsSettingsScreen.kt +++ b/app/src/main/java/chat/revolt/screens/settings/ExperimentsSettingsScreen.kt @@ -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")