Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-09-04 20:02:55 +0300
committerNiedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com>2020-09-04 20:03:12 +0300
commit617acd70446dfd5e9e251b0db85a1918f48269a9 (patch)
tree29c9cfed7af069c1b36c5b2a43a7cecda21b38ff /app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments
parent81ca46c05ccbf0950a447300e08b4191e78230fd (diff)
#673 💬 Allow mention users in the comments
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsMentionProposer.java31
2 files changed, 18 insertions, 15 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java
index 300d50c73..af1c24c2d 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java
@@ -116,7 +116,7 @@ public class CardCommentsFragment extends BrandedFragment implements CommentEdit
}
return true;
});
- binding.message.addTextChangedListener(new CardCommentsMentionProposer(getViewLifecycleOwner(), mainViewModel.getAccount(), mainViewModel.getBoardId(), binding.message, binding.mentionProposer));
+ binding.message.addTextChangedListener(new CardCommentsMentionProposer(getViewLifecycleOwner(), mainViewModel.getAccount(), mainViewModel.getBoardId(), binding.message, binding.mentionProposerWrapper, binding.mentionProposer));
} else {
binding.addCommentLayout.setVisibility(GONE);
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsMentionProposer.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsMentionProposer.java
index 853bcfe71..4d47be2f9 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsMentionProposer.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsMentionProposer.java
@@ -43,21 +43,24 @@ public class CardCommentsMentionProposer implements TextWatcher {
@NonNull
private final EditText editText;
@NonNull
- private final LinearLayout mentionProposerLayout;
+ private final LinearLayout mentionProposer;
+ @NonNull
+ private final LinearLayout mentionProposerWrapper;
@NonNull
private final List<User> users = new ArrayList<>();
- public CardCommentsMentionProposer(@NonNull LifecycleOwner owner, @NonNull Account account, long boardLocalId, @NonNull EditText editText, @NonNull LinearLayout avatarProposerLayout) {
+ public CardCommentsMentionProposer(@NonNull LifecycleOwner owner, @NonNull Account account, long boardLocalId, @NonNull EditText editText, LinearLayout mentionProposerWrapper, @NonNull LinearLayout avatarProposer) {
this.owner = owner;
this.account = account;
this.boardLocalId = boardLocalId;
this.editText = editText;
- this.mentionProposerLayout = avatarProposerLayout;
+ this.mentionProposerWrapper = mentionProposerWrapper;
+ this.mentionProposer = avatarProposer;
syncManager = new SyncManager(editText.getContext());
- avatarSize = dpToPx(mentionProposerLayout.getContext(), R.dimen.avatar_size_small);
+ avatarSize = dpToPx(mentionProposer.getContext(), R.dimen.avatar_size_small);
layoutParams = new LinearLayout.LayoutParams(avatarSize, avatarSize);
- layoutParams.setMarginEnd(dpToPx(mentionProposerLayout.getContext(), R.dimen.spacer_1x));
+ layoutParams.setMarginEnd(dpToPx(mentionProposer.getContext(), R.dimen.spacer_1x));
}
@Override
@@ -71,20 +74,20 @@ public class CardCommentsMentionProposer implements TextWatcher {
final int selectionEnd = editText.getSelectionEnd();
final Pair<String, Integer> mentionProposal = CommentsUtil.getUserNameForMentionProposal(s.toString(), selectionStart);
if (mentionProposal == null || (mentionProposal.first != null && mentionProposal.first.length() == 0) || selectionStart != selectionEnd) {
- mentionProposerLayout.removeAllViews();
- mentionProposerLayout.setVisibility(View.GONE);
+ mentionProposer.removeAllViews();
+ mentionProposerWrapper.setVisibility(View.GONE);
this.users.clear();
} else {
if (mentionProposal.first != null && mentionProposal.second != null) {
observeOnce(syncManager.searchUserByUidOrDisplayName(account.getId(), boardLocalId, -1L, mentionProposal.first), owner, (users) -> {
if (!users.equals(this.users)) {
- mentionProposerLayout.removeAllViews();
+ mentionProposer.removeAllViews();
for (User user : users) {
- final ImageView avatar = new ImageView(mentionProposerLayout.getContext());
+ final ImageView avatar = new ImageView(mentionProposer.getContext());
avatar.setLayoutParams(layoutParams);
updateListenerOfView(avatar, s, mentionProposal, user);
- mentionProposerLayout.addView(avatar);
+ mentionProposer.addView(avatar);
Glide.with(avatar.getContext())
.load(account.getUrl() + "/index.php/avatar/" + Uri.encode(user.getUid()) + "/" + avatarSize)
@@ -97,16 +100,16 @@ public class CardCommentsMentionProposer implements TextWatcher {
} else {
int i = 0;
for (User user : users) {
- updateListenerOfView(mentionProposerLayout.getChildAt(i), s, mentionProposal, user);
+ updateListenerOfView(mentionProposer.getChildAt(i), s, mentionProposal, user);
i++;
}
}
});
} else {
this.users.clear();
- mentionProposerLayout.removeAllViews();
+ mentionProposer.removeAllViews();
}
- mentionProposerLayout.setVisibility(View.VISIBLE);
+ mentionProposerWrapper.setVisibility(View.VISIBLE);
}
}
@@ -119,7 +122,7 @@ public class CardCommentsMentionProposer implements TextWatcher {
s.subSequence(mentionProposal.second + mentionProposal.first.length(), s.length())
);
editText.setSelection(mentionProposal.second + user.getUid().length());
- mentionProposerLayout.setVisibility(View.GONE);
+ mentionProposerWrapper.setVisibility(View.GONE);
});
}