am fe13eebe: am 9d14e3ea: am 9b8b417c: Merge "When updating existing entries in the media database, don\'t update the is_music, is_ringtone, etc columns. This ensures that custom ringtones will still be shown in the ringtone picker after a rescan. Bug 2594125 Change-I
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java
index f845fec1..e80ece6 100644
--- a/media/java/android/media/MediaScanner.java
+++ b/media/java/android/media/MediaScanner.java
@@ -714,7 +714,12 @@
                     }
                 }
             }
-            if (isAudio) {
+            long rowId = entry.mRowId;
+            if (isAudio && rowId == 0) {
+                // Only set these for new entries. For existing entries, they
+                // may have been modified later, and we want to keep the current
+                // values so that custom ringtones still show up in the ringtone
+                // picker.
                 values.put(Audio.Media.IS_RINGTONE, ringtones);
                 values.put(Audio.Media.IS_NOTIFICATION, notifications);
                 values.put(Audio.Media.IS_ALARM, alarms);
@@ -764,7 +769,6 @@
             }
 
             Uri result = null;
-            long rowId = entry.mRowId;
             if (rowId == 0) {
                 // new file, insert it
                 result = mMediaProvider.insert(tableUri, values);