Merge "Add enable/disable swiping to filmstrip" into gb-ub-photos-carlsbad
diff --git a/src/com/android/camera/NewCameraActivity.java b/src/com/android/camera/NewCameraActivity.java
index f26e73e..59b3664 100644
--- a/src/com/android/camera/NewCameraActivity.java
+++ b/src/com/android/camera/NewCameraActivity.java
@@ -254,6 +254,7 @@
                             v.getDrawable().getIntrinsicHeight(),
                             0, 0));
         }
+        setSwipingEnabled(true);
     }
 
     @Override
@@ -390,6 +391,10 @@
     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 e5d50f3..f3eac3d 100644
--- a/src/com/android/camera/NewPhotoModule.java
+++ b/src/com/android/camera/NewPhotoModule.java
@@ -754,7 +754,7 @@
             }
             if (mSceneMode == Util.SCENE_MODE_HDR) {
                 mUI.showSwitcher();
-                //TODO: mActivity.setSwipingEnabled(true);
+                mUI.setSwipingEnabled(true);
             }
 
             mJpegPictureCallbackTime = System.currentTimeMillis();
@@ -1191,7 +1191,7 @@
 
         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 cd93a7e..4d94697 100644
--- a/src/com/android/camera/NewPhotoUI.java
+++ b/src/com/android/camera/NewPhotoUI.java
@@ -645,8 +645,7 @@
 
     @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 @@
 
     @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 d613eb4..793cc53 100644
--- a/src/com/android/camera/NewVideoModule.java
+++ b/src/com/android/camera/NewVideoModule.java
@@ -1446,7 +1446,7 @@
     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 @@
 
     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 9152690..02c8e1c 100644
--- a/src/com/android/camera/NewVideoUI.java
+++ b/src/com/android/camera/NewVideoUI.java
@@ -475,14 +475,17 @@
     // 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 fbe9af6..609e812 100644
--- a/src/com/android/camera/data/CameraDataAdapter.java
+++ b/src/com/android/camera/data/CameraDataAdapter.java
@@ -128,7 +128,7 @@
     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 d8ab27d..fb8fd2e 100644
--- a/src/com/android/camera/ui/FilmStripView.java
+++ b/src/com/android/camera/ui/FilmStripView.java
@@ -769,6 +769,11 @@
         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