summaryrefslogtreecommitdiffstats
path: root/chips/src
diff options
context:
space:
mode:
authorMindy Pereira <mindyp@google.com>2012-04-27 14:22:56 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-04-27 14:22:56 -0700
commit7ccedccdc10a58d94d2d4895c9637a5b77cf0427 (patch)
tree51d3bb36ef6165a97114bad0f0fb6f1fa81206dd /chips/src
parent9fe03f325deaf514a07bafe4a4d10fe1a8c5cd8a (diff)
parent824aef7306c6a2e07e6157c25efe925f048597ed (diff)
downloadandroid_frameworks_ex-7ccedccdc10a58d94d2d4895c9637a5b77cf0427.tar.gz
android_frameworks_ex-7ccedccdc10a58d94d2d4895c9637a5b77cf0427.tar.bz2
android_frameworks_ex-7ccedccdc10a58d94d2d4895c9637a5b77cf0427.zip
Merge "Use ime actions to commit when the user presses enter." into jb-dev
Diffstat (limited to 'chips/src')
-rw-r--r--chips/src/com/android/ex/chips/RecipientEditTextView.java37
1 files changed, 36 insertions, 1 deletions
diff --git a/chips/src/com/android/ex/chips/RecipientEditTextView.java b/chips/src/com/android/ex/chips/RecipientEditTextView.java
index e9b5cf9..882ad86 100644
--- a/chips/src/com/android/ex/chips/RecipientEditTextView.java
+++ b/chips/src/com/android/ex/chips/RecipientEditTextView.java
@@ -67,6 +67,8 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewParent;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputConnection;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
@@ -95,7 +97,7 @@ import java.util.regex.Matcher;
public class RecipientEditTextView extends MultiAutoCompleteTextView implements
OnItemClickListener, Callback, RecipientAlternatesAdapter.OnCheckedItemChangedListener,
GestureDetector.OnGestureListener, OnDismissListener, OnClickListener,
- PopupWindow.OnDismissListener {
+ PopupWindow.OnDismissListener, TextView.OnEditorActionListener {
private static final char COMMIT_CHAR_COMMA = ',';
@@ -260,6 +262,39 @@ public class RecipientEditTextView extends MultiAutoCompleteTextView implements
mTextWatcher = new RecipientTextWatcher();
addTextChangedListener(mTextWatcher);
mGestureDetector = new GestureDetector(context, this);
+ setOnEditorActionListener(this);
+ }
+
+ @Override
+ public boolean onEditorAction(TextView view, int action, KeyEvent keyEvent) {
+ if (action == EditorInfo.IME_ACTION_DONE) {
+ if (commitDefault()) {
+ return true;
+ }
+ if (mSelectedChip != null) {
+ clearSelectedChip();
+ return true;
+ } else if (focusNext()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
+ InputConnection connection = super.onCreateInputConnection(outAttrs);
+ int imeActions = outAttrs.imeOptions&EditorInfo.IME_MASK_ACTION;
+ if ((imeActions&EditorInfo.IME_ACTION_DONE) != 0) {
+ // clear the existing action
+ outAttrs.imeOptions ^= imeActions;
+ // set the DONE action
+ outAttrs.imeOptions |= EditorInfo.IME_ACTION_DONE;
+ }
+ if ((outAttrs.imeOptions&EditorInfo.IME_FLAG_NO_ENTER_ACTION) != 0) {
+ outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION;
+ }
+ return connection;
}
/*package*/ RecipientChip getLastChip() {