diff options
| author | Kedi Xu <kedix@codeaurora.org> | 2016-08-29 15:38:59 +0800 |
|---|---|---|
| committer | Kedi Xu <kedix@codeaurora.org> | 2016-08-29 15:38:59 +0800 |
| commit | cb725ec9c662b9e53aad9135334b656a494fee01 (patch) | |
| tree | cdcf545616aaa424bc5635f579c6581ee44c4fe4 /src/com | |
| parent | 3a841f98947dc5437a61b3add98e72ca96b75acc (diff) | |
| download | android_packages_apps_Gallery2-cb725ec9c662b9e53aad9135334b656a494fee01.tar.gz android_packages_apps_Gallery2-cb725ec9c662b9e53aad9135334b656a494fee01.tar.bz2 android_packages_apps_Gallery2-cb725ec9c662b9e53aad9135334b656a494fee01.zip | |
SnapdragonGallery: optimize SlideShow start speed
When launch SlideShow in TimeLinePage, the FilterTypeSet
will load data twice. Avoid the useless data load.
Change-Id: I43203bd52d2811ef651435c49e624b8e3d8b0361
CRs-Fixed: 1050332
Diffstat (limited to 'src/com')
| -rwxr-xr-x[-rw-r--r--] | src/com/android/gallery3d/data/FilterTypeSet.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/data/FilterTypeSet.java b/src/com/android/gallery3d/data/FilterTypeSet.java index e778ceb12..50a7c6964 100644..100755 --- a/src/com/android/gallery3d/data/FilterTypeSet.java +++ b/src/com/android/gallery3d/data/FilterTypeSet.java @@ -64,6 +64,10 @@ public class FilterTypeSet extends MediaSet implements ContentListener { mPaths, start, count, mDataManager); } + public ArrayList<Path> getPaths() { + return mPaths; + } + @Override public long reload() { if (mBaseSet.reload() > mDataVersion) { @@ -88,12 +92,18 @@ public class FilterTypeSet extends MediaSet implements ContentListener { String filteredPath = basePath + "/{" + set.getPath().toString() + "}"; MediaSet filteredSet = mDataManager.getMediaSet(filteredPath); filteredSet.reload(); + if (filteredSet instanceof FilterTypeSet && ((FilterTypeSet)filteredSet).getPaths() != null) { + mPaths.addAll(((FilterTypeSet)filteredSet).getPaths()); + } if (filteredSet.getMediaItemCount() > 0 || filteredSet.getSubMediaSetCount() > 0) { mAlbums.add(filteredSet); } } + if (mPaths.size() > 0) { + return; + } // Items mPaths.clear(); final int total = mBaseSet.getMediaItemCount(); |
