diff options
author | Chih-Chung Chang <chihchung@google.com> | 2012-01-09 12:41:57 +0800 |
---|---|---|
committer | Chih-Chung Chang <chihchung@google.com> | 2012-01-09 17:12:19 +0800 |
commit | 3cc027083b67ddbabe17c1fc975e1d6459d1054a (patch) | |
tree | 6862f9ece05f4227e4e79f32e52d8f458d54fae9 /src/com/android/gallery3d/app/AlbumPage.java | |
parent | 8dfc48d5aa8cfcec7abfe8c411f76c9cf979a2f3 (diff) | |
download | android_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.java | 10 |
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); } } |