diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java index 4f7ff31605..30bd8546a8 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java @@ -107,11 +107,12 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder List videos; String targetUrl = null; // 防止串行 String imageCommentStr = "[图片评论]"; + String content = ""; switch (messageEntity.getType()) { case "answer": mBinding.messageCommand.setText("回答了你的问题"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getAnswer().getContent()); + content = messageEntity.getAnswer().getContent(); mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); videos = messageEntity.getQuestion().getVideos(); if (videos.size() > 0) { @@ -131,7 +132,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "reply": mBinding.messageCommand.setText("回复了你"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); + content = messageEntity.getDialogue().getFrom().getContent(); mBinding.messageOriginalTitle.setText(messageEntity.getDialogue().getTo().getContent()); targetUrl = messageEntity.getArticle().getThumb(); if (TextUtils.isEmpty(targetUrl)) { @@ -145,7 +146,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "follow_question": mBinding.messageCommand.setText("回答了你关注的问题"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getAnswer().getContent()); + content = messageEntity.getAnswer().getContent(); mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); images = messageEntity.getAnswer().getImages(); if (images.size() > 0) { @@ -159,7 +160,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "reply_answer_comment": mBinding.messageCommand.setText("回复了你"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); + content = messageEntity.getDialogue().getFrom().getContent(); mBinding.messageOriginalTitle.setText(messageEntity.getDialogue().getTo().getContent()); mBinding.messageOriginalIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); @@ -167,7 +168,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "answer_comment": mBinding.messageCommand.setText("回复了你的回答"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getComment().getContent()); + content = messageEntity.getComment().getContent(); if (messageEntity.getAnswer().getContent() != null) { mBinding.messageOriginalTitle.setText(messageEntity.getAnswer().getContent().replace(imageCommentStr, "")); } @@ -291,7 +292,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "community_article_comment": mBinding.messageCommand.setText("评论了你的帖子"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getComment().getContent()); + content = messageEntity.getComment().getContent(); mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); videos = messageEntity.getArticle().getVideos(); if (videos.size() > 0) { @@ -339,7 +340,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } } mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); + content = messageEntity.getDialogue().getFrom().getContent(); if (messageEntity.getDialogue().getTo().getContent() != null) { mBinding.messageOriginalTitle.setText(messageEntity.getDialogue().getTo().getContent().replace(imageCommentStr, "")); } @@ -348,7 +349,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "update-answer": mBinding.messageCommand.setText("更新了回答"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getAnswer().getContent()); + content = messageEntity.getAnswer().getContent(); mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); images = messageEntity.getAnswer().getImages(); if (images.size() > 0) { @@ -375,7 +376,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "game_comment_reply": mBinding.messageCommand.setText("回复了你的评价"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getReply().getContent()); + content = messageEntity.getReply().getContent(); String parentId = messageEntity.getReply().getParent().getId(); // parentContent为空代表是回复评价中的回复,否则是回复游戏评价 if (!TextUtils.isEmpty(parentId)) { @@ -420,7 +421,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "video_comment": mBinding.messageCommand.setText("评论了你的帖子"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getComment().getContent()); + content = messageEntity.getComment().getContent(); mBinding.messageOriginalTitle.setText(messageEntity.getVideo().getTitle()); targetUrl = messageEntity.getVideo().getPoster(); if (TextUtils.isEmpty(targetUrl)) { @@ -447,7 +448,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "reply_activity_comment": mBinding.messageCommand.setText("回复了你"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); + content = messageEntity.getDialogue().getFrom().getContent(); mBinding.messageOriginalTitle.setText(messageEntity.getActivity().getTitle()); targetUrl = messageEntity.getActivity().getImageUrl(); if (TextUtils.isEmpty(targetUrl)) { @@ -500,7 +501,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "game_list_comment": mBinding.messageCommand.setText("评价了你的游戏单"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getComment().getContent()); + content = messageEntity.getComment().getContent(); mBinding.messageOriginalTitle.setText(messageEntity.getGameList().getTitle()); targetUrl = messageEntity.getGameList().getCover(); if (TextUtils.isEmpty(targetUrl)) { @@ -527,7 +528,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "game_list_comment_reply": mBinding.messageCommand.setText("回复了你的游戏单评价"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getComment().getContent()); + content = messageEntity.getComment().getContent(); mBinding.messageOriginalTitle.setText(messageEntity.getComment().getParent().getContent()); targetUrl = messageEntity.getGameList().getCover(); if (TextUtils.isEmpty(targetUrl)) { @@ -540,6 +541,8 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder break; } + TextHelper.highlightTextThatIsWrappedInsideWrapperByDefault(mBinding.messageContent, content); + mBinding.messageOriginalTitle.post(() -> { ViewGroup.LayoutParams params = mBinding.messageOriginal.getLayoutParams(); if (mBinding.messageOriginalTitle.getLineCount() > 1 || mBinding.messageOriginalIcon.getVisibility() == View.VISIBLE) {