@Override protected void onSelectionChanged(int selStart, int selEnd) { super.onSelectionChanged(selStart, selEnd); int minSelPos = mTagList.size(); if (selStart < minSelPos) { setSelection(minSelPos); } }
@Override protected void onSelectionChanged(int selStart, int selEnd) { super.onSelectionChanged(selStart, selEnd); if (mFormatBar != null) mFormatBar.updateFormattingAtCursor(); }
@Override protected void onSelectionChanged(int selStart, int selEnd) { super.onSelectionChanged(selStart, selEnd); if (getLayout() == null) return; String line = getText().subSequence(getLayout().getLineStart(getLayout() .getLineForOffset(selStart)), selEnd).toString(); boolean isPassword = getPasswordStart(line) != -1; boolean wasPassword = (getInputType() & InputType.TYPE_TEXT_VARIATION_PASSWORD) != 0; if (isPassword && !wasPassword) { Typeface tf = getTypeface(); setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); setTypeface(tf); setSelection(selStart, selEnd); } else if (!isPassword && wasPassword) { createPasswordSpans(); setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE); } }
@Override protected void onSelectionChanged(int selStart, int selEnd) { super.onSelectionChanged(selStart, selEnd); while (selStart > 0 && getText().charAt(selStart - 1) != SEPARATOR) selStart--; int l = getText().length(); while (selEnd < l && getText().charAt(selEnd) != SEPARATOR) selEnd++; int s = mOldSelStart; if (s != -1) { Object[] spans = getText().getSpans(mOldSelStart, mOldSelEnd, SimpleChipSpan.class); for (Object span : spans) getText().removeSpan(span); for (int i = s; i <= Math.min(mOldSelEnd, l); i++) { if (i == l || getText().charAt(i) == SEPARATOR) { getText().setSpan(new SimpleChipSpan(getContext(), getText().subSequence(s, i).toString(), false), s, i, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); s = i + 1; } } } Object[] spans = getText().getSpans(selStart, selEnd, SimpleChipSpan.class); for (Object span : spans) getText().removeSpan(span); mOldSelStart = selStart; mOldSelEnd = selEnd; }