From 4a014e620691503db148d917a19e242a0a02fc75 Mon Sep 17 00:00:00 2001 From: jonasgaudian <43753916+jonasgaudian@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:03:10 +0100 Subject: [PATCH] add `enabled` parameter to `BasePromptSettingsScreen`, `ModelSelector`, and `InspiringSearchField` to support disabled states --- .../view/composable/AppOutlinedTextField.kt | 6 ++++-- .../view/settings/BasePromptSettingsScreen.kt | 14 ++++++++++---- .../view/settings/TranslationSettings.kt | 1 + 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/gaudian/translator/view/composable/AppOutlinedTextField.kt b/app/src/main/java/eu/gaudian/translator/view/composable/AppOutlinedTextField.kt index 7b47628..916d34a 100644 --- a/app/src/main/java/eu/gaudian/translator/view/composable/AppOutlinedTextField.kt +++ b/app/src/main/java/eu/gaudian/translator/view/composable/AppOutlinedTextField.kt @@ -136,7 +136,8 @@ fun InspiringSearchField( hints : Array, onValueChange: (String) -> Unit, minLines: Int = 1, - maxLines: Int = 1 + maxLines: Int = 1, + enabled: Boolean = true ) { var currentHintIndex by remember { mutableIntStateOf(0) } @@ -175,7 +176,8 @@ fun InspiringSearchField( }, singleLine = true, minLines = minLines, - maxLines = maxLines + maxLines = maxLines, + enabled = enabled ) } diff --git a/app/src/main/java/eu/gaudian/translator/view/settings/BasePromptSettingsScreen.kt b/app/src/main/java/eu/gaudian/translator/view/settings/BasePromptSettingsScreen.kt index 87af3ef..dfaaf25 100644 --- a/app/src/main/java/eu/gaudian/translator/view/settings/BasePromptSettingsScreen.kt +++ b/app/src/main/java/eu/gaudian/translator/view/settings/BasePromptSettingsScreen.kt @@ -59,7 +59,8 @@ fun BasePromptSettingsScreen( onPromptChanged: (String) -> Unit, onSaveClicked: () -> Unit, onModelSelected: (LanguageModel?) -> Unit, - hints: Array + hints: Array, + enabled: Boolean = true ) { AppCard { Column( @@ -70,7 +71,8 @@ fun BasePromptSettingsScreen( Text( text = description, style = MaterialTheme.typography.bodyLarge, - modifier = Modifier.padding(vertical = 16.dp) + modifier = Modifier.padding(vertical = 16.dp), + color = if (!enabled) MaterialTheme.colorScheme.onSurface.copy(alpha = 0.6f) else MaterialTheme.colorScheme.onSurface ) @@ -82,6 +84,7 @@ fun BasePromptSettingsScreen( minLines = 3, maxLines = 5, hints = hints, + enabled = enabled ) Row( @@ -98,12 +101,13 @@ fun BasePromptSettingsScreen( providers = providers, // Pass providers down selectedModel = state.selectedModel, onModelSelected = onModelSelected, + enabled = enabled ) } Spacer(modifier = Modifier.width(16.dp)) - AppButton(onClick = onSaveClicked) { + AppButton(onClick = onSaveClicked, enabled = enabled) { Text(stringResource(id = R.string.label_save)) } } @@ -119,7 +123,8 @@ fun ApiModelDropDown( models: List, providers: List, selectedModel: LanguageModel?, - onModelSelected: (LanguageModel?) -> Unit + onModelSelected: (LanguageModel?) -> Unit, + enabled: Boolean = true ) { LocalContext.current var expanded by remember { mutableStateOf(false) } @@ -149,6 +154,7 @@ fun ApiModelDropDown( onClick = { expanded = true }, modifier = Modifier.align(Alignment.Center), contentPadding = PaddingValues(horizontal = 12.dp, vertical = 8.dp), + enabled = enabled ) { Row( verticalAlignment = Alignment.CenterVertically, diff --git a/app/src/main/java/eu/gaudian/translator/view/settings/TranslationSettings.kt b/app/src/main/java/eu/gaudian/translator/view/settings/TranslationSettings.kt index 0d68bff..7bbb3a6 100644 --- a/app/src/main/java/eu/gaudian/translator/view/settings/TranslationSettings.kt +++ b/app/src/main/java/eu/gaudian/translator/view/settings/TranslationSettings.kt @@ -109,6 +109,7 @@ fun TranslationSettingsScreen( onSaveClicked = { settingsViewModel.saveCustomPrompt(tempPrompt) }, onModelSelected = { apiViewModel.setTranslationModel(it) }, hints = context.resources.getStringArray(R.array.example_prompts), + //enabled = !useLibre ) } }