diff options
Diffstat (limited to 'src/com/android/camera/PhotoMenu.java')
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 203 |
1 files changed, 63 insertions, 140 deletions
diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index 8a91df2bc..9554de7ff 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -111,8 +111,8 @@ public class PhotoMenu extends MenuController private boolean mIsCDSUpdated = false; private int mPrivateCounter = 0; private static final int ANIMATION_DURATION = 300; - private static final int CLICK_THRESHOLD = 200; private int previewMenuSize; + private Rect mTmpRect = new Rect(); private TsMakeupManager mTsMakeupManager; private MakeupLevelListener mMakeupListener; private MakeupHandler mHandler = new MakeupHandler(); @@ -370,37 +370,20 @@ public class PhotoMenu extends MenuController mPopupStatus = POPUP_IN_ANIMATION_SLIDE; ViewPropertyAnimator vp = v.animate(); - if (View.LAYOUT_DIRECTION_RTL == TextUtils - .getLayoutDirectionFromLocale(Locale.getDefault())) { - switch (mUI.getOrientation()) { - case 0: - vp.translationXBy(v.getWidth()); - break; - case 90: - vp.translationYBy(-2 * v.getHeight()); - break; - case 180: - vp.translationXBy(-2 * v.getWidth()); - break; - case 270: - vp.translationYBy(v.getHeight()); - break; - } - } else { - switch (mUI.getOrientation()) { - case 0: - vp.translationXBy(-v.getWidth()); - break; - case 90: - vp.translationYBy(2 * v.getHeight()); - break; - case 180: - vp.translationXBy(2 * v.getWidth()); - break; - case 270: - vp.translationYBy(-v.getHeight()); - break; - } + int sign = mUI.isRtl() ? -1 : 1; + switch (mUI.getOrientation()) { + case 0: + vp.translationXBy(sign * -v.getWidth()); + break; + case 90: + vp.translationYBy(sign * 2 * v.getHeight()); + break; + case 180: + vp.translationXBy(sign * 2 * v.getWidth()); + break; + case 270: + vp.translationYBy(sign * -v.getHeight()); + break; } vp.setListener(new AnimatorListener() { @Override @@ -454,54 +437,29 @@ public class PhotoMenu extends MenuController orientation = 0; ViewPropertyAnimator vp = v.animate(); + int sign = mUI.isRtl() ? -1 : 1; float dest; - if (View.LAYOUT_DIRECTION_RTL == TextUtils - .getLayoutDirectionFromLocale(Locale.getDefault())) { - switch (orientation) { - case 0: - dest = v.getX(); - v.setX(-(dest - delta)); - vp.translationX(dest); - break; - case 90: - dest = v.getY(); - v.setY(-(dest + delta)); - vp.translationY(dest); - break; - case 180: - dest = v.getX(); - v.setX(-(dest + delta)); - vp.translationX(dest); - break; - case 270: - dest = v.getY(); - v.setY(-(dest - delta)); - vp.translationY(dest); - break; - } - } else { - switch (orientation) { - case 0: - dest = v.getX(); - v.setX(dest - delta); - vp.translationX(dest); - break; - case 90: - dest = v.getY(); - v.setY(dest + delta); - vp.translationY(dest); - break; - case 180: - dest = v.getX(); - v.setX(dest + delta); - vp.translationX(dest); - break; - case 270: - dest = v.getY(); - v.setY(dest - delta); - vp.translationY(dest); - break; - } + switch (orientation) { + case 0: + dest = v.getX(); + v.setX(sign * (dest - delta)); + vp.translationX(dest); + break; + case 90: + dest = v.getY(); + v.setY(sign * (dest + delta)); + vp.translationY(dest); + break; + case 180: + dest = v.getX(); + v.setX(sign * (dest + delta)); + vp.translationX(dest); + break; + case 270: + dest = v.getY(); + v.setY(sign * (dest - delta)); + vp.translationY(dest); + break; } vp.setDuration(ANIMATION_DURATION).start(); } @@ -524,13 +482,9 @@ public class PhotoMenu extends MenuController return; mPreviewMenuStatus = PREVIEW_MENU_IN_ANIMATION; - ViewPropertyAnimator vp = v.animate(); - if (View.LAYOUT_DIRECTION_RTL == TextUtils - .getLayoutDirectionFromLocale(Locale.getDefault())) { - vp.translationXBy(v.getWidth()).setDuration(ANIMATION_DURATION); - } else { - vp.translationXBy(-v.getWidth()).setDuration(ANIMATION_DURATION); - } + ViewPropertyAnimator vp = v.animate() + .translationXBy(-v.getWidth() * (mUI.isRtl() ? -1 : 1)) + .setDuration(ANIMATION_DURATION); vp.setListener(new AnimatorListener() { @Override public void onAnimationStart(Animator animation) { @@ -573,28 +527,20 @@ public class PhotoMenu extends MenuController || mPopupStatus == POPUP_IN_ANIMATION_SLIDE || mPopupStatus == POPUP_IN_ANIMATION_FADE) return false; - if (mUI.getMenuLayout() == null) - return false; - Rect rec = new Rect(); - mUI.getMenuLayout().getChildAt(0).getHitRect(rec); - return rec.contains((int) ev.getX(), (int) ev.getY()); + return isOverView(mUI.getMenuLayout(), ev); } public boolean isOverPreviewMenu(MotionEvent ev) { if (mPreviewMenuStatus != PREVIEW_MENU_ON) return false; - if (mUI.getPreviewMenuLayout() == null) + return isOverView(mUI.getPreviewMenuLayout(), ev); + } + + private boolean isOverView(View view, MotionEvent ev) { + if (view == null) return false; - Rect rec = new Rect(); - mUI.getPreviewMenuLayout().getChildAt(0).getHitRect(rec); - if (View.LAYOUT_DIRECTION_RTL == TextUtils - .getLayoutDirectionFromLocale(Locale.getDefault())) { - rec.left = mUI.getRootView().getWidth() - (rec.right-rec.left); - rec.right = mUI.getRootView().getWidth(); - } - rec.top += (int) mUI.getPreviewMenuLayout().getY(); - rec.bottom += (int) mUI.getPreviewMenuLayout().getY(); - return rec.contains((int) ev.getX(), (int) ev.getY()); + view.getHitRect(mTmpRect); + return mTmpRect.contains((int) ev.getX(), (int) ev.getY()); } public boolean isMenuBeingShown() { @@ -966,9 +912,8 @@ public class PhotoMenu extends MenuController addSceneMode(); ViewGroup menuLayout = mUI.getPreviewMenuLayout(); if (menuLayout != null) { - View view = menuLayout.getChildAt(0); mUI.adjustOrientation(); - animateSlideIn(view, previewMenuSize, false); + animateSlideIn(menuLayout, previewMenuSize, false); } } }); @@ -1053,26 +998,15 @@ public class PhotoMenu extends MenuController TextView label = (TextView) layout2.findViewById(R.id.label); final int j = i; - layout2.setOnTouchListener(new View.OnTouchListener() { - private long startTime; - + layout2.setOnClickListener(new View.OnClickListener() { @Override - public boolean onTouch(View v, MotionEvent event) { - if (event.getAction() == MotionEvent.ACTION_DOWN) { - startTime = System.currentTimeMillis(); - } else if (event.getAction() == MotionEvent.ACTION_UP) { - if (System.currentTimeMillis() - startTime < CLICK_THRESHOLD) { - pref.setValueIndex(j); - onSettingChanged(pref); - updateSceneModeIcon(pref); - for (View v1 : views) { - v1.setActivated(v1 == v); - } - animateSlideOutPreviewMenu(); - } - + public void onClick(View v) { + pref.setValueIndex(j); + onSettingChanged(pref); + updateSceneModeIcon(pref); + for (View v1 : views) { + v1.setActivated(v1 == v); } - return true; } }); @@ -1123,9 +1057,8 @@ public class PhotoMenu extends MenuController addFilterMode(); ViewGroup menuLayout = mUI.getPreviewMenuLayout(); if (menuLayout != null) { - View view = mUI.getPreviewMenuLayout().getChildAt(0); mUI.adjustOrientation(); - animateSlideIn(view, previewMenuSize, false); + animateSlideIn(menuLayout, previewMenuSize, false); } } }); @@ -1198,24 +1131,14 @@ public class PhotoMenu extends MenuController ImageView imageView = (ImageView) layout2.findViewById(R.id.image); final int j = i; - layout2.setOnTouchListener(new View.OnTouchListener() { - private long startTime; - + layout2.setOnClickListener(new View.OnClickListener() { @Override - public boolean onTouch(View v, MotionEvent event) { - if (event.getAction() == MotionEvent.ACTION_DOWN) { - startTime = System.currentTimeMillis(); - } else if (event.getAction() == MotionEvent.ACTION_UP) { - if (System.currentTimeMillis() - startTime < CLICK_THRESHOLD) { - pref.setValueIndex(j); - changeFilterModeControlIcon(pref.getValue()); - onSettingChanged(pref); - for (View v1 : views) { - v1.setActivated(v1 == v); - } - } + public void onClick(View v) { + pref.setValueIndex(j); + onSettingChanged(pref); + for (View v1 : views) { + v1.setActivated(v1 == v); } - return true; } }); |