diff options
| author | Likai Ding <likaid@codeaurora.org> | 2016-04-07 13:32:22 +0800 |
|---|---|---|
| committer | Likai Ding <likaid@codeaurora.org> | 2016-04-07 14:45:38 +0800 |
| commit | abc97666333eeb1b3c89293dca3324b7dd9260b9 (patch) | |
| tree | 655fcc7f2adb4fc51cbc238aac8e2678078fd8ce /src | |
| parent | 53deaf4cbc171ca6afe2cd7131fdefe58fee84de (diff) | |
| download | android_packages_apps_Gallery2-abc97666333eeb1b3c89293dca3324b7dd9260b9.tar.gz android_packages_apps_Gallery2-abc97666333eeb1b3c89293dca3324b7dd9260b9.tar.bz2 android_packages_apps_Gallery2-abc97666333eeb1b3c89293dca3324b7dd9260b9.zip | |
Gallery: fix timeline page display empty
If timeline page is navigated to again, base MediaSet may be retrieved
from cache and its version will not change, causing endless reload()
calls. Use isLoading() to determine the state.
The regression is caused by I1e05d31632694692025ac78a2d83200281f464ab
Change-Id: Icb7d623bc04353bfbca6577d2734d1ef9494d2bc
CRs-Fixed: 984190
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/gallery3d/data/ClusterAlbumSet.java | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/com/android/gallery3d/data/ClusterAlbumSet.java b/src/com/android/gallery3d/data/ClusterAlbumSet.java index 33074bea2..9ed3a7841 100644 --- a/src/com/android/gallery3d/data/ClusterAlbumSet.java +++ b/src/com/android/gallery3d/data/ClusterAlbumSet.java @@ -20,10 +20,8 @@ import android.content.Context; import android.net.Uri; import com.android.gallery3d.app.GalleryApp; -import com.android.gallery3d.util.GalleryUtils; -import com.android.gallery3d.common.Utils; + import java.util.ArrayList; -import java.util.HashSet; import java.util.Arrays; import java.util.HashMap; @@ -32,10 +30,8 @@ public class ClusterAlbumSet extends MediaSet implements ContentListener { private static final String TAG = "ClusterAlbumSet"; private GalleryApp mApplication; private MediaSet mBaseSet; - private long mBaseDataVersion; private int mKind; private ArrayList<ClusterAlbum> mAlbums = new ArrayList<ClusterAlbum>(); - private boolean mFirstReloadDone; private int mTotalMediaItemCount; /** mTotalSelectableMediaItemCount is the count of items @@ -48,7 +44,6 @@ public class ClusterAlbumSet extends MediaSet implements ContentListener { super(path, INVALID_DATA_VERSION); mApplication = application; mBaseSet = baseSet; - mBaseDataVersion = mBaseSet.getDataVersion(); mKind = kind; baseSet.addContentListener(this); } @@ -71,11 +66,10 @@ public class ClusterAlbumSet extends MediaSet implements ContentListener { @Override public long reload() { synchronized (this) { - if (mBaseSet.reload() > mBaseDataVersion) { + long version = mBaseSet.reload(); + if (version > mDataVersion && !mBaseSet.isLoading()) { updateClusters(); - mFirstReloadDone = true; mDataVersion = nextVersionNumber(); - mBaseDataVersion = mDataVersion; } if (mKind == ClusterSource.CLUSTER_ALBUMSET_TIME) { calculateTotalItemsCount(); @@ -231,7 +225,7 @@ public class ClusterAlbumSet extends MediaSet implements ContentListener { int s; int lCount; if (mAlbums.size() > 0 && mAlbumItemCountList.size() > 0) { - s = mAlbums.get(startAlbum).getTotalMediaItemCount() - + s = mAlbums.get(startAlbum).getTotalMediaItemCount() - (mAlbumItemCountList.get(startAlbum) - start); for (int i = startAlbum; i <= endAlbum && i < mAlbums.size(); ++i) { int albumCount = mAlbums.get(i).getTotalMediaItemCount(); |
