diff options
| author | Michael Wright <michaelwr@google.com> | 2015-11-26 16:04:54 +0000 |
|---|---|---|
| committer | Michael Wright <michaelwr@google.com> | 2015-12-14 17:30:25 -0500 |
| commit | aa1a94daaa59e98303fdeb1c3066b60a58755dff (patch) | |
| tree | 6a6bd2afca5e179dbc9776b9cc106ce204a8ced7 /core/java/android/widget/GridView.java | |
| parent | 8d19ad443face8b862ac0a3cac095070a5ac9ad0 (diff) | |
Make KEYCODE_SPACE a confirm key.
By default space should "click" the focused item. This behavior also
applies to GridView and ListView if the items are clickable, but will
continue the previous behavior of scrolling if it's just a list of
items you can't really interact with.
Change-Id: Ic3a0334614d1dc68ff98bc4b1fb1ae2f961f71af
Diffstat (limited to 'core/java/android/widget/GridView.java')
| -rw-r--r-- | core/java/android/widget/GridView.java | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java index 607e955d5698..ee73092b3fb5 100644 --- a/core/java/android/widget/GridView.java +++ b/core/java/android/widget/GridView.java @@ -1643,8 +1643,16 @@ public class GridView extends AbsListView { boolean handled = false; int action = event.getAction(); + if (KeyEvent.isConfirmKey(keyCode) + && event.hasNoModifiers() && action == KeyEvent.ACTION_UP) { + handled = resurrectSelectionIfNeeded(); + if (!handled && event.getRepeatCount() == 0 && getChildCount() > 0) { + keyPressed(); + handled = true; + } + } - if (action != KeyEvent.ACTION_UP) { + if (!handled && action != KeyEvent.ACTION_UP) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_LEFT: if (event.hasNoModifiers()) { @@ -1674,28 +1682,6 @@ public class GridView extends AbsListView { } break; - case KeyEvent.KEYCODE_DPAD_CENTER: - case KeyEvent.KEYCODE_ENTER: - if (event.hasNoModifiers()) { - handled = resurrectSelectionIfNeeded(); - if (!handled - && event.getRepeatCount() == 0 && getChildCount() > 0) { - keyPressed(); - handled = true; - } - } - break; - - case KeyEvent.KEYCODE_SPACE: - if (mPopup == null || !mPopup.isShowing()) { - if (event.hasNoModifiers()) { - handled = resurrectSelectionIfNeeded() || pageScroll(FOCUS_DOWN); - } else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) { - handled = resurrectSelectionIfNeeded() || pageScroll(FOCUS_UP); - } - } - break; - case KeyEvent.KEYCODE_PAGE_UP: if (event.hasNoModifiers()) { handled = resurrectSelectionIfNeeded() || pageScroll(FOCUS_UP); |
