From 4bdfff2c9d2fefedcab17ad4e8b787b44ba2d114 Mon Sep 17 00:00:00 2001 From: Paul Rohde Date: Fri, 5 Dec 2014 12:17:15 -0800 Subject: Drop new focus indicator into Camera2. * Create a new custom focus view that interacts with physical lens diopter changes. * Replace all occurances of the old focus indicator with the new one. Change-Id: Ia02646ce4d1eb059ecb8a1dfccc15dfc9c167e1b --- src/com/android/camera/CaptureUI.java | 82 +++++------------------------------ 1 file changed, 10 insertions(+), 72 deletions(-) (limited to 'src/com/android/camera/CaptureUI.java') diff --git a/src/com/android/camera/CaptureUI.java b/src/com/android/camera/CaptureUI.java index 2293ce953..c62c5d695 100644 --- a/src/com/android/camera/CaptureUI.java +++ b/src/com/android/camera/CaptureUI.java @@ -71,7 +71,7 @@ import com.android.camera.ui.CameraControls; import com.android.camera.ui.OneUICameraControls; import com.android.camera.ui.CountDownView; import com.android.camera.ui.FlashToggleButton; -import com.android.camera.ui.FocusIndicator; +import com.android.camera.ui.focus.FocusRing; import com.android.camera.ui.PieRenderer; import com.android.camera.ui.RenderOverlay; import com.android.camera.ui.RotateImageView; @@ -88,8 +88,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; -public class CaptureUI implements FocusOverlayManager.FocusUI, - PreviewGestures.SingleTapListener, +public class CaptureUI implements PreviewGestures.SingleTapListener, CameraManager.CameraFaceDetectionCallback, SettingsManager.Listener, PauseButton.OnPauseButtonListener { @@ -101,6 +100,7 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, private static final int ANIMATION_DURATION = 300; private static final int CLICK_THRESHOLD = 200; private static final int AUTOMATIC_MODE = 0; + private final FocusRing mFocusRing; private CameraActivity mActivity; private View mRootView; private View mPreviewCover; @@ -278,6 +278,8 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, mSurfaceHolderMono = mSurfaceViewMono.getHolder(); mSurfaceHolderMono.addCallback(callbackMono); + mFocusRing = (FocusRing) mRootView.findViewById(R.id.focus_ring); + mRenderOverlay = (RenderOverlay) mRootView.findViewById(R.id.render_overlay); mShutterButton = (ShutterButton) mRootView.findViewById(R.id.shutter_button); mVideoButton = (ImageView) mRootView.findViewById(R.id.video_button); @@ -681,7 +683,6 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, if (mPreviewLayout != null && mPreviewLayout.getVisibility() == View.VISIBLE) { return; } - clearFocus(); removeFilterMenu(false); Intent intent = new Intent(mActivity, SettingsActivity.class); mActivity.startActivity(intent); @@ -727,7 +728,6 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, mSceneModeSwitcher.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - clearFocus(); removeFilterMenu(false); Intent intent = new Intent(mActivity, SceneModeActivity.class); intent.putExtra(CameraUtil.KEY_IS_SECURE_CAMERA, mActivity.isSecureCamera()); @@ -902,7 +902,6 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, } } - public void resetTrackingFocus() { if(mModule.isTrackingFocusSettingOn()) { mTrackingFocusRenderer.setVisible(false); @@ -1011,10 +1010,8 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, mSettingsManager.setValueIndex(SettingsManager .KEY_COLOR_EFFECT, j); for (View v1 : views) { - v1.setBackground(null); + v1.setActivated(v1 == v); } - ImageView image = (ImageView) v.findViewById(R.id.image); - image.setBackgroundColor(HIGHLIGHT_COLOR); } } return true; @@ -1022,10 +1019,8 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, }); views[j] = imageView; - if (i == init) - imageView.setBackgroundColor(HIGHLIGHT_COLOR); + imageView.setActivated(i == init); TextView label = (TextView) filterBox.findViewById(R.id.label); - imageView.setImageResource(thumbnails[i]); label.setText(entries[i]); gridLayout.addView(filterBox); @@ -1040,7 +1035,7 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, public void animateFadeIn(View v) { ViewPropertyAnimator vp = v.animate(); - vp.alpha(0.85f).setDuration(ANIMATION_DURATION); + vp.alpha(1f).setDuration(ANIMATION_DURATION); vp.start(); } @@ -1176,7 +1171,6 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, if (!mUIhidden) return; mUIhidden = false; - mPieRenderer.setBlockFocus(false); mCameraControls.showUI(); } @@ -1184,7 +1178,6 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, if (mUIhidden) return; mUIhidden = true; - mPieRenderer.setBlockFocus(true); mCameraControls.hideUI(); } @@ -1390,63 +1383,8 @@ public class CaptureUI implements FocusOverlayManager.FocusUI, mCameraControls.showRefocusToast(show); } - private FocusIndicator getFocusIndicator() { - if (mModule.isTrackingFocusSettingOn()) { - if (mPieRenderer != null) { - mPieRenderer.clear(); - } - return mTrackingFocusRenderer; - } - - return (mFaceView != null && mFaceView.faceExists()) ? mFaceView : mPieRenderer; - } - - @Override - public boolean hasFaces() { - return (mFaceView != null && mFaceView.faceExists()); - } - - public void clearFaces() { - if (mFaceView != null) mFaceView.clear(); - } - - @Override - public void clearFocus() { - FocusIndicator indicator = getFocusIndicator(); - if (indicator != null) indicator.clear(); - } - - @Override - public void setFocusPosition(int x, int y) { - mPieRenderer.setFocus(x, y); - } - - @Override - public void onFocusStarted() { - FocusIndicator indicator = getFocusIndicator(); - if (indicator != null) indicator.showStart(); - } - - @Override - public void onFocusSucceeded(boolean timeout) { - FocusIndicator indicator = getFocusIndicator(); - if (indicator != null) indicator.showSuccess(timeout); - } - - @Override - public void onFocusFailed(boolean timeOut) { - FocusIndicator indicator = getFocusIndicator(); - if (indicator != null) indicator.showFail(timeOut); - - } - - @Override - public void pauseFaceDetection() { - - } - - @Override - public void resumeFaceDetection() { + public FocusRing getFocusRing() { + return mFocusRing; } public void onStartFaceDetection(int orientation, boolean mirror, Rect cameraBound) { -- cgit v1.2.3