diff options
author | Mindy Pereira <mindyp@google.com> | 2012-04-27 14:22:56 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-04-27 14:22:56 -0700 |
commit | 7ccedccdc10a58d94d2d4895c9637a5b77cf0427 (patch) | |
tree | 51d3bb36ef6165a97114bad0f0fb6f1fa81206dd /chips/src | |
parent | 9fe03f325deaf514a07bafe4a4d10fe1a8c5cd8a (diff) | |
parent | 824aef7306c6a2e07e6157c25efe925f048597ed (diff) | |
download | android_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.java | 37 |
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() { |