Skip to content

Instantly share code, notes, and snippets.

@Configuration
open class ConfigureMessageConverters() : WebMvcConfigurer {
override fun extendMessageConverters(converters: MutableList<HttpMessageConverter<*>>) {
val converter = KotlinSerializationJsonHttpMessageConverter(JsonParser().json)
converters.forEachIndexed { index, httpMessageConverter ->
if (httpMessageConverter is KotlinSerializationJsonHttpMessageConverter) {
converters[index] = converter
return
}
val restTemplate = RestTemplate()
restTemplate.messageConverters = mutableListOf<HttpMessageConverter<*>>(
KotlinSerializationJsonHttpMessageConverter(JsonParser().json)
fun Application.module() {
val jsonParser = Json {
ignoreUnknownKeys = true
isLenient = true
}
install(ContentNegotiation) {
json(jsonParser)
}
fun Application.module() {
val jsonParser = Json {
ignoreUnknownKeys = true
isLenient = true
}
install(ContentNegotiation) {
json(jsonParser)
}
val client = HttpClient(Apache) {
val greetingModule = module(createdAtStart = true) {
single<GreetingService> { GreetingServiceImpl(get()) }
single<IpAddressService> { IpAddressServiceImpl(get()) }
}
fun Route.postGreeting() {
val greetingService by inject<GreetingService>()
post("/greeting") {
val greetingRequest = call.receive<GreetingRequest>()
call.respond(greetingService.greeting(greetingRequest))
}
}
composable(
// Route information
route = WearScreen.DETAILS.name + "/{trackNumber}",
arguments = listOf(navArgument("trackNumber") { type = NavType.StringType })
) { backStackEntry ->
val trackNumber = backStackEntry.arguments?.getString("trackNumber") ?: ""
// Retrieve View model
val trackDetailsViewModel = viewModel<TrackDetailsViewModel>()
WearAppTheme {
Scaffold(
timeText = {
if (displayTime(currentScreen, scalingLazyListState)) {
TimeText()
}
},
vignette = {
Vignette(vignettePosition = VignettePosition.TopAndBottom)
},
sealed class DebugScreen(val route: String, val title: Int, val topLevelDestination: Boolean = false) {
object Environment : DebugScreen(DebugNavigationItem.Environment.route, R.string.environment_screen_title, true)
}
Scaffold(
scaffoldState = scaffoldState,
topBar = { DebugTopBar(navController, version) },
bottomBar = { DebugBottomNavigationBar(navController) }
) { paddingValues ->
DebugNavHost(navController = navController, paddingValues, showSnackBar)
@OptIn(ExperimentalAnimationGraphicsApi::class)
@Composable
fun APTextField(
modifier: Modifier = Modifier,
value: String? = null,
onValueChange: (String) -> Unit,
onEndIconClicked: () -> Unit = { },
label: String? = null,
mode: APTextFieldType = APTextFieldType.Normal
) {