Chip address separators

pull/194/merge
M66B 4 years ago
parent f8388e95f7
commit 778d661419

@ -179,7 +179,6 @@ public class EditTextMultiAutoComplete extends AppCompatMultiAutoCompleteTextVie
try { try {
final Context context = getContext(); final Context context = getContext();
final Editable edit = getText(); final Editable edit = getText();
final int len = edit.length();
final boolean send_chips = prefs.getBoolean("send_chips", !BuildConfig.PLAY_STORE_RELEASE); final boolean send_chips = prefs.getBoolean("send_chips", !BuildConfig.PLAY_STORE_RELEASE);
final boolean focus = hasFocus(); final boolean focus = hasFocus();
@ -188,13 +187,13 @@ public class EditTextMultiAutoComplete extends AppCompatMultiAutoCompleteTextVie
boolean added = false; boolean added = false;
List<ClipImageSpan> tbd = new ArrayList<>(); List<ClipImageSpan> tbd = new ArrayList<>();
tbd.addAll(Arrays.asList(edit.getSpans(0, len, ClipImageSpan.class))); tbd.addAll(Arrays.asList(edit.getSpans(0, edit.length(), ClipImageSpan.class)));
if (send_chips) { if (send_chips) {
int start = 0; int start = 0;
boolean space = true; boolean space = true;
boolean quote = false; boolean quote = false;
for (int i = 0; i < len; i++) { for (int i = 0; i < edit.length(); i++) {
char kar = edit.charAt(i); char kar = edit.charAt(i);
if (space && kar == ' ') { if (space && kar == ' ') {
@ -205,7 +204,7 @@ public class EditTextMultiAutoComplete extends AppCompatMultiAutoCompleteTextVie
if (kar == '"') if (kar == '"')
quote = !quote; quote = !quote;
else if (!quote && (kar == ',' || (!focus && i + 1 == len))) { else if (!quote && (kar == ',' || (!focus && i + 1 == edit.length()))) {
boolean found = false; boolean found = false;
for (ClipImageSpan span : new ArrayList<>(tbd)) { for (ClipImageSpan span : new ArrayList<>(tbd)) {
int s = edit.getSpanStart(span); int s = edit.getSpanStart(span);
@ -232,7 +231,9 @@ public class EditTextMultiAutoComplete extends AppCompatMultiAutoCompleteTextVie
} }
if (parsed != null && parsed.length == 1) { if (parsed != null && parsed.length == 1) {
if (kar != ',') if (kar == ' ')
edit.insert(i++, ",");
else if (kar != ',')
edit.insert(++i, ","); edit.insert(++i, ",");
Drawable avatar = null; Drawable avatar = null;
@ -259,7 +260,8 @@ public class EditTextMultiAutoComplete extends AppCompatMultiAutoCompleteTextVie
ClipImageSpan is = new ClipImageSpan(cd); ClipImageSpan is = new ClipImageSpan(cd);
edit.setSpan(is, start, i + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); edit.setSpan(is, start, i + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
if (i + 1 == len || edit.charAt(i + 1) != ' ') if (kar == ',' &&
(i + 1 == edit.length() || edit.charAt(i + 1) != ' '))
edit.insert(++i, " "); edit.insert(++i, " ");
added = true; added = true;
} }

Loading…
Cancel
Save