diff options
| author | Alan Viverette <alanv@google.com> | 2015-03-25 20:04:21 +0000 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-03-25 20:04:22 +0000 |
| commit | 5fc9b336ebb6fc224b3e77af388024dea029fbb3 (patch) | |
| tree | 46d8b68138cc2936558425d8941fee982f3036ef | |
| parent | 704aa5ae48b5c0ff3e330aba9611723840396fdb (diff) | |
| parent | f989a412f02e394affc146923192de849d36bcaa (diff) | |
| download | frameworks_base-5fc9b336ebb6fc224b3e77af388024dea029fbb3.zip frameworks_base-5fc9b336ebb6fc224b3e77af388024dea029fbb3.tar.gz frameworks_base-5fc9b336ebb6fc224b3e77af388024dea029fbb3.tar.bz2 | |
Merge "Consider RTL layout in DPAD navigation in Gallery"
| -rw-r--r-- | core/java/android/widget/Gallery.java | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/core/java/android/widget/Gallery.java b/core/java/android/widget/Gallery.java index f7c839f..b4a003a 100644 --- a/core/java/android/widget/Gallery.java +++ b/core/java/android/widget/Gallery.java @@ -1210,13 +1210,13 @@ public class Gallery extends AbsSpinner implements GestureDetector.OnGestureList switch (keyCode) { case KeyEvent.KEYCODE_DPAD_LEFT: - if (movePrevious()) { + if (moveDirection(-1)) { playSoundEffect(SoundEffectConstants.NAVIGATION_LEFT); return true; } break; case KeyEvent.KEYCODE_DPAD_RIGHT: - if (moveNext()) { + if (moveDirection(1)) { playSoundEffect(SoundEffectConstants.NAVIGATION_RIGHT); return true; } @@ -1256,18 +1256,12 @@ public class Gallery extends AbsSpinner implements GestureDetector.OnGestureList return super.onKeyUp(keyCode, event); } - boolean movePrevious() { - if (mItemCount > 0 && mSelectedPosition > 0) { - scrollToChild(mSelectedPosition - mFirstPosition - 1); - return true; - } else { - return false; - } - } + boolean moveDirection(int direction) { + direction = isLayoutRtl() ? -direction : direction; + int targetPosition = mSelectedPosition + direction; - boolean moveNext() { - if (mItemCount > 0 && mSelectedPosition < mItemCount - 1) { - scrollToChild(mSelectedPosition - mFirstPosition + 1); + if (mItemCount > 0 && targetPosition >= 0 && targetPosition < mItemCount) { + scrollToChild(targetPosition - mFirstPosition); return true; } else { return false; |
