diff options
Diffstat (limited to 'src/com/android/camera/ui/FilmStripView.java')
-rw-r--r-- | src/com/android/camera/ui/FilmStripView.java | 110 |
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; |