From 10f9ed035975937f670679a9d238d9db9e9952f1 Mon Sep 17 00:00:00 2001 From: junjiez Date: Thu, 24 Nov 2016 16:31:52 +0800 Subject: SnapdragonCamera:Modify Camera2 VideoRecording UI Modify Camera2 VideoRecording UI and make it look like the same as the design document shows. Change-Id: I41ea3db7312847fe56ad9d8e73dfa92b030e79e2 CRs-Fixed: 1093507 --- src/com/android/camera/CaptureUI.java | 31 ++++++------ src/com/android/camera/PauseButton.java | 4 +- src/com/android/camera/ui/OneUICameraControls.java | 56 ++++++++++++++++++---- 3 files changed, 67 insertions(+), 24 deletions(-) mode change 100644 => 100755 src/com/android/camera/PauseButton.java mode change 100644 => 100755 src/com/android/camera/ui/OneUICameraControls.java (limited to 'src/com') diff --git a/src/com/android/camera/CaptureUI.java b/src/com/android/camera/CaptureUI.java index b026af892..ed6e55963 100755 --- a/src/com/android/camera/CaptureUI.java +++ b/src/com/android/camera/CaptureUI.java @@ -194,7 +194,15 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, private void previewUIReady() { if((mSurfaceHolder != null && mSurfaceHolder.getSurface().isValid())) { mModule.onPreviewUIReady(); - mActivity.updateThumbnail(mThumbnail); + if (mIsVideoUI && mThumbnail != null) { + mThumbnail.setVisibility(View.INVISIBLE); + mThumbnail = null; + mActivity.updateThumbnail(mThumbnail); + } else if (!mIsVideoUI){ + if (mThumbnail == null) + mThumbnail = (ImageView) mRootView.findViewById(R.id.preview_thumb); + mActivity.updateThumbnail(mThumbnail); + } } } @@ -369,7 +377,7 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, mRenderOverlay.requestLayout(); mActivity.setPreviewGestures(mGestures); - ((ViewGroup)mRootView).removeView(mRecordingTimeRect); + mRecordingTimeRect.setVisibility(View.GONE); showFirstTimeHelp(); } @@ -590,13 +598,13 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, } mVideoButton.setImageResource(R.drawable.video_stop); mRecordingTimeView.setText(""); - ((ViewGroup)mRootView).addView(mRecordingTimeRect); + mRecordingTimeRect.setVisibility(View.VISIBLE); mMuteButton.setVisibility(View.VISIBLE); } else { mFlashButton.setVisibility(View.VISIBLE); mFlashButton.init(false); mVideoButton.setImageResource(R.drawable.video_capture); - ((ViewGroup)mRootView).removeView(mRecordingTimeRect); + mRecordingTimeRect.setVisibility(View.GONE); mMuteButton.setVisibility(View.INVISIBLE); } } @@ -609,25 +617,26 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, } public void hideUIwhileRecording() { - mCameraControls.setWillNotDraw(true); + mCameraControls.setVideoMode(true); mFrontBackSwitcher.setVisibility(View.INVISIBLE); mFilterModeSwitcher.setVisibility(View.INVISIBLE); mSceneModeSwitcher.setVisibility(View.INVISIBLE); - String value = mSettingsManager.getValue(SettingsManager.KEY_MAKEUP); if(value != null && value.equals("0")) { mMakeupButton.setVisibility(View.INVISIBLE); } mIsVideoUI = true; + mPauseButton.setVisibility(View.VISIBLE); } public void showUIafterRecording() { - mCameraControls.setWillNotDraw(false); + mCameraControls.setVideoMode(false); mFrontBackSwitcher.setVisibility(View.VISIBLE); mFilterModeSwitcher.setVisibility(View.VISIBLE); mSceneModeSwitcher.setVisibility(View.VISIBLE); mMakeupButton.setVisibility(View.VISIBLE); mIsVideoUI = false; + mPauseButton.setVisibility(View.INVISIBLE); } public void addFilterMode() { @@ -1198,13 +1207,7 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, } } if (mRecordingTimeRect != null) { - if (orientation == 180) { - mRecordingTimeRect.setOrientation(0, false); - mRecordingTimeView.setRotation(180); - } else { - mRecordingTimeView.setRotation(0); - mRecordingTimeRect.setOrientation(orientation, false); - } + mRecordingTimeView.setRotation(-orientation); } if (mFaceView != null) { mFaceView.setDisplayRotation(orientation); diff --git a/src/com/android/camera/PauseButton.java b/src/com/android/camera/PauseButton.java old mode 100644 new mode 100755 index a785050fd..6511e0e08 --- a/src/com/android/camera/PauseButton.java +++ b/src/com/android/camera/PauseButton.java @@ -36,11 +36,13 @@ import android.view.MotionEvent; import android.view.View; import android.util.Log; +import com.android.camera.ui.RotateImageView; + /** * A button designed to be used for the on-screen recording * pausing-continue button. */ -public class PauseButton extends ImageView { +public class PauseButton extends RotateImageView { public interface OnPauseButtonListener { void onButtonPause(); diff --git a/src/com/android/camera/ui/OneUICameraControls.java b/src/com/android/camera/ui/OneUICameraControls.java old mode 100644 new mode 100755 index 413221211..0388b5761 --- a/src/com/android/camera/ui/OneUICameraControls.java +++ b/src/com/android/camera/ui/OneUICameraControls.java @@ -24,10 +24,12 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; import android.util.AttributeSet; +import android.util.Log; import android.util.TypedValue; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; +import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.SeekBar; import android.widget.TextView; @@ -43,6 +45,7 @@ public class OneUICameraControls extends RotatableLayout { private View mShutter; private View mVideoShutter; + private View mPauseButton; private View mFlashButton; private View mMute; private View mFrontBackSwitcher; @@ -78,6 +81,9 @@ public class OneUICameraControls extends RotatableLayout { private int mWidth; private int mHeight; private boolean mVisible; + private boolean mIsVideoMode = false; + private int mBottomLargeSize; + private int mBottomSmallSize; private ProMode mProMode; private ImageView mExposureIcon; @@ -124,6 +130,7 @@ public class OneUICameraControls extends RotatableLayout { super.onFinishInflate(); mShutter = findViewById(R.id.shutter_button); mVideoShutter = findViewById(R.id.video_button); + mPauseButton = findViewById(R.id.video_pause); mFrontBackSwitcher = findViewById(R.id.front_back_switcher); mTsMakeupSwitcher = findViewById(R.id.ts_makeup_switcher); mMakeupSeekBarLowText = findViewById(R.id.makeup_low_text); @@ -217,9 +224,13 @@ public class OneUICameraControls extends RotatableLayout { mViews = new View[]{ mSceneModeSwitcher, mFilterModeSwitcher, mFrontBackSwitcher, - mTsMakeupSwitcher, mFlashButton, mShutter, mPreview, mVideoShutter + mTsMakeupSwitcher, mFlashButton, mShutter, mPreview, mVideoShutter, + mPauseButton }; - + mBottomLargeSize = getResources().getDimensionPixelSize( + R.dimen.one_ui_bottom_large); + mBottomSmallSize = getResources().getDimensionPixelSize( + R.dimen.one_ui_bottom_small); if(!BeautificationFilter.isSupportedStatic()) { mTsMakeupSwitcher.setVisibility(View.GONE); mTsMakeupSwitcher = null; @@ -311,18 +322,34 @@ public class OneUICameraControls extends RotatableLayout { int rotation = getUnifiedRotation(); setLocation(mSceneModeSwitcher, true, 0); setLocation(mFilterModeSwitcher, true, 1); - setLocation(mFrontBackSwitcher, true, 2); - setLocation(mTsMakeupSwitcher, true, 3); - setLocation(mFlashButton, true, 4); - setLocation(mPreview, false, 0); - setLocation(mShutter, false, 2); - setLocation(mVideoShutter, false, 3.15f); + if (mIsVideoMode) { + setLocation(mMute, true, 2); + setLocation(mTsMakeupSwitcher, true, 3); + setLocation(mFlashButton, true, 4); + setLocation(mPauseButton, false, 3.15f); + setLocation(mShutter, false , 0.85f); + setLocation(mVideoShutter, false, 2); + } else { + setLocation(mFrontBackSwitcher, true, 2); + setLocation(mTsMakeupSwitcher, true, 3); + setLocation(mFlashButton, true, 4); + setLocation(mPreview, false, 0); + setLocation(mShutter, false, 2); + setLocation(mVideoShutter, false, 3.15f); + } setLocationCustomBottom(mMakeupSeekBarLayout, 0, 1); setLocation(mProModeCloseButton, false, 4); layoutToast(mRefocusToast, w, h, rotation); } + private void setBottomButtionSize(View view, int width, int height) { + FrameLayout.LayoutParams layout = (FrameLayout.LayoutParams)view.getLayoutParams(); + layout.height = height; + layout.width = width; + view.setLayoutParams(layout); + } + private void layoutToast(final View v, int w, int h, int rotation) { int tw = v.getMeasuredWidth(); int th = v.getMeasuredHeight(); @@ -378,6 +405,17 @@ public class OneUICameraControls extends RotatableLayout { mVisible = true; } + public void setVideoMode(boolean videoMode) { + mIsVideoMode = videoMode; + if (mIsVideoMode) { + setBottomButtionSize(mVideoShutter, mBottomLargeSize, mBottomLargeSize); + setBottomButtionSize(mShutter, mBottomSmallSize, mBottomSmallSize); + } else { + setBottomButtionSize(mShutter, mBottomLargeSize, mBottomLargeSize); + setBottomButtionSize(mVideoShutter, mBottomSmallSize, mBottomSmallSize); + } + } + private void layoutRemaingPhotos() { int rl = mPreview.getLeft(); int rt = mPreview.getTop(); @@ -431,7 +469,7 @@ public class OneUICameraControls extends RotatableLayout { View[] views = { mSceneModeSwitcher, mFilterModeSwitcher, mFrontBackSwitcher, mTsMakeupSwitcher, mFlashButton, mPreview, mMute, mShutter, mVideoShutter, - mMakeupSeekBarLowText, mMakeupSeekBarHighText + mMakeupSeekBarLowText, mMakeupSeekBarHighText, mPauseButton }; for (View v : views) { -- cgit v1.2.3