diff --git a/api/4.xml b/api/4.xml index b117a8734c982..c8a2e83fd1368 100644 --- a/api/4.xml +++ b/api/4.xml @@ -88821,7 +88821,7 @@ type="java.lang.String" transient="false" volatile="false" - value=""title"" + value=""title_key"" static="true" final="true" deprecated="not deprecated" @@ -88918,7 +88918,7 @@ type="java.lang.String" transient="false" volatile="false" - value=""title"" + value=""title_key"" static="true" final="true" deprecated="not deprecated" diff --git a/api/current.xml b/api/current.xml index 2eecdbe2a463b..0ca87bacdd543 100644 --- a/api/current.xml +++ b/api/current.xml @@ -108264,7 +108264,7 @@ type="java.lang.String" transient="false" volatile="false" - value=""title"" + value=""title_key"" static="true" final="true" deprecated="not deprecated" @@ -108361,7 +108361,7 @@ type="java.lang.String" transient="false" volatile="false" - value=""title"" + value=""title_key"" static="true" final="true" deprecated="not deprecated" diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java index bc7b5be046f17..21e5865fef701 100644 --- a/core/java/android/provider/MediaStore.java +++ b/core/java/android/provider/MediaStore.java @@ -722,9 +722,15 @@ public final class MediaStore */ public static String keyFor(String name) { if (name != null) { + boolean sortfirst = false; if (name.equals(android.media.MediaFile.UNKNOWN_STRING)) { return "\001"; } + // Check if the first character is \001. We use this to + // force sorting of certain special files, like the silent ringtone. + if (name.startsWith("\001")) { + sortfirst = true; + } name = name.trim().toLowerCase(); if (name.startsWith("the ")) { name = name.substring(4); @@ -753,7 +759,11 @@ public final class MediaStore b.append('.'); } name = b.toString(); - return DatabaseUtils.getCollationKey(name); + String key = DatabaseUtils.getCollationKey(name); + if (sortfirst) { + key = "\001" + key; + } + return key; } else { return ""; } @@ -800,7 +810,7 @@ public final class MediaStore /** * The default sort order for this table */ - public static final String DEFAULT_SORT_ORDER = TITLE; + public static final String DEFAULT_SORT_ORDER = TITLE_KEY; /** * Activity Action: Start SoundRecorder application. @@ -897,7 +907,7 @@ public final class MediaStore /** * The default sort order for this table */ - public static final String DEFAULT_SORT_ORDER = TITLE; + public static final String DEFAULT_SORT_ORDER = TITLE_KEY; /** * The ID of the audio file