summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget/GridView.java
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-01-26 23:45:59 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-01-26 23:45:59 -0800
commitf02853f211f0b7f698f82305e30c23e527192584 (patch)
treea1bd5688c317225be39ec6c0a768fcc7dcee7ebf /core/java/android/widget/GridView.java
parentd529d0df8f2e93e0dc74887ab43eff46e07cef2e (diff)
parent8d6d3b83fb765eefc6fd38de77f1f45d2523ab89 (diff)
downloadframeworks_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.java78
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;
}
}