diff options
| author | George Mount <mount@google.com> | 2013-04-11 20:52:32 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-04-11 20:52:32 +0000 |
| commit | 34a50f0c3db6890e857abc68f5b9280f95c14d2e (patch) | |
| tree | e5cd46d3857497b74616d784177c2b2f60cc5716 /src | |
| parent | ea2fa83c2dd2b59b8a67ec363e4ac431748f997b (diff) | |
| parent | ba1d7caf633631e3195e3938a39b86efd820869a (diff) | |
| download | android_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.java | 12 |
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; + } } |
