takisoft / preferencex-android

Android's "androidx.preference" library has some issues, this lib tries to fix them.
Apache License 2.0
55 stars 10 forks source link

RingtonePreferenceDialogFragmentCompat throws NumberFormatException on Android 10 #7

Open fstanis opened 4 years ago

fstanis commented 4 years ago
12-02 10:42:17.819 20550 20550 E AndroidRuntime: java.lang.NumberFormatException: For input string: "notification_sound"
12-02 10:42:17.819 20550 20550 E AndroidRuntime:    at java.lang.Long.parseLong(Long.java:594)
12-02 10:42:17.819 20550 20550 E AndroidRuntime:    at java.lang.Long.parseLong(Long.java:636)
12-02 10:42:17.819 20550 20550 E AndroidRuntime:    at android.content.ContentUris.parseId(ContentUris.java:89)
12-02 10:42:17.819 20550 20550 E AndroidRuntime:    at android.media.RingtoneManager.getRingtonePosition(RingtoneManager.java:513)
12-02 10:42:17.819 20550 20550 E AndroidRuntime:    at com.takisoft.preferencex.g.a(Unknown Source:146)
12-02 10:42:17.819 20550 20550 E AndroidRuntime:    at com.takisoft.preferencex.g.a(Unknown Source:11)

The error seems to come from here: https://github.com/takisoft/preferencex-android/blob/205ec8110a503f9af50a25ba7c67df05adfe02bb/preferencex-ringtone/src/main/java/com/takisoft/preferencex/RingtonePreferenceDialogFragmentCompat.java#L248

It seems Android 10 calls ContentUris.parseId inside getRingtonePosition which throws if the last segment of the Uri isn't a number.

mocle commented 4 years ago

I'm facing the same problem right now. But I'm of the opinion that the whole thing has already run successfully on Android 10... Any updates on this issue?