summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/4.xml4
-rw-r--r--api/current.xml4
-rw-r--r--core/java/android/provider/MediaStore.java16
3 files changed, 17 insertions, 7 deletions
diff --git a/api/4.xml b/api/4.xml
index b117a8734c98..c8a2e83fd136 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 2eecdbe2a463..0ca87bacdd54 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 bc7b5be046f1..21e5865fef70 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