From bd7c016d728853d38f98a3c6077b7bd9b08858b9 Mon Sep 17 00:00:00 2001 From: Yuli Huang Date: Tue, 15 May 2012 22:36:59 +0800 Subject: [PATCH] Avoid black screen when PhotoPage just starts. bug:5367032 Change-Id: I6bd56026ec32bcee972d69855966750b9a57cdf4 --- src/com/android/gallery3d/app/PhotoPage.java | 15 +++++++++++++++ src/com/android/gallery3d/ui/PhotoView.java | 4 ++++ src/com/android/gallery3d/ui/PositionController.java | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java index 52f7c4176..a46c777fa 100644 --- a/src/com/android/gallery3d/app/PhotoPage.java +++ b/src/com/android/gallery3d/app/PhotoPage.java @@ -71,8 +71,10 @@ public class PhotoPage extends ActivityState implements private static final int MSG_UNLOCK_ORIENTATION = 3; private static final int MSG_ON_FULL_SCREEN_CHANGED = 4; private static final int MSG_UPDATE_ACTION_BAR = 5; + private static final int MSG_UNFREEZE_GLROOT = 6; private static final int HIDE_BARS_TIMEOUT = 3500; + private static final int UNFREEZE_GLROOT_TIMEOUT = 250; private static final int REQUEST_SLIDESHOW = 1; private static final int REQUEST_CROP = 2; @@ -276,6 +278,10 @@ public class PhotoPage extends ActivityState implements updateBars(); break; } + case MSG_UNFREEZE_GLROOT: { + mActivity.getGLRoot().unfreeze(); + break; + } default: throw new AssertionError(message.what); } } @@ -720,6 +726,8 @@ public class PhotoPage extends ActivityState implements @Override public void onPause() { + mActivity.getGLRoot().unfreeze(); + mHandler.removeMessages(MSG_UNFREEZE_GLROOT); super.onPause(); mIsActive = false; if (mAppBridge != null) mAppBridge.setServer(null); @@ -733,7 +741,13 @@ public class PhotoPage extends ActivityState implements } @Override + public void onCurrentImageUpdated() { + mActivity.getGLRoot().unfreeze(); + } + + @Override protected void onResume() { + mActivity.getGLRoot().freeze(); super.onResume(); mIsActive = true; setContentPane(mRootPane); @@ -750,6 +764,7 @@ public class PhotoPage extends ActivityState implements mAppBridge.setServer(this); mPhotoView.resetToFirstPicture(); } + mHandler.sendEmptyMessageDelayed(MSG_UNFREEZE_GLROOT, UNFREEZE_GLROOT_TIMEOUT); } @Override diff --git a/src/com/android/gallery3d/ui/PhotoView.java b/src/com/android/gallery3d/ui/PhotoView.java index dce37289e..1c0484979 100644 --- a/src/com/android/gallery3d/ui/PhotoView.java +++ b/src/com/android/gallery3d/ui/PhotoView.java @@ -79,6 +79,7 @@ public class PhotoView extends GLView { public void unlockOrientation(); public void onFullScreenChanged(boolean full); public void onActionBarAllowed(boolean allowed); + public void onCurrentImageUpdated(); } // Here is a graph showing the places we need to lock/unlock device @@ -318,6 +319,9 @@ public class PhotoView extends GLView { } public void notifyImageChange(int index) { + if (index == 0) { + mListener.onCurrentImageUpdated(); + } mPictures.get(index).reload(); invalidate(); } diff --git a/src/com/android/gallery3d/ui/PositionController.java b/src/com/android/gallery3d/ui/PositionController.java index f49a0b727..99d36baec 100644 --- a/src/com/android/gallery3d/ui/PositionController.java +++ b/src/com/android/gallery3d/ui/PositionController.java @@ -207,6 +207,7 @@ class PositionController { } updateScaleAndGapLimit(); + startOpeningAnimationIfNeeded(); snapAndRedraw(); } @@ -233,7 +234,6 @@ class PositionController { } updateScaleAndGapLimit(); - startOpeningAnimationIfNeeded(); snapAndRedraw(); } -- 2.11.0