diff --git a/library/src/main/java/com/seraphim/chips/ChipsListener.java b/library/src/main/java/com/seraphim/chips/ChipsListener.java index 7af7871..1e78561 100644 --- a/library/src/main/java/com/seraphim/chips/ChipsListener.java +++ b/library/src/main/java/com/seraphim/chips/ChipsListener.java @@ -1,9 +1,14 @@ package com.seraphim.chips; +import android.view.KeyEvent; +import android.widget.TextView; + public interface ChipsListener { void onChipAdded(Chip chip); void onChipDeleted(Chip chip); void onTextChanged(CharSequence text); + + boolean onEditorAction(TextView v, int actionId, KeyEvent event); } diff --git a/library/src/main/java/com/seraphim/chips/ChipsView.java b/library/src/main/java/com/seraphim/chips/ChipsView.java index c5e6c3c..27ec44a 100644 --- a/library/src/main/java/com/seraphim/chips/ChipsView.java +++ b/library/src/main/java/com/seraphim/chips/ChipsView.java @@ -459,10 +459,12 @@ public void clicked(ChipEntry entry) { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { - if (mode == Mode.ALL && !editText.getText().toString().isEmpty() && actionId == EditorInfo.IME_ACTION_DONE) { - ChipEntry entry = factory.createChip(editText.getText().toString()); - editText.setText(""); - addChip(entry); + if (chipsListener == null || !chipsListener.onEditorAction(v, actionId, event)) { + if (mode == Mode.ALL && !editText.getText().toString().isEmpty() && actionId == EditorInfo.IME_ACTION_DONE) { + ChipEntry entry = factory.createChip(editText.getText().toString()); + editText.setText(""); + addChip(entry); + } } return true; } diff --git a/sample/src/main/java/com/doodle/android/chips/sample/MainActivity.java b/sample/src/main/java/com/doodle/android/chips/sample/MainActivity.java index 6a63c40..f853860 100644 --- a/sample/src/main/java/com/doodle/android/chips/sample/MainActivity.java +++ b/sample/src/main/java/com/doodle/android/chips/sample/MainActivity.java @@ -3,6 +3,8 @@ import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.view.KeyEvent; +import android.widget.TextView; import com.seraphim.chips.Chip; import com.seraphim.chips.ChipEntry; @@ -59,6 +61,11 @@ public void onTextChanged(CharSequence text) { } + @Override + public boolean onEditorAction(final TextView v, final int actionId, final KeyEvent event) { + return false; + } + public class CustomFilter implements ChipsEntriesFilter { @Override public List filter(CharSequence constraint, List suggestions) {