diff options
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/util/CommentsUtil.java')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/util/CommentsUtil.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/util/CommentsUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/util/CommentsUtil.java new file mode 100644 index 000000000..5251291c8 --- /dev/null +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/util/CommentsUtil.java @@ -0,0 +1,48 @@ +package it.niedermann.nextcloud.deck.ui.card.comments.util; + + +import androidx.core.util.Pair; + +public class CommentsUtil { + + public static Pair<String, Integer> getUserNameForMentionProposal(String text, int cursorPosition) { + Pair result = null; + + if (text != null) { + // find start of relevant substring + int cursor = cursorPosition; + if (cursor < 1) { + return null; + } + int start = 0; + while (cursor > 0) { + cursor--; + if (Character.isWhitespace(text.charAt(cursor))) { + start = cursor + 1; + break; + } + } + if (text.length()-1 < start || text.charAt(start) != '@') { + return null; + } + + // find end of relevant substring + cursor = cursorPosition; + int textLength = text.length(); + int end = textLength; + while (cursor < textLength) { + if (Character.isWhitespace(text.charAt(cursor))) { + end = cursor; + break; + } + cursor++; + } + + start++; + result = Pair.create(text.substring(start, end), start); + + } + + return result; + } +} |