fix(android): refresh scoped canvas URLs without trailing slash

This commit is contained in:
Ayaan Zaidi
2026-02-27 11:58:29 +05:30
committed by Ayaan Zaidi
parent 4b37b7b6a9
commit 8187fbc571
2 changed files with 27 additions and 2 deletions

View File

@@ -734,7 +734,7 @@ private fun parseJsonOrNull(payload: String): JsonElement? {
}
}
private fun replaceCanvasCapabilityInScopedHostUrl(
internal fun replaceCanvasCapabilityInScopedHostUrl(
scopedUrl: String,
capability: String,
): String? {
@@ -742,7 +742,10 @@ private fun replaceCanvasCapabilityInScopedHostUrl(
val markerStart = scopedUrl.indexOf(marker)
if (markerStart < 0) return null
val capabilityStart = markerStart + marker.length
val capabilityEnd = scopedUrl.indexOf("/", capabilityStart)
val slashEnd = scopedUrl.indexOf("/", capabilityStart).takeIf { it >= 0 }
val queryEnd = scopedUrl.indexOf("?", capabilityStart).takeIf { it >= 0 }
val fragmentEnd = scopedUrl.indexOf("#", capabilityStart).takeIf { it >= 0 }
val capabilityEnd = listOfNotNull(slashEnd, queryEnd, fragmentEnd).minOrNull() ?: scopedUrl.length
if (capabilityEnd <= capabilityStart) return null
return scopedUrl.substring(0, capabilityStart) + capability + scopedUrl.substring(capabilityEnd)
}