summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author akansha.shukla <akansha.shukla@mediatek.com> 2021-03-24 11:47:59 +0800
committer Oliver Woodman <olly@google.com> 2021-06-14 11:41:45 +0000
commit19035013809706bd9f62cef3cede84841306ecbb (patch)
treea087d83a9032a28f07dddadfad6ff9db6096ab80
parent05081aa3b0849e07134d0a9147d4f85b58dfe91d (diff)
Fix inconsistency in ringtone list
Sometimes when ringtone from external storage gets same _id as any ringtone of internal volume, getRingtonePosition(..) matches with the internal one firstly, and the ringtone shown is wrong. Solution is to match the URI of ringtone instead of the _ID so that correct ringtone is chosen. Bug: 172878342 Change-Id: I8fc3e936fe89308d4697eda42088e4fd533ce47c
-rw-r--r--media/java/android/media/RingtoneManager.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java
index e2e13b048cf7..be6ff1baadd6 100644
--- a/media/java/android/media/RingtoneManager.java
+++ b/media/java/android/media/RingtoneManager.java
@@ -521,12 +521,12 @@ public class RingtoneManager {
public int getRingtonePosition(Uri ringtoneUri) {
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)) {
+ Uri uriFromCursor = getUriFromCursor(mContext, cursor);
+ if (ringtoneUri.equals(uriFromCursor)) {
return cursor.getPosition();
}
}