summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/com/android/gallery3d/app/PhotoDataAdapter.java9
-rw-r--r--src/com/android/gallery3d/data/ClusterAlbum.java6
2 files changed, 12 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/app/PhotoDataAdapter.java b/src/com/android/gallery3d/app/PhotoDataAdapter.java
index d65c0d1c8..79cea8936 100755
--- a/src/com/android/gallery3d/app/PhotoDataAdapter.java
+++ b/src/com/android/gallery3d/app/PhotoDataAdapter.java
@@ -1297,18 +1297,23 @@ public class PhotoDataAdapter implements PhotoPage.Model {
@Override
public void run() {
+ long version = MediaObject.INVALID_DATA_VERSION;
while (mActive) {
synchronized (this) {
- if (!mDirty && mActive) {
+ if (!mDirty && mActive && version != MediaObject.INVALID_DATA_VERSION) {
updateLoading(false);
Utils.waitWithoutInterrupt(this);
continue;
}
}
mDirty = false;
+ version = mSource.reload();
+ //if data is not ready, continue to reload
+ if (version == MediaObject.INVALID_DATA_VERSION) {
+ continue;
+ }
UpdateInfo info = executeAndWait(new GetUpdateInfo());
updateLoading(true);
- long version = mSource.reload();
// Used for delete photo, RTL need to re-decide the slide range.
if (View.LAYOUT_DIRECTION_RTL == TextUtils
diff --git a/src/com/android/gallery3d/data/ClusterAlbum.java b/src/com/android/gallery3d/data/ClusterAlbum.java
index ad770c81a..ceec4a4ac 100644
--- a/src/com/android/gallery3d/data/ClusterAlbum.java
+++ b/src/com/android/gallery3d/data/ClusterAlbum.java
@@ -180,7 +180,11 @@ public class ClusterAlbum extends MediaSet implements ContentListener {
@Override
public long reload() {
- if (mClusterAlbumSet.reload() > mDataVersion) {
+ long version = mClusterAlbumSet.reload();
+ if (version == INVALID_DATA_VERSION) {
+ return INVALID_DATA_VERSION;
+ }
+ if (version > mDataVersion) {
mDataVersion = nextVersionNumber();
}
return mDataVersion;