diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/com/android/gallery3d/app/PhotoDataAdapter.java | 9 | ||||
| -rw-r--r-- | src/com/android/gallery3d/data/ClusterAlbum.java | 6 |
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; |
