ComposeTokenizer: better document tokenizer

main
Alibek Omarov 3 years ago
parent c372848383
commit e5860b8146
  1. 7
      app/src/main/java/com/keylesspalace/tusky/util/ComposeTokenizer.kt

@ -35,6 +35,7 @@ class ComposeTokenizer : MultiAutoCompleteTextView.Tokenizer {
var i = cursor var i = cursor
var character = text[i - 1] var character = text[i - 1]
// go up to first illegal character or character we're looking for (@, # or :)
while(i > 0 && !(character == '@' || character == '#' || character == ':')) { while(i > 0 && !(character == '@' || character == '#' || character == ':')) {
if(!isMentionOrHashtagAllowedCharacter(character)) { if(!isMentionOrHashtagAllowedCharacter(character)) {
return cursor return cursor
@ -44,12 +45,12 @@ class ComposeTokenizer : MultiAutoCompleteTextView.Tokenizer {
character = if (i == 0) ' ' else text[i - 1] character = if (i == 0) ' ' else text[i - 1]
} }
// caught domain name, try search username // maybe caught domain name? try search username
// don't ask me about this code
if(i > 2 && character == '@') { if(i > 2 && character == '@') {
var j = i - 1 var j = i - 1
var character2 = text[i - 2] var character2 = text[i - 2]
// again go up to first illegal character or tag "@"
while(j > 0 && character2 != '@') { while(j > 0 && character2 != '@') {
if(!isMentionOrHashtagAllowedCharacter(character2)) { if(!isMentionOrHashtagAllowedCharacter(character2)) {
break break
@ -58,6 +59,8 @@ class ComposeTokenizer : MultiAutoCompleteTextView.Tokenizer {
j-- j--
character2 = if (j == 0) ' ' else text[j - 1] character2 = if (j == 0) ' ' else text[j - 1]
} }
// found mention symbol, override cursor
if(character2 == '@') { if(character2 == '@') {
i = j i = j
character = character2 character = character2

Loading…
Cancel
Save