From 975a5f7aa54901b41576cad2d5d3c4bfc266c3d9 Mon Sep 17 00:00:00 2001 From: Byungsung You Date: Thu, 12 Dec 2019 17:17:28 +0900 Subject: [PATCH] Process numpad enter key along with enter key. Some views define only KEYCODE_ENTER action not KEYCODE_NUMPAD_ENTER. because of this, when numpad enter key is pressed expected result is not shown. We are adding KEYCODE_NUMPAD_ENTER to be processed in the same way as KEYCODE_ENTER. Test: Check that adb shell input KEYCODE_NUMPAD_ENTER and adb shell input KEYCODE_ENTER Bug: b/141329038 Change-Id: I87b5159c4fe71eaf8501059249c79b7cfd1752fc --- core/java/android/widget/AbsListView.java | 1 + core/java/android/widget/AutoCompleteTextView.java | 1 + core/java/android/widget/ListPopupWindow.java | 1 + core/java/android/widget/NumberPicker.java | 1 + core/java/android/widget/SearchView.java | 3 ++- core/java/android/widget/SimpleMonthView.java | 1 + core/java/android/widget/TextView.java | 2 ++ 7 files changed, 9 insertions(+), 1 deletion(-) mode change 100644 => 100755 core/java/android/widget/ListPopupWindow.java mode change 100644 => 100755 core/java/android/widget/SearchView.java diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 9f03d956f22c1..16e87f8bca9a9 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -5863,6 +5863,7 @@ public abstract class AbsListView extends AdapterView implements Te case KeyEvent.KEYCODE_DPAD_RIGHT: case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: + case KeyEvent.KEYCODE_NUMPAD_ENTER: okToSend = false; break; case KeyEvent.KEYCODE_BACK: diff --git a/core/java/android/widget/AutoCompleteTextView.java b/core/java/android/widget/AutoCompleteTextView.java index 8d9ae58be2908..00526d9f8a2cd 100644 --- a/core/java/android/widget/AutoCompleteTextView.java +++ b/core/java/android/widget/AutoCompleteTextView.java @@ -821,6 +821,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe // was a click, the text view gets the selected item // from the drop down as its content case KeyEvent.KEYCODE_ENTER: + case KeyEvent.KEYCODE_NUMPAD_ENTER: case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_TAB: if (event.hasNoModifiers()) { diff --git a/core/java/android/widget/ListPopupWindow.java b/core/java/android/widget/ListPopupWindow.java old mode 100644 new mode 100755 index 8595fece42780..6425cf11ccb33 --- a/core/java/android/widget/ListPopupWindow.java +++ b/core/java/android/widget/ListPopupWindow.java @@ -1005,6 +1005,7 @@ public class ListPopupWindow implements ShowableListMenu { case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_DPAD_DOWN: case KeyEvent.KEYCODE_DPAD_UP: + case KeyEvent.KEYCODE_NUMPAD_ENTER: return true; } } else { diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java index e9e0c1498034b..baaf2a7634872 100644 --- a/core/java/android/widget/NumberPicker.java +++ b/core/java/android/widget/NumberPicker.java @@ -1033,6 +1033,7 @@ public class NumberPicker extends LinearLayout { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: + case KeyEvent.KEYCODE_NUMPAD_ENTER: removeAllCallbacks(); break; case KeyEvent.KEYCODE_DPAD_DOWN: diff --git a/core/java/android/widget/SearchView.java b/core/java/android/widget/SearchView.java old mode 100644 new mode 100755 index 15959c221ffc7..6ef570cdc7840 --- a/core/java/android/widget/SearchView.java +++ b/core/java/android/widget/SearchView.java @@ -1076,7 +1076,8 @@ public class SearchView extends LinearLayout implements CollapsibleActionView { // The search key is handled by the dialog's onKeyDown(). if (!mSearchSrcTextView.isEmpty() && event.hasNoModifiers()) { if (event.getAction() == KeyEvent.ACTION_UP) { - if (keyCode == KeyEvent.KEYCODE_ENTER) { + if (keyCode == KeyEvent.KEYCODE_ENTER + || keyCode == KeyEvent.KEYCODE_NUMPAD_ENTER) { v.cancelLongPress(); // Launch as a regular search. diff --git a/core/java/android/widget/SimpleMonthView.java b/core/java/android/widget/SimpleMonthView.java index 217693eed686b..61c77bc2f90e1 100644 --- a/core/java/android/widget/SimpleMonthView.java +++ b/core/java/android/widget/SimpleMonthView.java @@ -420,6 +420,7 @@ class SimpleMonthView extends View { break; case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: + case KeyEvent.KEYCODE_NUMPAD_ENTER: if (mHighlightedDay != -1) { onDayClicked(mHighlightedDay); return true; diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index e1783181457fb..1d8305acb358a 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -8346,6 +8346,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener switch (keyCode) { case KeyEvent.KEYCODE_ENTER: + case KeyEvent.KEYCODE_NUMPAD_ENTER: if (event.hasNoModifiers()) { // When mInputContentType is set, we know that we are // running in a "modern" cupcake environment, so don't need @@ -8573,6 +8574,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return super.onKeyUp(keyCode, event); case KeyEvent.KEYCODE_ENTER: + case KeyEvent.KEYCODE_NUMPAD_ENTER: if (event.hasNoModifiers()) { if (mEditor != null && mEditor.mInputContentType != null && mEditor.mInputContentType.onEditorActionListener != null