diff options
author | likaid <likaid@codeaurora.org> | 2015-04-10 12:41:04 +0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-04-11 02:31:25 -0700 |
commit | e316834a212f34b29f138d45ae0c9117a745b761 (patch) | |
tree | e0c4a887673a4a0023563a44bcd57bdb6598d301 /src | |
parent | 00eaeb18df0f4c32d444e8e634b215cad6076d88 (diff) | |
download | android_packages_apps_Snap-e316834a212f34b29f138d45ae0c9117a745b761.tar.gz android_packages_apps_Snap-e316834a212f34b29f138d45ae0c9117a745b761.tar.bz2 android_packages_apps_Snap-e316834a212f34b29f138d45ae0c9117a745b761.zip |
SnapdragonCamera: Popup menu doesn't support RTL mode
Coordinate direction is opposite in RTL mode.
Modify Coordinate direction in RTL mode.
Change-Id: I3fcd42fc27d430b486f9cccdde5ecec0d0468d30
CRs-Fixed: 819310
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 120 | ||||
-rw-r--r-- | src/com/android/camera/PhotoUI.java | 7 | ||||
-rw-r--r-- | src/com/android/camera/VideoMenu.java | 121 | ||||
-rw-r--r-- | src/com/android/camera/VideoUI.java | 7 |
4 files changed, 181 insertions, 74 deletions
diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index 1c8815845..534924281 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -62,6 +62,7 @@ import android.view.ViewGroup; import android.view.WindowManager; import android.view.Display; import com.android.camera.util.CameraUtil; +import java.util.Locale; public class PhotoMenu extends MenuController implements ListMenu.Listener, @@ -341,19 +342,37 @@ public class PhotoMenu extends MenuController mPopupStatus = POPUP_IN_ANIMATION_SLIDE; ViewPropertyAnimator vp = v.animate(); - 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; + 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; + } } vp.setListener(new AnimatorListener() { @Override @@ -410,27 +429,53 @@ public class PhotoMenu extends MenuController ViewPropertyAnimator vp = v.animate(); float dest; - 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; + 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; + } } vp.setDuration(ANIMATION_DURATION).start(); } @@ -454,7 +499,12 @@ public class PhotoMenu extends MenuController mPreviewMenuStatus = PREVIEW_MENU_IN_ANIMATION; ViewPropertyAnimator vp = v.animate(); - vp.translationXBy(-v.getWidth()).setDuration(ANIMATION_DURATION); + if (View.LAYOUT_DIRECTION_RTL == TextUtils + .getLayoutDirectionFromLocale(Locale.getDefault())) { + vp.translationXBy(v.getWidth()).setDuration(ANIMATION_DURATION); + } else { + vp.translationXBy(-v.getWidth()).setDuration(ANIMATION_DURATION); + } vp.setListener(new AnimatorListener() { @Override public void onAnimationStart(Animator animation) { diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java index 8ccf5a49f..d2e2345e6 100644 --- a/src/com/android/camera/PhotoUI.java +++ b/src/com/android/camera/PhotoUI.java @@ -849,8 +849,11 @@ public class PhotoUI implements PieListener, int y = Math.max(0, yBase); if (yBase + height > screenHeight) y = Math.max(0, screenHeight - height); - params.setMargins(0, y, 0, 0); - params.setMarginStart(CameraActivity.SETTING_LIST_WIDTH_1); + if (mRootView.getLayoutDirection() != View.LAYOUT_DIRECTION_RTL) { + params.setMargins(CameraActivity.SETTING_LIST_WIDTH_1, y, 0, 0); + } else { + params.setMargins(0, y, CameraActivity.SETTING_LIST_WIDTH_1, 0); + } mSubMenuLayout.setLayoutParams(params); diff --git a/src/com/android/camera/VideoMenu.java b/src/com/android/camera/VideoMenu.java index de8d5e4e2..da5c062e8 100644 --- a/src/com/android/camera/VideoMenu.java +++ b/src/com/android/camera/VideoMenu.java @@ -51,6 +51,8 @@ import android.view.WindowManager; import android.view.Display; import com.android.camera.ui.RotateLayout; import com.android.camera.util.CameraUtil; +import android.text.TextUtils; +import java.util.Locale; public class VideoMenu extends MenuController implements ListMenu.Listener, @@ -222,19 +224,37 @@ public class VideoMenu extends MenuController mPopupStatus = POPUP_IN_ANIMATION_SLIDE; ViewPropertyAnimator vp = v.animate(); - 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; + 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; + } } vp.setListener(new AnimatorListener() { @@ -292,27 +312,53 @@ public class VideoMenu extends MenuController ViewPropertyAnimator vp = v.animate(); float dest; - 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; + 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; + } } vp.setDuration(ANIMATION_DURATION).start(); @@ -330,7 +376,12 @@ public class VideoMenu extends MenuController mPreviewMenuStatus = PREVIEW_MENU_IN_ANIMATION; ViewPropertyAnimator vp = v.animate(); - vp.translationXBy(-v.getWidth()).setDuration(ANIMATION_DURATION); + if (View.LAYOUT_DIRECTION_RTL == TextUtils + .getLayoutDirectionFromLocale(Locale.getDefault())) { + vp.translationXBy(v.getWidth()).setDuration(ANIMATION_DURATION); + } else { + vp.translationXBy(-v.getWidth()).setDuration(ANIMATION_DURATION); + } vp.setListener(new AnimatorListener() { @Override public void onAnimationStart(Animator animation) { diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java index cc06e7b79..8fbae5ee6 100644 --- a/src/com/android/camera/VideoUI.java +++ b/src/com/android/camera/VideoUI.java @@ -793,8 +793,11 @@ public class VideoUI implements PieRenderer.PieListener, int y = Math.max(0, yBase); if (yBase + height > screenHeight) y = Math.max(0, screenHeight - height); - layoutParams.setMargins(0, y, 0, 0); - layoutParams.setMarginStart(CameraActivity.SETTING_LIST_WIDTH_1); + if (mRootView.getLayoutDirection() != View.LAYOUT_DIRECTION_RTL) { + layoutParams.setMargins(CameraActivity.SETTING_LIST_WIDTH_1, y, 0, 0); + } else { + layoutParams.setMargins(0, y, CameraActivity.SETTING_LIST_WIDTH_1, 0); + } mSubMenuLayout.setLayoutParams(layoutParams); mSubMenuLayout.addView(popup); |