summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/app/AlbumPage.java
diff options
context:
space:
mode:
authorBobby Georgescu <georgescu@google.com>2012-08-23 14:35:18 -0700
committerBobby Georgescu <georgescu@google.com>2012-08-23 14:40:11 -0700
commit4e88a8c2a2addfadb05ca9699f505a3f348f3692 (patch)
treed97b35fa5ff90e833f3b806b29afa589d9a68b1c /src/com/android/gallery3d/app/AlbumPage.java
parentc760a5c49774c90b97ae818c6ee4e14825361b4b (diff)
downloadandroid_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.java21
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,