summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLikai Ding <likaid@codeaurora.org>2016-04-07 13:32:22 +0800
committerLikai Ding <likaid@codeaurora.org>2016-04-07 14:45:38 +0800
commitabc97666333eeb1b3c89293dca3324b7dd9260b9 (patch)
tree655fcc7f2adb4fc51cbc238aac8e2678078fd8ce /src
parent53deaf4cbc171ca6afe2cd7131fdefe58fee84de (diff)
downloadandroid_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.java14
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();