summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/layout/video_module.xml3
-rw-r--r--src/com/android/camera/CameraActivity.java6
-rw-r--r--src/com/android/camera/PhotoModule.java6
-rw-r--r--src/com/android/camera/PhotoUI.java36
-rw-r--r--src/com/android/camera/VideoModule.java5
-rw-r--r--src/com/android/camera/VideoUI.java22
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 7315f4d80..fafb40839 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -1842,7 +1842,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:
@@ -1853,7 +1852,6 @@ public class CameraActivity extends Activity
mVideoModule.reinit();
}
mCurrentModule = mVideoModule;
- mCameraRootFrame.addView(mCameraVideoModuleRootView);
mCameraVideoModuleRootView.setVisibility(View.VISIBLE);
break;
@@ -1865,7 +1863,6 @@ public class CameraActivity extends Activity
mPhotoModule.reinit();
}
mCurrentModule = mPhotoModule;
- mCameraRootFrame.addView(mCameraPhotoModuleRootView);
mCameraPhotoModuleRootView.setVisibility(View.VISIBLE);
break;
@@ -1875,7 +1872,6 @@ public class CameraActivity extends Activity
mPanoModule.init(this, mCameraPanoModuleRootView);
}
mCurrentModule = mPanoModule;
- mCameraRootFrame.addView(mCameraPanoModuleRootView);
mCameraPanoModuleRootView.setVisibility(View.VISIBLE);
break;
@@ -1885,7 +1881,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
@@ -1899,7 +1894,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 f3d9a4ca1..3abd74cca 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();
@@ -2426,6 +2428,8 @@ public class PhotoModule
mOpenCameraThread.start();
}
+ mUI.applySurfaceChange(PhotoUI.SURFACE_STATUS.SURFACE_VIEW);
+
mJpegPictureCallbackTime = 0;
mZoomValue = 0;
@@ -2464,6 +2468,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 5d428e432..d4503af77 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 8797d0fd0..8e2dc90eb 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
@@ -2717,6 +2720,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);
@@ -2728,6 +2732,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 f67480e55..8447db27e 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;