OSDN Git Service

Integrate from Music2
authorMarco Nelissen <marcone@google.com>
Fri, 5 Mar 2010 20:45:23 +0000 (12:45 -0800)
committerMarco Nelissen <marcone@google.com>
Fri, 5 Mar 2010 20:45:23 +0000 (12:45 -0800)
src/com/android/music/AlbumBrowserActivity.java
src/com/android/music/ArtistAlbumBrowserActivity.java
src/com/android/music/MusicPicker.java
src/com/android/music/TrackBrowserActivity.java

index efea53b..96dfd31 100644 (file)
@@ -454,12 +454,16 @@ public class AlbumBrowserActivity extends ListActivity
             Collator col = Collator.getInstance();
             col.setStrength(Collator.PRIMARY);
             for (int i = 0; i < searchWords.length; i++) {
-                keywords[i] = '%' + MediaStore.Audio.keyFor(searchWords[i]) + '%';
+                String key = MediaStore.Audio.keyFor(searchWords[i]);
+                key = key.replace("\\", "\\\\");
+                key = key.replace("%", "\\%");
+                key = key.replace("_", "\\_");
+                keywords[i] = '%' + key + '%';
             }
             for (int i = 0; i < searchWords.length; i++) {
                 where.append(" AND ");
                 where.append(MediaStore.Audio.Media.ARTIST_KEY + "||");
-                where.append(MediaStore.Audio.Media.ALBUM_KEY + " LIKE ?");
+                where.append(MediaStore.Audio.Media.ALBUM_KEY + " LIKE ? ESCAPE '\\'");
             }
         }
 
index c0d52fb..3bb55cb 100644 (file)
@@ -521,11 +521,15 @@ public class ArtistAlbumBrowserActivity extends ExpandableListActivity
             Collator col = Collator.getInstance();
             col.setStrength(Collator.PRIMARY);
             for (int i = 0; i < searchWords.length; i++) {
-                keywords[i] = '%' + MediaStore.Audio.keyFor(searchWords[i]) + '%';
+                String key = MediaStore.Audio.keyFor(searchWords[i]);
+                key = key.replace("\\", "\\\\");
+                key = key.replace("%", "\\%");
+                key = key.replace("_", "\\_");
+                keywords[i] = '%' + key + '%';
             }
             for (int i = 0; i < searchWords.length; i++) {
                 where.append(" AND ");
-                where.append(MediaStore.Audio.Media.ARTIST_KEY + " LIKE ?");
+                where.append(MediaStore.Audio.Media.ARTIST_KEY + " LIKE ? ESCAPE '\\'");
             }
         }
 
index 13919ad..c41746d 100644 (file)
@@ -602,13 +602,17 @@ public class MusicPicker extends ListActivity
             Collator col = Collator.getInstance();
             col.setStrength(Collator.PRIMARY);
             for (int i = 0; i < searchWords.length; i++) {
-                keywords[i] = '%' + MediaStore.Audio.keyFor(searchWords[i]) + '%';
+                String key = MediaStore.Audio.keyFor(searchWords[i]);
+                key = key.replace("\\", "\\\\");
+                key = key.replace("%", "\\%");
+                key = key.replace("_", "\\_");
+                keywords[i] = '%' + key + '%';
             }
             for (int i = 0; i < searchWords.length; i++) {
                 where.append(" AND ");
                 where.append(MediaStore.Audio.Media.ARTIST_KEY + "||");
                 where.append(MediaStore.Audio.Media.ALBUM_KEY + "||");
-                where.append(MediaStore.Audio.Media.TITLE_KEY + " LIKE ?");
+                where.append(MediaStore.Audio.Media.TITLE_KEY + " LIKE ? ESCAPE '\\'");
             }
         }
         
index 5d05664..b4d8516 100644 (file)
@@ -1011,12 +1011,16 @@ public class TrackBrowserActivity extends ListActivity
             Collator col = Collator.getInstance();
             col.setStrength(Collator.PRIMARY);
             for (int i = 0; i < searchWords.length; i++) {
-                keywords[i] = '%' + MediaStore.Audio.keyFor(searchWords[i]) + '%';
+                String key = MediaStore.Audio.keyFor(searchWords[i]);
+                key = key.replace("\\", "\\\\");
+                key = key.replace("%", "\\%");
+                key = key.replace("_", "\\_");
+                keywords[i] = '%' + key + '%';
             }
             for (int i = 0; i < searchWords.length; i++) {
                 where.append(" AND ");
                 where.append(MediaStore.Audio.Media.ARTIST_KEY + "||");
-                where.append(MediaStore.Audio.Media.TITLE_KEY + " LIKE ?");
+                where.append(MediaStore.Audio.Media.TITLE_KEY + " LIKE ? ESCAPE '\\'");
             }
         }