diff options
| author | Kedi Xu <kedix@codeaurora.org> | 2016-08-29 15:38:59 +0800 |
|---|---|---|
| committer | Steve Kondik <steve@cyngn.com> | 2016-09-26 04:54:50 -0700 |
| commit | f8fd4e9b96f4e6409c77306ee5a9e55014374e93 (patch) | |
| tree | ba23e3c3ebaefe7708bc0191e5b6ed37279a79e0 | |
| parent | 583a1a5deb75d0131325fb0be547ffb3f4079402 (diff) | |
| download | android_packages_apps_Gallery2-f8fd4e9b96f4e6409c77306ee5a9e55014374e93.tar.gz android_packages_apps_Gallery2-f8fd4e9b96f4e6409c77306ee5a9e55014374e93.tar.bz2 android_packages_apps_Gallery2-f8fd4e9b96f4e6409c77306ee5a9e55014374e93.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
| -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 477ef73ad..200d21f33 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(); |
