From b1077fad121f00e8aaffbf0b35b7a7fff70f1a6a Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sat, 19 Nov 2022 21:23:48 +0100 Subject: [PATCH] Add advanced web search action options --- .../searchactions/EditSearchActionSheet.kt | 47 ++++++++++++++++--- .../searchactions/EditSearchActionSheetVM.kt | 10 ++++ 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheet.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheet.kt index e8412c2f..336dd548 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheet.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheet.kt @@ -90,6 +90,7 @@ import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.BottomSheetDialog import de.mm20.launcher2.ui.component.ExperimentalBadge import de.mm20.launcher2.ui.component.SearchActionIcon +import de.mm20.launcher2.ui.component.preferences.ListPreference import de.mm20.launcher2.ui.ktx.toPixels @Composable @@ -442,14 +443,20 @@ fun CustomizeWebSearch(viewModel: EditSearchActionSheetVM) { .padding(vertical = 4.dp) .clickable { - CustomTabsIntent.Builder() + CustomTabsIntent + .Builder() .setDefaultColorSchemeParams( - CustomTabColorSchemeParams.Builder() - .setToolbarColor(colorScheme.primaryContainer.toArgb()) - .setSecondaryToolbarColor(colorScheme.secondaryContainer.toArgb()) - .build() + CustomTabColorSchemeParams + .Builder() + .setToolbarColor(colorScheme.primaryContainer.toArgb()) + .setSecondaryToolbarColor(colorScheme.secondaryContainer.toArgb()) + .build() + ) + .build() + .launchUrl( + context, + Uri.parse("https://kvaesitso.mm20.de/docs/user-guide/search/quickactions#web-search") ) - .build().launchUrl(context, Uri.parse("https://kvaesitso.mm20.de/docs/user-guide/search/quickactions#web-search")) }, color = MaterialTheme.colorScheme.secondary, style = LocalTextStyle.current.copy(textDecoration = TextDecoration.Underline) @@ -475,6 +482,34 @@ fun CustomizeWebSearch(viewModel: EditSearchActionSheetVM) { }, OffsetMapping.Identity) } ) + + var showAdvanced by remember { + mutableStateOf(false) + } + + AnimatedVisibility(!showAdvanced) { + TextButton( + modifier = Modifier.padding(top = 16.dp), + onClick = { showAdvanced = true }) { + Text(stringResource(id = R.string.websearch_dialog_advanced)) + } + } + + AnimatedVisibility(showAdvanced) { + ListPreference( + title = stringResource(R.string.websearch_dialog_query_encoding), + items = listOf( + stringResource(id = R.string.websearch_dialog_query_encoding_url) to WebsearchActionBuilder.QueryEncoding.UrlEncode, + stringResource(id = R.string.websearch_dialog_query_encoding_form) to WebsearchActionBuilder.QueryEncoding.FormData, + stringResource(id = R.string.websearch_dialog_query_encoding_none) to WebsearchActionBuilder.QueryEncoding.None, + ), + value = (searchAction as WebsearchActionBuilder).encoding, + onValueChanged = { + viewModel.setQueryEncoding(it) + }, + iconPadding = false + ) + } } } } diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheetVM.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheetVM.kt index 50fce095..b627a303 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheetVM.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheetVM.kt @@ -457,6 +457,16 @@ class EditSearchActionSheetVM : ViewModel(), KoinComponent { else -> action } } + + fun setQueryEncoding(encoding: WebsearchActionBuilder.QueryEncoding) { + val action = searchAction.value ?: return + searchAction.value = when(action) { + is WebsearchActionBuilder -> action.copy( + encoding = encoding + ) + else -> action + } + } } enum class EditSearchActionPage {