0
0
mirror of https://github.com/markusfisch/BinaryEye.git synced 2024-09-20 03:52:16 +02:00

Catch unsupported encodings in urlEncode()

And just return the original string in that case.

Invalid data shouldn't crash the app.
This commit is contained in:
Markus Fisch 2022-03-09 18:43:33 +01:00
parent 1597adb284
commit 880b8e0b24

View File

@ -2,13 +2,18 @@ package de.markusfisch.android.binaryeye.app
import android.net.Uri
import android.os.Build
import java.io.UnsupportedEncodingException
import java.net.URLEncoder
private val nonPrintable = "[\\x00-\\x08\\x0e-\\x1f]".toRegex()
fun String.hasNonPrintableCharacters() = nonPrintable.containsMatchIn(this)
fun String.urlEncode() = URLEncoder.encode(this, "UTF-8")
fun String.urlEncode(): String = try {
URLEncoder.encode(this, "UTF-8")
} catch (e: UnsupportedEncodingException) {
this
}
fun parseAndNormalizeUri(input: String): Uri = Uri.parse(input).let {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {