summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/app/AlbumPage.java
diff options
context:
space:
mode:
authorChih-Chung Chang <chihchung@google.com>2012-01-09 12:41:57 +0800
committerChih-Chung Chang <chihchung@google.com>2012-01-09 17:12:19 +0800
commit3cc027083b67ddbabe17c1fc975e1d6459d1054a (patch)
tree6862f9ece05f4227e4e79f32e52d8f458d54fae9 /src/com/android/gallery3d/app/AlbumPage.java
parent8dfc48d5aa8cfcec7abfe8c411f76c9cf979a2f3 (diff)
downloadandroid_packages_apps_Snap-3cc027083b67ddbabe17c1fc975e1d6459d1054a.tar.gz
android_packages_apps_Snap-3cc027083b67ddbabe17c1fc975e1d6459d1054a.tar.bz2
android_packages_apps_Snap-3cc027083b67ddbabe17c1fc975e1d6459d1054a.zip
Fix 5835642: Only finish the page when it's still active.
The original code can call finishState twice in a row with the calling stack: finishState -> onPause -> clearLoadingBit -> finishState. Change clearLoadingBit to call finishState only when it's currently active. Change-Id: I537dbdd6ce26b26aeb565e243c4168229d4a70ef
Diffstat (limited to 'src/com/android/gallery3d/app/AlbumPage.java')
-rw-r--r--src/com/android/gallery3d/app/AlbumPage.java10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/app/AlbumPage.java b/src/com/android/gallery3d/app/AlbumPage.java
index 6fb414377..fbe4533f8 100644
--- a/src/com/android/gallery3d/app/AlbumPage.java
+++ b/src/com/android/gallery3d/app/AlbumPage.java
@@ -349,8 +349,10 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
if (mSyncTask != null) {
mSyncTask.cancel();
mSyncTask = null;
+ clearLoadingBit(BIT_LOADING_SYNC);
}
mActionModeHandler.pause();
+ GalleryUtils.setSpinnerVisibility((Activity) mActivity, false);
}
@Override
@@ -572,9 +574,8 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
if (resultCode == MediaSet.SYNC_RESULT_SUCCESS) {
mInitialSynced = true;
}
- if (!mIsActive) return;
clearLoadingBit(BIT_LOADING_SYNC);
- if (resultCode == MediaSet.SYNC_RESULT_ERROR) {
+ if (resultCode == MediaSet.SYNC_RESULT_ERROR && mIsActive) {
Toast.makeText((Context) mActivity, R.string.sync_album_error,
Toast.LENGTH_LONG).show();
}
@@ -583,7 +584,7 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
}
private void setLoadingBit(int loadTaskBit) {
- if (mLoadingBits == 0) {
+ if (mLoadingBits == 0 && mIsActive) {
GalleryUtils.setSpinnerVisibility((Activity) mActivity, true);
}
mLoadingBits |= loadTaskBit;
@@ -591,7 +592,7 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
private void clearLoadingBit(int loadTaskBit) {
mLoadingBits &= ~loadTaskBit;
- if (mLoadingBits == 0) {
+ if (mLoadingBits == 0 && mIsActive) {
GalleryUtils.setSpinnerVisibility((Activity) mActivity, false);
if (mAlbumDataAdapter.size() == 0) {
@@ -610,7 +611,6 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
@Override
public void onLoadingFinished() {
- if (!mIsActive) return;
clearLoadingBit(BIT_LOADING_RELOAD);
}
}