summaryrefslogtreecommitdiff
path: root/core/java/android/widget/GridView.java
diff options
context:
space:
mode:
authorJorn Jacobsson <jorn.jacobsson@sonymobile.com>2013-01-22 14:55:53 +0100
committerAlan Viverette <alanv@google.com>2015-04-24 12:34:50 -0700
commit599b64f937dc30468344f2cbdd27861431f0f459 (patch)
treed292172a0a3f03163e4de35da6f2c7c5a9c0169f /core/java/android/widget/GridView.java
parenta09c5eed32ff6371a70c39e3f92bb8620066be52 (diff)
Change direction of DPAD_LEFT and DPAD_RIGHT if LayoutDirection is RTL
Changes the behaviour of onKeyDown for DPAD_LEFT/RIGHT when the layoutDirection is RTL, to move the focus in the correct direction. Change-Id: I889649788d1e6f347aed90d6683d9f4dd6807da0
Diffstat (limited to 'core/java/android/widget/GridView.java')
-rw-r--r--core/java/android/widget/GridView.java27
1 files changed, 13 insertions, 14 deletions
diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java
index 9ecdc9c35214..c95977445b47 100644
--- a/core/java/android/widget/GridView.java
+++ b/core/java/android/widget/GridView.java
@@ -1854,20 +1854,19 @@ public class GridView extends AbsListView {
moved = true;
}
break;
- case FOCUS_LEFT:
- if (selectedPosition > startOfRowPos) {
- mLayoutMode = LAYOUT_MOVE_SELECTION;
- setSelectionInt(Math.max(0, selectedPosition - 1));
- moved = true;
- }
- break;
- case FOCUS_RIGHT:
- if (selectedPosition < endOfRowPos) {
- mLayoutMode = LAYOUT_MOVE_SELECTION;
- setSelectionInt(Math.min(selectedPosition + 1, mItemCount - 1));
- moved = true;
- }
- break;
+ }
+
+ final boolean isLayoutRtl = isLayoutRtl();
+ if (selectedPosition > startOfRowPos && ((direction == FOCUS_LEFT && !isLayoutRtl) ||
+ (direction == FOCUS_RIGHT && isLayoutRtl))) {
+ mLayoutMode = LAYOUT_MOVE_SELECTION;
+ setSelectionInt(Math.max(0, selectedPosition - 1));
+ moved = true;
+ } else if (selectedPosition < endOfRowPos && ((direction == FOCUS_LEFT && isLayoutRtl) ||
+ (direction == FOCUS_RIGHT && !isLayoutRtl))) {
+ mLayoutMode = LAYOUT_MOVE_SELECTION;
+ setSelectionInt(Math.min(selectedPosition + 1, mItemCount - 1));
+ moved = true;
}
if (moved) {