diff options
author | Bobby Georgescu <georgescu@google.com> | 2012-08-23 14:35:18 -0700 |
---|---|---|
committer | Bobby Georgescu <georgescu@google.com> | 2012-08-23 14:40:11 -0700 |
commit | 4e88a8c2a2addfadb05ca9699f505a3f348f3692 (patch) | |
tree | d97b35fa5ff90e833f3b806b29afa589d9a68b1c /src/com/android/gallery3d/app/AlbumPage.java | |
parent | c760a5c49774c90b97ae818c6ee4e14825361b4b (diff) | |
download | android_packages_apps_Gallery2-4e88a8c2a2addfadb05ca9699f505a3f348f3692.tar.gz android_packages_apps_Gallery2-4e88a8c2a2addfadb05ca9699f505a3f348f3692.tar.bz2 android_packages_apps_Gallery2-4e88a8c2a2addfadb05ca9699f505a3f348f3692.zip |
Fix NPE, ANRs in Gallery
Bug: 7041482
Bug: 7041769
Change-Id: I06596bd9a058a8fe51c19108a0891c458950f22b
Diffstat (limited to 'src/com/android/gallery3d/app/AlbumPage.java')
-rw-r--r-- | src/com/android/gallery3d/app/AlbumPage.java | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/com/android/gallery3d/app/AlbumPage.java b/src/com/android/gallery3d/app/AlbumPage.java index fe0e07836..a39195007 100644 --- a/src/com/android/gallery3d/app/AlbumPage.java +++ b/src/com/android/gallery3d/app/AlbumPage.java @@ -233,25 +233,23 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster } } - private PreparePageFadeoutTexture mPrepareFadeoutTask; - - private void startPrepareFadeOutTexture() { + private void prepareFadeOutTexture() { GLRoot root = mActivity.getGLRoot(); - mPrepareFadeoutTask = new PreparePageFadeoutTexture( + PreparePageFadeoutTexture task = new PreparePageFadeoutTexture( mSlotView.getWidth(), mSlotView.getHeight() + mActivity.getGalleryActionBar().getHeight(), mRootPane); + RawTexture texture = null; root.unlockRenderThread(); try { - root.addOnGLIdleListener(mPrepareFadeoutTask); + root.addOnGLIdleListener(task); + texture = task.get(); } finally { root.lockRenderThread(); } - } - private void finishPrepareFadeOutTexture() { - mActivity.getTransitionStore().put(KEY_FADE_TEXTURE, - mPrepareFadeoutTask.get()); - mPrepareFadeoutTask = null; + if (texture != null) { + mActivity.getTransitionStore().put(KEY_FADE_TEXTURE, texture); + } } private void onSingleTapUp(int slotIndex) { @@ -266,9 +264,9 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster // Show pressed-up animation for the single-tap. mAlbumView.setPressedIndex(slotIndex); mAlbumView.setPressedUp(); - startPrepareFadeOutTexture(); mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_PICK_PHOTO, slotIndex, 0), FadeTexture.DURATION); + prepareFadeOutTexture(); } } @@ -282,7 +280,6 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster } else { // Get into the PhotoPage. // mAlbumView.savePositions(PositionRepository.getInstance(mActivity)); - finishPrepareFadeOutTexture(); Bundle data = new Bundle(); data.putInt(PhotoPage.KEY_INDEX_HINT, slotIndex); data.putParcelable(PhotoPage.KEY_OPEN_ANIMATION_RECT, |