diff options
Diffstat (limited to 'src/com/android/camera/CaptureUI.java')
-rw-r--r-- | src/com/android/camera/CaptureUI.java | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/com/android/camera/CaptureUI.java b/src/com/android/camera/CaptureUI.java index 3d766fa37..71d39e067 100644 --- a/src/com/android/camera/CaptureUI.java +++ b/src/com/android/camera/CaptureUI.java @@ -136,15 +136,14 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, public void surfaceCreated(SurfaceHolder holder) { Log.v(TAG, "surfaceCreated"); mSurfaceHolder = holder; - mModule.onPreviewUIReady(); - mActivity.updateThumbnail(mThumbnail); + previewUIReady(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { Log.v(TAG, "surfaceDestroyed"); mSurfaceHolder = null; - mModule.onPreviewUIDestroyed(); + previewUIDestroyed(); } }; @@ -172,19 +171,39 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, // SurfaceHolder callbacks @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { + Log.v(TAG, "surfaceChanged2"); } @Override public void surfaceCreated(SurfaceHolder holder) { + Log.v(TAG, "surfaceCreated2"); mSurfaceHolder2 = holder; + previewUIReady(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { + Log.v(TAG, "surfaceDestroyed2"); mSurfaceHolder2 = null; + previewUIDestroyed(); } }; + private void previewUIReady() { + if((mSurfaceHolder != null && mSurfaceHolder.getSurface().isValid()) && + (mSurfaceView2.getVisibility() != View.VISIBLE || + (mSurfaceView2.getVisibility() == View.VISIBLE && + mSurfaceHolder2 != null && + mSurfaceHolder2.getSurface().isValid()))) { + mModule.onPreviewUIReady(); + mActivity.updateThumbnail(mThumbnail); + } + } + + private void previewUIDestroyed() { + mModule.onPreviewUIDestroyed(); + } + public CaptureUI(CameraActivity activity, CaptureModule module, View parent) { mActivity = activity; mModule = module; @@ -349,7 +368,9 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, int index = mSettingsManager.getValueIndex(SettingsManager.KEY_CAMERA_ID); CharSequence[] entries = mSettingsManager.getEntries(SettingsManager.KEY_CAMERA_ID); - index = (index + 1) % entries.length; + do { + index = (index + 1) % entries.length; + } while (entries[index] == null); mSettingsManager.setValueIndex(SettingsManager.KEY_CAMERA_ID, index); int[] largeIcons = mSettingsManager.getResource(SettingsManager.KEY_CAMERA_ID, SettingsManager.RESOURCE_TYPE_LARGEICON); |