diff options
| author | Jeff Brown <jeffbrown@google.com> | 2011-01-26 23:45:59 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-01-26 23:45:59 -0800 |
| commit | f02853f211f0b7f698f82305e30c23e527192584 (patch) | |
| tree | a1bd5688c317225be39ec6c0a768fcc7dcee7ebf /core/java/android/widget/GridView.java | |
| parent | d529d0df8f2e93e0dc74887ab43eff46e07cef2e (diff) | |
| parent | 8d6d3b83fb765eefc6fd38de77f1f45d2523ab89 (diff) | |
| download | frameworks_base-f02853f211f0b7f698f82305e30c23e527192584.zip frameworks_base-f02853f211f0b7f698f82305e30c23e527192584.tar.gz frameworks_base-f02853f211f0b7f698f82305e30c23e527192584.tar.bz2 | |
Merge "Fix down arrow in AutoCompleteTextView." into honeycomb
Diffstat (limited to 'core/java/android/widget/GridView.java')
| -rw-r--r-- | core/java/android/widget/GridView.java | 78 |
1 files changed, 41 insertions, 37 deletions
diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java index c7addcc..a84df16 100644 --- a/core/java/android/widget/GridView.java +++ b/core/java/android/widget/GridView.java @@ -1486,77 +1486,79 @@ public class GridView extends AbsListView { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_LEFT: if (event.hasNoModifiers()) { - handled = ensureSelectionOnMovementKey() && arrowScroll(FOCUS_LEFT); + handled = resurrectSelectionIfNeeded() || arrowScroll(FOCUS_LEFT); } break; case KeyEvent.KEYCODE_DPAD_RIGHT: if (event.hasNoModifiers()) { - handled = ensureSelectionOnMovementKey() && arrowScroll(FOCUS_RIGHT); + handled = resurrectSelectionIfNeeded() || arrowScroll(FOCUS_RIGHT); } break; case KeyEvent.KEYCODE_DPAD_UP: if (event.hasNoModifiers()) { - handled = ensureSelectionOnMovementKey() && arrowScroll(FOCUS_UP); + handled = resurrectSelectionIfNeeded() || arrowScroll(FOCUS_UP); } else if (event.hasModifiers(KeyEvent.META_ALT_ON)) { - handled = ensureSelectionOnMovementKey() && fullScroll(FOCUS_UP); + handled = resurrectSelectionIfNeeded() || fullScroll(FOCUS_UP); } break; case KeyEvent.KEYCODE_DPAD_DOWN: if (event.hasNoModifiers()) { - handled = ensureSelectionOnMovementKey() && arrowScroll(FOCUS_DOWN); + handled = resurrectSelectionIfNeeded() || arrowScroll(FOCUS_DOWN); } else if (event.hasModifiers(KeyEvent.META_ALT_ON)) { - handled = ensureSelectionOnMovementKey() && fullScroll(FOCUS_DOWN); + handled = resurrectSelectionIfNeeded() || fullScroll(FOCUS_DOWN); } break; case KeyEvent.KEYCODE_DPAD_CENTER: - case KeyEvent.KEYCODE_ENTER: { - if (event.hasNoModifiers() - && event.getRepeatCount() == 0 && getChildCount() > 0) { - ensureSelectionOnMovementKey(); - keyPressed(); + case KeyEvent.KEYCODE_ENTER: + if (event.hasNoModifiers()) { + handled = resurrectSelectionIfNeeded(); + if (!handled + && event.getRepeatCount() == 0 && getChildCount() > 0) { + keyPressed(); + handled = true; + } } - return true; - } + break; case KeyEvent.KEYCODE_SPACE: if (mPopup == null || !mPopup.isShowing()) { if (event.hasNoModifiers()) { - handled = ensureSelectionOnMovementKey() && pageScroll(FOCUS_DOWN); + handled = resurrectSelectionIfNeeded() || pageScroll(FOCUS_DOWN); } else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) { - handled = ensureSelectionOnMovementKey() && pageScroll(FOCUS_UP); + handled = resurrectSelectionIfNeeded() || pageScroll(FOCUS_UP); } } break; case KeyEvent.KEYCODE_PAGE_UP: if (event.hasNoModifiers()) { - handled = ensureSelectionOnMovementKey() && pageScroll(FOCUS_UP); + handled = resurrectSelectionIfNeeded() || pageScroll(FOCUS_UP); } else if (event.hasModifiers(KeyEvent.META_ALT_ON)) { - handled = ensureSelectionOnMovementKey() && fullScroll(FOCUS_UP); + handled = resurrectSelectionIfNeeded() || fullScroll(FOCUS_UP); } break; case KeyEvent.KEYCODE_PAGE_DOWN: if (event.hasNoModifiers()) { - handled = ensureSelectionOnMovementKey() && pageScroll(FOCUS_DOWN); + handled = resurrectSelectionIfNeeded() || pageScroll(FOCUS_DOWN); } else if (event.hasModifiers(KeyEvent.META_ALT_ON)) { - handled = ensureSelectionOnMovementKey() && fullScroll(FOCUS_DOWN); + handled = resurrectSelectionIfNeeded() || fullScroll(FOCUS_DOWN); } break; case KeyEvent.KEYCODE_MOVE_HOME: if (event.hasNoModifiers()) { - handled = ensureSelectionOnMovementKey() && fullScroll(FOCUS_UP); + handled = resurrectSelectionIfNeeded() || fullScroll(FOCUS_UP); } break; case KeyEvent.KEYCODE_MOVE_END: if (event.hasNoModifiers()) { - handled = ensureSelectionOnMovementKey() && fullScroll(FOCUS_DOWN); + handled = resurrectSelectionIfNeeded() || fullScroll(FOCUS_DOWN); } break; @@ -1569,32 +1571,34 @@ public class GridView extends AbsListView { // perhaps it should be configurable (and more comprehensive). if (false) { if (event.hasNoModifiers()) { - handled = ensureSelectionOnMovementKey() && sequenceScroll(FOCUS_FORWARD); + handled = resurrectSelectionIfNeeded() + || sequenceScroll(FOCUS_FORWARD); } else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) { - handled = ensureSelectionOnMovementKey() && sequenceScroll(FOCUS_BACKWARD); + handled = resurrectSelectionIfNeeded() + || sequenceScroll(FOCUS_BACKWARD); } } break; } } - if (!handled) { - handled = sendToTextFilter(keyCode, count, event); + if (handled) { + return true; } - if (handled) { + if (sendToTextFilter(keyCode, count, event)) { return true; - } else { - switch (action) { - case KeyEvent.ACTION_DOWN: - return super.onKeyDown(keyCode, event); - case KeyEvent.ACTION_UP: - return super.onKeyUp(keyCode, event); - case KeyEvent.ACTION_MULTIPLE: - return super.onKeyMultiple(keyCode, count, event); - default: - return false; - } + } + + switch (action) { + case KeyEvent.ACTION_DOWN: + return super.onKeyDown(keyCode, event); + case KeyEvent.ACTION_UP: + return super.onKeyUp(keyCode, event); + case KeyEvent.ACTION_MULTIPLE: + return super.onKeyMultiple(keyCode, count, event); + default: + return false; } } |
