jetpack_compose_country_code_picker_emoji
jetpack_compose_country_code_picker_emoji copied to clipboard
Fix crash on Compose 1.7; Update dependencies
After updating to Jetpack Compose 1.7, this library would lead to a crash (#65) in our app after typing about 7 or 8 digits (for a Canadian / US number, at least):
Process: com.togitech.togii, PID: 15552
java.lang.IllegalStateException: OffsetMapping.transformedToOriginal returned invalid mapping: 0 -> -1 is not in range of original text [0, 8]
I suspect this occurs when a number starts to be formatted-as-you-type with parenthesis. E.g.:416555 would be formatted as 416-555, while 4165550 would be formatted as (416)-555-0.
I suspect that previous versions of Compose treated negative indexes passed to transformedToOriginal as undefined behaviour, but in 1.7 it's more defined and leads to a crash.
In any case, my colleague came up with a quick fix by clamping -1 to 0. Not sure if this is the correct fix, but this has fixed the crash for us, and has had no negative outcomes in our code.
While the fix was one line of code, it was necessary to increase the Jetpack Compose version to at least 1.7. However, in addition to updating Jetpack Compose to 1.7, we've also updated the library to use Kotlin 2.0; to use the Compose BOM (instead of defining individual libraries/versions); and updated some other dependencies.
Quality Gate passed
Issues
0 New issues
0 Accepted issues
Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code
Thanks for the fix my dude