Add advanced web search action options

This commit is contained in:
MM20 2022-11-19 21:23:48 +01:00
parent 3d6af207ad
commit b1077fad12
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
2 changed files with 51 additions and 6 deletions

View File

@ -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
)
}
}
}
}

View File

@ -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 {