summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui/FilmStripView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/ui/FilmStripView.java')
-rw-r--r--src/com/android/camera/ui/FilmStripView.java110
1 files changed, 109 insertions, 1 deletions
diff --git a/src/com/android/camera/ui/FilmStripView.java b/src/com/android/camera/ui/FilmStripView.java
index f892934e2..8da49a10a 100644
--- a/src/com/android/camera/ui/FilmStripView.java
+++ b/src/com/android/camera/ui/FilmStripView.java
@@ -37,10 +37,14 @@ import android.view.ViewGroup;
import android.view.animation.DecelerateInterpolator;
import android.widget.Scroller;
+import com.android.camera.CustomPhotoMenu;
+import com.android.camera.CustomVideoMenu;
+import com.android.camera.PreviewGestures;
import com.android.camera.CameraActivity;
import com.android.camera.data.LocalData;
import com.android.camera.ui.FilmStripView.ImageData.PanoramaSupportCallback;
import com.android.camera.ui.FilmstripBottomControls.BottomControlsListener;
+import com.android.camera.ui.RenderOverlay;
import com.android.camera.util.CameraUtil;
import com.android.camera.util.PhotoSphereHelper.PanoramaViewHelper;
import com.android.camera.util.UsageStatistics;
@@ -97,7 +101,11 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
private float mOverScaleFactor = 1f;
private int mLastTotalNumber = 0;
-
+ private RenderOverlay mRenderOverlay;
+ private PreviewGestures mPreviewGestures;
+ private boolean mSendToPreviewMenu;
+ private boolean mSendToMenu;
+ private boolean mReset;
/**
* Common interface for all images in the filmstrip.
*/
@@ -705,6 +713,13 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
}
+ public void setRenderOverlay(RenderOverlay renderOverlay) {
+ mRenderOverlay = renderOverlay;
+ }
+ public void setPreviewGestures(PreviewGestures previewGestures) {
+ mPreviewGestures = previewGestures;
+ }
+
/**
* Returns the controller.
*
@@ -1807,6 +1822,95 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
return true;
}
+ public boolean checkSendToModeView(MotionEvent ev) {
+ if (mSendToPreviewMenu || mSendToMenu || mPreviewGestures == null)
+ return true;
+ CustomPhotoMenu pMenu = mPreviewGestures.getCustomPhotoMenu();
+ CustomVideoMenu vMenu = mPreviewGestures.getCustomVideoMenu();
+ if (pMenu != null) {
+ if (pMenu.isMenuBeingShown()) {
+ if (pMenu.isMenuBeingAnimated()) {
+ if (pMenu.isOverMenu(ev)) {
+ mSendToMenu = true;
+ return true;
+ }
+ }
+ }
+
+ if (pMenu.isPreviewMenuBeingShown()) {
+ if (pMenu.isOverPreviewMenu(ev)) {
+ mSendToPreviewMenu = true;
+ return true;
+ }
+ }
+ }
+ if (vMenu != null) {
+ if (vMenu.isMenuBeingShown()) {
+ if (vMenu.isMenuBeingAnimated()) {
+ if (vMenu.isOverMenu(ev)) {
+ mSendToMenu = true;
+ return true;
+ }
+ }
+ }
+
+ if (vMenu.isPreviewMenuBeingShown()) {
+ if (vMenu.isOverPreviewMenu(ev)) {
+ mSendToPreviewMenu = true;
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public boolean sendToModeView(MotionEvent ev) {
+ if (mPreviewGestures == null) {
+ return false;
+ }
+ if (mReset) {
+ mSendToPreviewMenu = false;
+ mSendToMenu = false;
+ mReset = false;
+ }
+ if (mSendToPreviewMenu || mSendToMenu) {
+ if (MotionEvent.ACTION_UP == ev.getActionMasked()
+ || MotionEvent.ACTION_CANCEL == ev.getActionMasked())
+ mReset = true;
+ }
+ CustomPhotoMenu pMenu = mPreviewGestures.getCustomPhotoMenu();
+ CustomVideoMenu vMenu = mPreviewGestures.getCustomVideoMenu();
+
+ if (pMenu != null) {
+ if (mSendToPreviewMenu)
+ return pMenu.sendTouchToPreviewMenu(ev);
+ if (mSendToMenu)
+ return pMenu.sendTouchToMenu(ev);
+ if (pMenu.isMenuBeingShown()) {
+ return pMenu.sendTouchToMenu(ev);
+ }
+
+ if (pMenu.isPreviewMenuBeingShown()) {
+ return pMenu.sendTouchToPreviewMenu(ev);
+ }
+ }
+
+ if (vMenu != null) {
+ if (mSendToPreviewMenu)
+ return vMenu.sendTouchToPreviewMenu(ev);
+ if (mSendToMenu)
+ return vMenu.sendTouchToMenu(ev);
+ if (vMenu.isMenuBeingShown()) {
+ return vMenu.sendTouchToMenu(ev);
+ }
+
+ if (vMenu.isPreviewMenuBeingShown()) {
+ return vMenu.sendTouchToPreviewMenu(ev);
+ }
+ }
+ return false;
+ }
+
private void updateViewItem(int itemID) {
ViewItem item = mViewItem[itemID];
if (item == null) {
@@ -2714,6 +2818,8 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
@Override
public boolean onScroll(float x, float y, float dx, float dy) {
+ if (mPreviewGestures != null && mPreviewGestures.waitUntilNextDown())
+ return false;
ViewItem currItem = mViewItem[mCurrentItem];
if (currItem == null) {
return false;
@@ -2779,6 +2885,8 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
@Override
public boolean onFling(float velocityX, float velocityY) {
+ if (mPreviewGestures != null && mPreviewGestures.waitUntilNextDown())
+ return false;
final ViewItem currItem = mViewItem[mCurrentItem];
if (currItem == null) {
return false;