summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhuiyan <huiyan@codeaurora.org>2016-03-26 16:27:24 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-04-20 19:02:49 -0700
commit59959dedc5983bc3fe957d3d2c7e64a4e082c515 (patch)
treed933093d287eb4f7851ee4ff42050fb76695254a /src
parent45e77b8fe6a6fb9f30622e7cca76be7d959d27f7 (diff)
downloadandroid_packages_apps_Gallery2-59959dedc5983bc3fe957d3d2c7e64a4e082c515.tar.gz
android_packages_apps_Gallery2-59959dedc5983bc3fe957d3d2c7e64a4e082c515.tar.bz2
android_packages_apps_Gallery2-59959dedc5983bc3fe957d3d2c7e64a4e082c515.zip
Gallery2: Fix the image add to the status bar.
The Gallery is killed by system in background due to some reason. The Gallery restore last states after restart it. But the mediaset is loading, the reload function return immediately, and the data is empty,the Photopage is finished when the data is empty. So the UI is wrong. If the mediaset is loading, waiting for it. After loading successfully, display the right photo. Change-Id: Icb95524bd151145beeba83205b365065fbb20530 CRs-Fixed: 979193
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;