If I call setText() then callback will never called
Callback onTokenAdded never called because instance of mText in TextView changed. In new instance of mText there is no TokenSpanWatcher in mSpans. So it is not enough to call
text.setSpan(spanWatcher, 0, text.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
only in init() method. Maybe it is good idea to add it to setText() method