knthmn
03/23/2021, 4:38 AMNavHostController.navigate()? My database is backed by a String primary key that can contain chars like ? and /.Ian Lake
03/23/2021, 4:41 AMUri.encodeIan Lake
03/23/2021, 4:42 AMknthmn
03/23/2021, 4:43 AMUri standard?
edit: nvm it is the static method that takes a StringNick
06/24/2022, 10:10 PMIan Lake
06/24/2022, 10:13 PMUri.decode the string values before putting them in your arguments. It sounds like something is causing you to double encodeNick
06/24/2022, 10:21 PMobject LabResultsList : HistoryRoutes("labresults/{patientId}/{patientTitle}/{isDependent}") {
fun createRoute(patientTitle: String, isDependent: Boolean, patientId: String): String {
val encodedPatientId = patientId.encode()
val encodedPatientTitle = patientTitle.encode()
return "labresults/$encodedPatientId/$encodedPatientTitle/$isDependent"
}
}
composable(route = HistoryRoutes.LabResultsList.route) { backStackEntry ->
val patientTitle = backStackEntry.arguments?.getString("patientTitle")!!
val patientId = backStackEntry.arguments?.getString("patientId")!!
val isDependent = backStackEntry.arguments?.getBoolean("isDependent")!!
LabResultsListScreen(
navController = navController,
patientId = patientId,
patientTitle = patientTitle,
isDependent = isDependent
)
}
private fun String.encode() = URLEncoder.encode(this, UTF_8.name())Nick
06/24/2022, 10:22 PMNick
06/24/2022, 10:23 PMNick
06/24/2022, 10:34 PMNick
06/24/2022, 10:35 PMURLEncoder, you have to use Uri.encodeIan Lake
06/24/2022, 10:35 PM