Merge "Fix the range of click within the scrollbar for thumb to drag." into rvc-qpr-dev
diff --git a/car-ui-lib/src/com/android/car/ui/FocusParkingView.java b/car-ui-lib/src/com/android/car/ui/FocusParkingView.java
index 2167d23..761a764 100644
--- a/car-ui-lib/src/com/android/car/ui/FocusParkingView.java
+++ b/car-ui-lib/src/com/android/car/ui/FocusParkingView.java
@@ -17,6 +17,7 @@
import static android.view.accessibility.AccessibilityNodeInfo.ACTION_COLLAPSE;
import static android.view.accessibility.AccessibilityNodeInfo.ACTION_DISMISS;
+import static android.view.accessibility.AccessibilityNodeInfo.ACTION_FOCUS;
import android.content.Context;
import android.os.Bundle;
@@ -130,6 +131,12 @@
getContext().getSystemService(InputMethodManager.class);
return inputMethodManager.hideSoftInputFromWindow(getWindowToken(),
/* flags= */ 0);
+ case ACTION_FOCUS:
+ // Don't leave this to View to handle as it will exit touch mode.
+ if (!hasFocus()) {
+ return requestFocus();
+ }
+ break;
}
return super.performAccessibilityAction(action, arguments);
}
diff --git a/car-ui-lib/src/com/android/car/ui/toolbar/SearchView.java b/car-ui-lib/src/com/android/car/ui/toolbar/SearchView.java
index 7f7eb80..9506fe1 100644
--- a/car-ui-lib/src/com/android/car/ui/toolbar/SearchView.java
+++ b/car-ui-lib/src/com/android/car/ui/toolbar/SearchView.java
@@ -23,6 +23,7 @@
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.AttributeSet;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.inputmethod.EditorInfo;
@@ -116,15 +117,37 @@
mSearchText.setOnEditorActionListener((v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_DONE
|| actionId == EditorInfo.IME_ACTION_SEARCH) {
- mSearchText.clearFocus();
- for (Toolbar.OnSearchCompletedListener listener : mSearchCompletedListeners) {
- listener.onSearchCompleted();
+ notifyQuerySubmit();
+ } else if (isEnter(event)) {
+ if (event.getAction() == KeyEvent.ACTION_UP) {
+ // Note that we want to trigger search only on ACTION_UP, but want to return
+ // true for all actions for the relevant key event.
+ notifyQuerySubmit();
}
+ return true;
}
return false;
});
}
+ private boolean isEnter(KeyEvent event) {
+ boolean result = false;
+ if (event != null) {
+ int keyCode = event.getKeyCode();
+ result = keyCode == KeyEvent.KEYCODE_ENTER
+ || keyCode == KeyEvent.KEYCODE_NUMPAD_ENTER
+ || keyCode == KeyEvent.KEYCODE_SEARCH;
+ }
+ return result;
+ }
+
+ private void notifyQuerySubmit() {
+ mSearchText.clearFocus();
+ for (Toolbar.OnSearchCompletedListener listener : mSearchCompletedListeners) {
+ listener.onSearchCompleted();
+ }
+ }
+
private boolean mWasShown = false;
@Override