From f7758b6cc5ab00ad3955bf9c98af76559644a477 Mon Sep 17 00:00:00 2001 From: Doris Liu Date: Thu, 6 Jun 2013 16:54:18 -0700 Subject: Add enable/disable swiping to filmstrip Change-Id: I3e019764a72f947545cd230b9bfe45f67d83dc29 --- src/com/android/camera/NewCameraActivity.java | 5 +++++ src/com/android/camera/NewPhotoModule.java | 4 ++-- src/com/android/camera/NewPhotoUI.java | 9 ++++++--- src/com/android/camera/NewVideoModule.java | 4 ++-- src/com/android/camera/NewVideoUI.java | 9 ++++++--- src/com/android/camera/data/CameraDataAdapter.java | 2 +- src/com/android/camera/ui/FilmStripView.java | 5 +++++ 7 files changed, 27 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/com/android/camera/NewCameraActivity.java b/src/com/android/camera/NewCameraActivity.java index f26e73e5d..59b366419 100644 --- a/src/com/android/camera/NewCameraActivity.java +++ b/src/com/android/camera/NewCameraActivity.java @@ -254,6 +254,7 @@ public class NewCameraActivity extends Activity v.getDrawable().getIntrinsicHeight(), 0, 0)); } + setSwipingEnabled(true); } @Override @@ -390,6 +391,10 @@ public class NewCameraActivity extends Activity public void onShowSwitcherPopup() { } + public void setSwipingEnabled(boolean enable) { + mDataAdapter.setCameraPreviewLock(!enable); + } + // Accessor methods for getting latency times used in performance testing public long getAutoFocusTime() { return (mCurrentModule instanceof PhotoModule) ? diff --git a/src/com/android/camera/NewPhotoModule.java b/src/com/android/camera/NewPhotoModule.java index e5d50f383..f3eac3d57 100644 --- a/src/com/android/camera/NewPhotoModule.java +++ b/src/com/android/camera/NewPhotoModule.java @@ -754,7 +754,7 @@ public class NewPhotoModule } if (mSceneMode == Util.SCENE_MODE_HDR) { mUI.showSwitcher(); - //TODO: mActivity.setSwipingEnabled(true); + mUI.setSwipingEnabled(true); } mJpegPictureCallbackTime = System.currentTimeMillis(); @@ -1191,7 +1191,7 @@ public class NewPhotoModule if (mSceneMode == Util.SCENE_MODE_HDR) { mUI.hideSwitcher(); - //TODO: mActivity.setSwipingEnabled(false); + mUI.setSwipingEnabled(false); } // If the user wants to do a snapshot while the previous one is still // in progress, remember the fact and do it after we finish the previous diff --git a/src/com/android/camera/NewPhotoUI.java b/src/com/android/camera/NewPhotoUI.java index cd93a7ea9..4d9469743 100644 --- a/src/com/android/camera/NewPhotoUI.java +++ b/src/com/android/camera/NewPhotoUI.java @@ -645,8 +645,7 @@ public class NewPhotoUI implements PieListener, @Override public void onPieOpened(int centerX, int centerY) { - //TODO: mActivity.cancelActivityTouchHandling(); - //TODO: mActivity.setSwipingEnabled(false); + setSwipingEnabled(false); dismissPopup(); if (mFaceView != null) { mFaceView.setBlockDraw(true); @@ -655,12 +654,16 @@ public class NewPhotoUI implements PieListener, @Override public void onPieClosed() { - //TODO: mActivity.setSwipingEnabled(true); + setSwipingEnabled(true); if (mFaceView != null) { mFaceView.setBlockDraw(false); } } + public void setSwipingEnabled(boolean enable) { + mActivity.setSwipingEnabled(enable); + } + public Object getSurfaceTexture() { synchronized (mLock) { if (mSurfaceTexture == null) { diff --git a/src/com/android/camera/NewVideoModule.java b/src/com/android/camera/NewVideoModule.java index d613eb4e5..793cc5352 100644 --- a/src/com/android/camera/NewVideoModule.java +++ b/src/com/android/camera/NewVideoModule.java @@ -1446,7 +1446,7 @@ public class NewVideoModule implements NewCameraModule, private void startVideoRecording() { Log.v(TAG, "startVideoRecording"); mUI.enablePreviewThumb(false); - // TODO: mActivity.setSwipingEnabled(false); + mUI.setSwipingEnabled(false); mActivity.updateStorageSpaceAndHint(); if (mActivity.getStorageSpace() <= Storage.LOW_STORAGE_THRESHOLD) { @@ -1555,7 +1555,7 @@ public class NewVideoModule implements NewCameraModule, private boolean stopVideoRecording() { Log.v(TAG, "stopVideoRecording"); - //TODO: mUI.setSwipingEnabled(true); + mUI.setSwipingEnabled(true); mUI.showSwitcher(); boolean fail = false; diff --git a/src/com/android/camera/NewVideoUI.java b/src/com/android/camera/NewVideoUI.java index 915269032..02c8e1c7a 100644 --- a/src/com/android/camera/NewVideoUI.java +++ b/src/com/android/camera/NewVideoUI.java @@ -475,14 +475,17 @@ public class NewVideoUI implements PieRenderer.PieListener, // PieListener @Override public void onPieOpened(int centerX, int centerY) { - // TODO: mActivity.cancelActivityTouchHandling(); - // mActivity.setSwipingEnabled(false); + setSwipingEnabled(false); dismissPopup(false, true); } @Override public void onPieClosed() { - // TODO: mActivity.setSwipingEnabled(true); + setSwipingEnabled(true); + } + + public void setSwipingEnabled(boolean enable) { + mActivity.setSwipingEnabled(enable); } public void showPreviewBorder(boolean enable) { diff --git a/src/com/android/camera/data/CameraDataAdapter.java b/src/com/android/camera/data/CameraDataAdapter.java index fbe9af61f..609e812fc 100644 --- a/src/com/android/camera/data/CameraDataAdapter.java +++ b/src/com/android/camera/data/CameraDataAdapter.java @@ -128,7 +128,7 @@ public class CameraDataAdapter implements FilmStripView.DataAdapter { public boolean canSwipeInFullScreen(int id) { if (mImages.get(id).getType() == ImageData.TYPE_CAMERA_PREVIEW) { - return mCameraPreviewLocked; + return !mCameraPreviewLocked; } return false; } diff --git a/src/com/android/camera/ui/FilmStripView.java b/src/com/android/camera/ui/FilmStripView.java index d8ab27d1f..fb8fd2e31 100644 --- a/src/com/android/camera/ui/FilmStripView.java +++ b/src/com/android/camera/ui/FilmStripView.java @@ -769,6 +769,11 @@ public class FilmStripView extends ViewGroup { if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) { mCheckToIntercept = true; mDown = MotionEvent.obtain(ev); + ViewInfo viewInfo = mViewInfo[mCurrentInfo]; + // Do not intercept touch if swipe is not enabled + if (viewInfo != null && !mDataAdapter.canSwipeInFullScreen(viewInfo.getID())) { + mCheckToIntercept = false; + } return false; } else if (ev.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN) { // Do not intercept touch once child is in zoom mode -- cgit v1.2.3