summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2013-04-11 20:52:32 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-04-11 20:52:32 +0000
commit34a50f0c3db6890e857abc68f5b9280f95c14d2e (patch)
treee5cd46d3857497b74616d784177c2b2f60cc5716 /src
parentea2fa83c2dd2b59b8a67ec363e4ac431748f997b (diff)
parentba1d7caf633631e3195e3938a39b86efd820869a (diff)
downloadandroid_packages_apps_Gallery2-34a50f0c3db6890e857abc68f5b9280f95c14d2e.tar.gz
android_packages_apps_Gallery2-34a50f0c3db6890e857abc68f5b9280f95c14d2e.tar.bz2
android_packages_apps_Gallery2-34a50f0c3db6890e857abc68f5b9280f95c14d2e.zip
Merge "Add _COUNT support for PhotoProvider to help performance of All Photos." into gb-ub-photos-bryce
Diffstat (limited to 'src')
-rw-r--r--src/com/android/photos/data/PhotoProvider.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/com/android/photos/data/PhotoProvider.java b/src/com/android/photos/data/PhotoProvider.java
index cffd1239e..d4310ca95 100644
--- a/src/com/android/photos/data/PhotoProvider.java
+++ b/src/com/android/photos/data/PhotoProvider.java
@@ -226,6 +226,9 @@ public class PhotoProvider extends SQLiteContentProvider {
protected static final String IN = " IN ";
protected static final String NESTED_SELECT_START = "(";
protected static final String NESTED_SELECT_END = ")";
+ protected static final String[] PROJECTION_COUNT = {
+ "COUNT(*)"
+ };
/**
* For selecting the mime-type for an image.
@@ -310,6 +313,7 @@ public class PhotoProvider extends SQLiteContentProvider {
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
String sortOrder, CancellationSignal cancellationSignal) {
+ projection = replaceCount(projection);
int match = matchUri(uri);
selection = addIdToSelection(match, selection);
selectionArgs = addIdToSelectionArgs(match, uri, selectionArgs);
@@ -521,4 +525,12 @@ public class PhotoProvider extends SQLiteContentProvider {
return db.query(table, columns, selection, selectionArgs, null, null, orderBy);
}
}
+
+ protected static String[] replaceCount(String[] projection) {
+ if (projection != null && projection.length == 1
+ && BaseColumns._COUNT.equals(projection[0])) {
+ return PROJECTION_COUNT;
+ }
+ return projection;
+ }
}