diff options
Diffstat (limited to 'src/com/android/camera/WideAnglePanoramaUI.java')
-rw-r--r-- | src/com/android/camera/WideAnglePanoramaUI.java | 116 |
1 files changed, 37 insertions, 79 deletions
diff --git a/src/com/android/camera/WideAnglePanoramaUI.java b/src/com/android/camera/WideAnglePanoramaUI.java index 183c2aaed..4d48d9501 100644 --- a/src/com/android/camera/WideAnglePanoramaUI.java +++ b/src/com/android/camera/WideAnglePanoramaUI.java @@ -16,12 +16,7 @@ package com.android.camera; -import java.lang.reflect.Method; - -import android.app.AlertDialog; -import android.app.ProgressDialog; import android.content.Context; -import android.content.DialogInterface; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Bitmap; @@ -34,8 +29,8 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Build; import android.util.Log; -import android.view.Gravity; import android.view.Display; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.TextureView; import android.view.View; @@ -44,18 +39,19 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.TextView; import com.android.camera.ui.CameraControls; import com.android.camera.ui.CameraRootView; import com.android.camera.ui.ModuleSwitcher; -import com.android.camera.ui.RotateImageView; import com.android.camera.ui.RotateLayout; import com.android.camera.ui.RotateTextToast; import com.android.camera.util.CameraUtil; + import org.codeaurora.snapcam.R; +import java.lang.reflect.Method; + /** * The UI of {@link WideAnglePanoramaModule}. */ @@ -68,11 +64,8 @@ public class WideAnglePanoramaUI extends BaseUI implements @SuppressWarnings("unused") private static final String TAG = "CAM_WidePanoramaUI"; - private CameraActivity mActivity; private WideAnglePanoramaController mController; - private ViewGroup mRootView; - private ModuleSwitcher mSwitcher; private FrameLayout mCaptureLayout; private View mReviewLayout; private ImageView mReview; @@ -87,7 +80,6 @@ public class WideAnglePanoramaUI extends BaseUI implements private ViewGroup mReviewControl; private TextureView mTextureView; private ShutterButton mShutterButton; - private CameraControls mCameraControls; private ImageView mThumbnail; private Bitmap mThumbnailBitmap; @@ -108,19 +100,20 @@ public class WideAnglePanoramaUI extends BaseUI implements private RotateLayout mPanoFailedDialog; private Button mPanoFailedButton; + private float mAspectRatio = 1.0f; + /** Constructor. */ public WideAnglePanoramaUI( CameraActivity activity, WideAnglePanoramaController controller, ViewGroup root) { - mActivity = activity; + super(activity, root, R.layout.panorama_module); mController = controller; - mRootView = root; createContentView(); - mSwitcher = (ModuleSwitcher) mRootView.findViewById(R.id.camera_switcher); - mSwitcher.setCurrentIndex(ModuleSwitcher.WIDE_ANGLE_PANO_MODULE_INDEX); - mSwitcher.setSwitchListener(mActivity); + + mCameraControls.setModuleIndex(ModuleSwitcher.WIDE_ANGLE_PANO_MODULE_INDEX); + if (!mActivity.isSecureCamera()) { mThumbnail = (ImageView) mRootView.findViewById(R.id.preview_thumb); mThumbnail.setOnClickListener(new OnClickListener() { @@ -132,20 +125,11 @@ public class WideAnglePanoramaUI extends BaseUI implements }); } - mSwitcher.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - mSwitcher.showPopup(); - mSwitcher.setOrientation(mOrientation, false); - } - }); - - RotateImageView muteButton = (RotateImageView)mRootView.findViewById(R.id.mute_button); - muteButton.setVisibility(View.GONE); + mCameraControls.hideCameraSettings(); } public void onStartCapture() { - hideSwitcher(); + mCameraControls.hideSwitcher(); mShutterButton.setImageResource(R.drawable.shutter_button_stop); mCaptureIndicator.setVisibility(View.VISIBLE); showDirectionIndicators(PanoProgressBar.DIRECTION_NONE); @@ -162,21 +146,6 @@ public class WideAnglePanoramaUI extends BaseUI implements hideDirectionIndicators(); } - public void hideSwitcher() { - mSwitcher.closePopup(); - mSwitcher.setVisibility(View.INVISIBLE); - } - - public void hideUI() { - hideSwitcher(); - mCameraControls.setVisibility(View.INVISIBLE); - } - - public void showUI() { - showSwitcher(); - mCameraControls.setVisibility(View.VISIBLE); - } - public void onPreviewFocusChanged(boolean previewFocused) { if (previewFocused) { showUI(); @@ -185,18 +154,6 @@ public class WideAnglePanoramaUI extends BaseUI implements } } - public boolean arePreviewControlsVisible() { - return (mCameraControls.getVisibility() == View.VISIBLE); - } - - public void showSwitcher() { - mSwitcher.setVisibility(View.VISIBLE); - } - - public void setSwitcherIndex() { - mSwitcher.setCurrentIndex(ModuleSwitcher.WIDE_ANGLE_PANO_MODULE_INDEX); - } - public void setCaptureProgressOnDirectionChangeListener( PanoProgressBar.OnDirectionChangeListener listener) { mCaptureProgressBar.setOnDirectionChangeListener(listener); @@ -353,14 +310,14 @@ public class WideAnglePanoramaUI extends BaseUI implements } } - private void setPanoramaPreviewView() { + private void layoutPreview() { int rotation = mActivity.getWindowManager().getDefaultDisplay().getRotation(); Display display = mActivity.getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; - int height = size.y; + int height = size.y - mTopMargin - mBottomMargin; int xOffset = 0; int yOffset = 0; int w = width; @@ -368,6 +325,7 @@ public class WideAnglePanoramaUI extends BaseUI implements h = w * 4 / 3; yOffset = (height - h) / 2; + yOffset += mTopMargin; FrameLayout.LayoutParams param = new FrameLayout.LayoutParams(w, h); mTextureView.setLayoutParams(param); @@ -378,12 +336,7 @@ public class WideAnglePanoramaUI extends BaseUI implements mPreviewBorder.setY(yOffset); mPreviewYOffset = yOffset; - int t = mPreviewYOffset; - int b1 = mTextureView.getBottom() - mPreviewYOffset; - int r = mTextureView.getRight(); - int b2 = mTextureView.getBottom(); - - mCameraControls.setPreviewRatio(1.0f, true); + mTextureView.layout(0, mPreviewYOffset, mTextureView.getRight(), mTextureView.getBottom()); } public void resetSavingProgress() { @@ -430,16 +383,11 @@ public class WideAnglePanoramaUI extends BaseUI implements } private void createContentView() { - LayoutInflater inflator = (LayoutInflater) mActivity - .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - inflator.inflate(R.layout.panorama_module, mRootView, true); - Resources appRes = mActivity.getResources(); mIndicatorColor = appRes.getColor(R.color.pano_progress_indication); mReviewBackground = appRes.getColor(R.color.review_background); mIndicatorColorFast = appRes.getColor(R.color.pano_progress_indication_fast); - mPreviewCover = mRootView.findViewById(R.id.preview_cover); mPreviewLayout = mRootView.findViewById(R.id.pano_preview_layout); mReviewControl = (ViewGroup) mRootView.findViewById(R.id.pano_review_control); mReviewLayout = mRootView.findViewById(R.id.pano_review_layout); @@ -462,7 +410,7 @@ public class WideAnglePanoramaUI extends BaseUI implements mShutterButton = (ShutterButton) mRootView.findViewById(R.id.shutter_button); mShutterButton.setImageResource(R.drawable.btn_new_shutter); - mShutterButton.setOnShutterButtonListener(this); + mShutterButton.addOnShutterButtonListener(this); // Hide menu and indicators. mRootView.findViewById(R.id.menu).setVisibility(View.GONE); mRootView.findViewById(R.id.on_screen_indicators).setVisibility(View.GONE); @@ -473,8 +421,6 @@ public class WideAnglePanoramaUI extends BaseUI implements mTextureView = (TextureView) mRootView.findViewById(R.id.pano_preview_textureview); mTextureView.setSurfaceTextureListener(this); mTextureView.addOnLayoutChangeListener(this); - mCameraControls = (CameraControls) mRootView.findViewById(R.id.camera_controls); - setPanoramaPreviewView(); mWaitingDialog = (RotateLayout) mRootView.findViewById(R.id.waitingDialog); mPanoFailedDialog = (RotateLayout) mRootView.findViewById(R.id.pano_dialog_layout); @@ -600,14 +546,6 @@ public class WideAnglePanoramaUI extends BaseUI implements } } - public boolean hideSwitcherPopup() { - if (mSwitcher != null && mSwitcher.showsPopup()) { - mSwitcher.closePopup(); - return true; - } - return false; - } - public void setOrientation(int orientation, boolean animation) { mOrientation = orientation; // '---------` @@ -698,4 +636,24 @@ public class WideAnglePanoramaUI extends BaseUI implements mCameraControls.setOrientation(orientation, animation); RotateTextToast.setOrientation(orientation); } + + public void setPreviewSize(int width, int height) { + if (width == 0 || height == 0) { + Log.w(TAG, "Preview size should not be 0."); + return; + } + float ratio; + if (width > height) { + ratio = (float) width / height; + } else { + ratio = (float) height / width; + } + + if (ratio != mAspectRatio) { + mAspectRatio = ratio; + } + + layoutPreview(); + mCameraControls.setPreviewRatio(mAspectRatio, false); + } } |