summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Leon Scroggins <scroggo@google.com> 2011-01-11 12:41:52 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2011-01-11 12:41:52 -0800
commit9fafe4e0ebab270591a505f1f07fd2e5489a16f7 (patch)
tree6ef3dd1b72b4b1ab2bb62c523c09fceb0e5a79c9
parent033376f6f0cb65f4cf5862c92ca0bf8ad5895566 (diff)
parent7014b12873068f109f58b9d0ad4116fd8d4bf22f (diff)
Merge "Find when pressing enter. Call onClickListener in TextView." into honeycomb
-rw-r--r--core/java/android/webkit/FindActionModeCallback.java30
-rw-r--r--core/java/android/widget/TextView.java3
2 files changed, 22 insertions, 11 deletions
diff --git a/core/java/android/webkit/FindActionModeCallback.java b/core/java/android/webkit/FindActionModeCallback.java
index 700d313c8d4e..a322fa3d160d 100644
--- a/core/java/android/webkit/FindActionModeCallback.java
+++ b/core/java/android/webkit/FindActionModeCallback.java
@@ -34,7 +34,7 @@ import android.view.View;
import android.view.inputmethod.InputMethodManager;
class FindActionModeCallback implements ActionMode.Callback, TextWatcher,
- View.OnLongClickListener {
+ View.OnLongClickListener, View.OnClickListener {
private View mCustomView;
private EditText mEditText;
private TextView mMatches;
@@ -53,6 +53,7 @@ class FindActionModeCallback implements ActionMode.Callback, TextWatcher,
// Override long click so that select ActionMode is not opened, which
// would exit find ActionMode.
mEditText.setOnLongClickListener(this);
+ mEditText.setOnClickListener(this);
setText("");
mMatches = (TextView) mCustomView.findViewById(
com.android.internal.R.id.matches);
@@ -105,7 +106,17 @@ class FindActionModeCallback implements ActionMode.Callback, TextWatcher,
throw new AssertionError(
"No WebView for FindActionModeCallback::findNext");
}
+ if (!mMatchesFound) {
+ findAll();
+ return;
+ }
+ if (0 == mNumberOfMatches) {
+ // There are no matches, so moving to the next match will not do
+ // anything.
+ return;
+ }
mWebView.findNext(next);
+ updateMatchesString();
}
/*
@@ -158,6 +169,13 @@ class FindActionModeCallback implements ActionMode.Callback, TextWatcher,
@Override
public boolean onLongClick(View v) { return true; }
+ // OnClickListener implementation
+
+ @Override
+ public void onClick(View v) {
+ findNext(true);
+ }
+
// ActionMode.Callback implementation
@Override
@@ -193,15 +211,6 @@ class FindActionModeCallback implements ActionMode.Callback, TextWatcher,
"No WebView for FindActionModeCallback::onActionItemClicked");
}
mInput.hideSoftInputFromWindow(mWebView.getWindowToken(), 0);
- if (!mMatchesFound) {
- findAll();
- return true;
- }
- if (0 == mNumberOfMatches) {
- // There are no matches, so moving to the next match will not do
- // anything.
- return true;
- }
switch(item.getItemId()) {
case com.android.internal.R.id.find_prev:
findNext(false);
@@ -212,7 +221,6 @@ class FindActionModeCallback implements ActionMode.Callback, TextWatcher,
default:
return false;
}
- updateMatchesString();
return true;
}
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 7675e0cb7c52..a1c286fb1ca4 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -4672,6 +4672,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
// don't let it be inserted into the text.
if ((event.getFlags() & KeyEvent.FLAG_EDITOR_ACTION) != 0
|| shouldAdvanceFocusOnEnter()) {
+ if (mOnClickListener != null) {
+ return 0;
+ }
return -1;
}
}