summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/PhotoMenu.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/PhotoMenu.java')
-rw-r--r--src/com/android/camera/PhotoMenu.java203
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;
}
});