diff options
-rw-r--r-- | res/layout/video_module.xml | 3 | ||||
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 6 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 6 | ||||
-rw-r--r-- | src/com/android/camera/PhotoUI.java | 36 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 5 | ||||
-rw-r--r-- | src/com/android/camera/VideoUI.java | 22 |
6 files changed, 41 insertions, 37 deletions
diff --git a/res/layout/video_module.xml b/res/layout/video_module.xml index 1c1db4444..c1063510b 100644 --- a/res/layout/video_module.xml +++ b/res/layout/video_module.xml @@ -26,8 +26,7 @@ <SurfaceView android:id="@+id/mdp_preview_content" android:layout_width="match_parent" - android:layout_height="match_parent" - android:visibility="gone" /> + android:layout_height="match_parent" /> </FrameLayout> <FrameLayout android:layout_width="match_parent" diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index 80387a946..55f469c1e 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -1840,7 +1840,6 @@ public class CameraActivity extends Activity mCameraVideoModuleRootView.setVisibility(View.GONE); mCameraPanoModuleRootView.setVisibility(View.GONE); mCameraCaptureModuleRootView.setVisibility(View.GONE); - mCameraRootFrame.removeAllViews(); mCurrentModuleIndex = moduleIndex; switch (moduleIndex) { case ModuleSwitcher.VIDEO_MODULE_INDEX: @@ -1851,7 +1850,6 @@ public class CameraActivity extends Activity mVideoModule.reinit(); } mCurrentModule = mVideoModule; - mCameraRootFrame.addView(mCameraVideoModuleRootView); mCameraVideoModuleRootView.setVisibility(View.VISIBLE); break; @@ -1863,7 +1861,6 @@ public class CameraActivity extends Activity mPhotoModule.reinit(); } mCurrentModule = mPhotoModule; - mCameraRootFrame.addView(mCameraPhotoModuleRootView); mCameraPhotoModuleRootView.setVisibility(View.VISIBLE); break; @@ -1873,7 +1870,6 @@ public class CameraActivity extends Activity mPanoModule.init(this, mCameraPanoModuleRootView); } mCurrentModule = mPanoModule; - mCameraRootFrame.addView(mCameraPanoModuleRootView); mCameraPanoModuleRootView.setVisibility(View.VISIBLE); break; @@ -1883,7 +1879,6 @@ public class CameraActivity extends Activity mCaptureModule.init(this, mCameraCaptureModuleRootView); } mCurrentModule = mCaptureModule; - mCameraRootFrame.addView(mCameraCaptureModuleRootView); mCameraCaptureModuleRootView.setVisibility(View.VISIBLE); break; case ModuleSwitcher.LIGHTCYCLE_MODULE_INDEX: //Unused module for now @@ -1897,7 +1892,6 @@ public class CameraActivity extends Activity mPhotoModule.reinit(); } mCurrentModule = mPhotoModule; - mCameraRootFrame.addView(mCameraPhotoModuleRootView); mCameraPhotoModuleRootView.setVisibility(View.VISIBLE); break; } diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 589f55152..f8ad51190 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -696,6 +696,7 @@ public class PhotoModule private void switchCamera() { if (mPaused) return; + mUI.applySurfaceChange(PhotoUI.SURFACE_STATUS.HIDE); Log.v(TAG, "Start to switch camera. id=" + mPendingSwitchCameraId); mCameraId = mPendingSwitchCameraId; mPendingSwitchCameraId = -1; @@ -735,6 +736,7 @@ public class PhotoModule mFocusManager.setParameters(mInitialParams); setupPreview(); + mUI.applySurfaceChange(PhotoUI.SURFACE_STATUS.SURFACE_VIEW); // reset zoom value index mZoomValue = 0; resizeForPreviewAspectRatio(); @@ -2425,6 +2427,8 @@ public class PhotoModule mOpenCameraThread.start(); } + mUI.applySurfaceChange(PhotoUI.SURFACE_STATUS.SURFACE_VIEW); + mJpegPictureCallbackTime = 0; mZoomValue = 0; @@ -2463,6 +2467,8 @@ public class PhotoModule @Override public void onPauseBeforeSuper() { mPaused = true; + mUI.applySurfaceChange(PhotoUI.SURFACE_STATUS.HIDE); + Sensor gsensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); if (gsensor != null) { mSensorManager.unregisterListener(this, gsensor); diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java index 7e3659f0f..0cc1512b3 100644 --- a/src/com/android/camera/PhotoUI.java +++ b/src/com/android/camera/PhotoUI.java @@ -160,26 +160,15 @@ public class PhotoUI implements PieListener, private int mOrientation; private float mScreenBrightness = 0.0f; + public enum SURFACE_STATUS { + HIDE, + SURFACE_VIEW; + } + public interface SurfaceTextureSizeChangedListener { public void onSurfaceTextureSizeChanged(int uncroppedWidth, int uncroppedHeight); } - private OnLayoutChangeListener mLayoutListener = new OnLayoutChangeListener() { - @Override - public void onLayoutChange(View v, int left, int top, int right, - int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { - tryToCloseSubList(); - - Camera.Parameters parameters = ((PhotoModule)mController).getParameters(); - if(parameters != null) { - Camera.Size size = parameters.getPreviewSize(); - if (size != null) { - setAspectRatio((float) size.width / size.height); - } - } - } - }; - public CameraControls getCameraControls() { return mCameraControls; } @@ -233,6 +222,14 @@ public class PhotoUI implements PieListener, } } + public synchronized void applySurfaceChange(SURFACE_STATUS status) { + if(status == SURFACE_STATUS.HIDE) { + mSurfaceView.setVisibility(View.GONE); + return; + } + mSurfaceView.setVisibility(View.VISIBLE); + } + public PhotoUI(CameraActivity activity, PhotoController controller, View parent) { mActivity = activity; mController = controller; @@ -246,11 +243,8 @@ public class PhotoUI implements PieListener, mSurfaceHolder = mSurfaceView.getHolder(); mSurfaceHolder.addCallback(this); mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); - mSurfaceView.addOnLayoutChangeListener(mLayoutListener); Log.v(TAG, "Using mdp_preview_content (MDP path)"); - - View surfaceContainer = mRootView.findViewById(R.id.preview_container); - surfaceContainer.addOnLayoutChangeListener(new OnLayoutChangeListener() { + mSurfaceView.addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, @@ -258,6 +252,8 @@ public class PhotoUI implements PieListener, int width = right - left; int height = bottom - top; + tryToCloseSubList(); + if (mMaxPreviewWidth == 0 && mMaxPreviewHeight == 0) { mMaxPreviewWidth = width; mMaxPreviewHeight = height; diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 4724bd203..e06d5e46d 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -1094,6 +1094,8 @@ public class VideoModule implements CameraModule, mUI.enableShutter(true); } + mUI.applySurfaceChange(VideoUI.SURFACE_STATUS.SURFACE_VIEW); + mUI.initDisplayChangeListener(); // Initializing it here after the preview is started. mUI.initializeZoom(mParameters); @@ -1279,6 +1281,7 @@ public class VideoModule implements CameraModule, if(mWasMute != mIsMute) { setMute(mWasMute, false); } + mUI.applySurfaceChange(VideoUI.SURFACE_STATUS.HIDE); } @Override @@ -2716,6 +2719,7 @@ public class VideoModule implements CameraModule, } Log.d(TAG, "Start to switch camera."); + mUI.applySurfaceChange(VideoUI.SURFACE_STATUS.HIDE); mCameraId = mPendingSwitchCameraId; mPendingSwitchCameraId = -1; setCameraId(mCameraId); @@ -2727,6 +2731,7 @@ public class VideoModule implements CameraModule, CameraSettings.upgradeLocalPreferences(mPreferences.getLocal()); openCamera(); readVideoPreferences(); + mUI.applySurfaceChange(VideoUI.SURFACE_STATUS.SURFACE_VIEW); startPreview(); initializeVideoSnapshot(); resizeForPreviewAspectRatio(); diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java index 9a882e946..b920fff7a 100644 --- a/src/com/android/camera/VideoUI.java +++ b/src/com/android/camera/VideoUI.java @@ -130,13 +130,10 @@ public class VideoUI implements PieRenderer.PieListener, private float mSurfaceTextureUncroppedWidth; private float mSurfaceTextureUncroppedHeight; - private OnLayoutChangeListener mLayoutListener = new OnLayoutChangeListener() { - @Override - public void onLayoutChange(View v, int left, int top, int right, - int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { - tryToCloseSubList(); - } - }; + public enum SURFACE_STATUS { + HIDE, + SURFACE_VIEW; + } public void showPreviewCover() { mPreviewCover.setVisibility(View.VISIBLE); @@ -177,6 +174,14 @@ public class VideoUI implements PieRenderer.PieListener, } } + public synchronized void applySurfaceChange(SURFACE_STATUS status) { + if(status == SURFACE_STATUS.HIDE) { + mSurfaceView.setVisibility(View.GONE); + return; + } + mSurfaceView.setVisibility(View.VISIBLE); + } + public VideoUI(CameraActivity activity, VideoController controller, View parent) { mActivity = activity; mController = controller; @@ -190,9 +195,7 @@ public class VideoUI implements PieRenderer.PieListener, mSurfaceHolder = mSurfaceView.getHolder(); mSurfaceHolder.addCallback(this); mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); - mSurfaceView.addOnLayoutChangeListener(mLayoutListener); Log.v(TAG, "Using mdp_preview_content (MDP path)"); - View surfaceContainer = mRootView.findViewById(R.id.preview_container); surfaceContainer.addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override @@ -202,6 +205,7 @@ public class VideoUI implements PieRenderer.PieListener, int width = right - left; int height = bottom - top; + tryToCloseSubList(); if (mMaxPreviewWidth == 0 && mMaxPreviewHeight == 0) { mMaxPreviewWidth = width; mMaxPreviewHeight = height; |