summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKedi Xu <kedix@codeaurora.org>2016-08-29 15:38:59 +0800
committerKedi Xu <kedix@codeaurora.org>2016-08-29 15:38:59 +0800
commitcb725ec9c662b9e53aad9135334b656a494fee01 (patch)
treecdcf545616aaa424bc5635f579c6581ee44c4fe4 /src
parent3a841f98947dc5437a61b3add98e72ca96b75acc (diff)
downloadandroid_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')
-rwxr-xr-x[-rw-r--r--]src/com/android/gallery3d/data/FilterTypeSet.java10
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();