diff options
| -rw-r--r-- | media/java/android/media/RingtoneManager.java | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java index 6fd47c42bcba..66a59e09c42f 100644 --- a/media/java/android/media/RingtoneManager.java +++ b/media/java/android/media/RingtoneManager.java @@ -509,15 +509,19 @@ public class RingtoneManager { * @return The position of the {@link Uri}, or -1 if it cannot be found. */ public int getRingtonePosition(Uri ringtoneUri) { - if (ringtoneUri == null) return -1; - final long ringtoneId = ContentUris.parseId(ringtoneUri); - - final Cursor cursor = getCursor(); - cursor.moveToPosition(-1); - while (cursor.moveToNext()) { - if (ringtoneId == cursor.getLong(ID_COLUMN_INDEX)) { - return cursor.getPosition(); + try { + if (ringtoneUri == null) return -1; + final long ringtoneId = ContentUris.parseId(ringtoneUri); + + final Cursor cursor = getCursor(); + cursor.moveToPosition(-1); + while (cursor.moveToNext()) { + if (ringtoneId == cursor.getLong(ID_COLUMN_INDEX)) { + return cursor.getPosition(); + } } + } catch (NumberFormatException e) { + Log.e(TAG, "NumberFormatException while getting ringtone position, returning -1", e); } return -1; } |