From 30f2cfd32d94be215511313d74afeb266367ba67 Mon Sep 17 00:00:00 2001 From: lyr Date: Tue, 24 May 2022 18:13:33 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8Bv5?= =?UTF-8?q?.10.0=E3=80=91=E6=B6=88=E6=81=AF=E4=B8=AD=E5=BF=83-=E8=B5=9E?= =?UTF-8?q?=E5=90=8C/=E9=82=80=E8=AF=B7=E6=B6=88=E6=81=AF=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E6=A0=B7=E5=BC=8F=E4=BC=98=E5=8C=96(=E7=82=B9?= =?UTF-8?q?=E8=B5=9E=E9=83=A8=E5=88=86)=20https://git.shanqu.cc/pm/halo-ap?= =?UTF-8?q?p-issues/-/issues/1831?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/gamecenter/entity/MessageEntity.kt | 23 +- .../message/MessageItemViewHolder.java | 285 +++++++----------- .../message/MessageNormalFragment.java | 12 + .../video/detail/ForumVideoDetailActivity.kt | 3 +- 4 files changed, 138 insertions(+), 185 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt index 6bb952e6c4..f4841d21da 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt @@ -167,6 +167,8 @@ class MessageEntity { var topId: String? = null var content: String? = null + + var images: List = ArrayList() } class Comment { @@ -178,8 +180,20 @@ class MessageEntity { var content: String? = null - @SerializedName("parent_content") - var parentContent: String? = null + var parent: Parent? = null + + var images: List = ArrayList() + } + + class Parent { + @SerializedName("_id") + var id: String = "" + + var content: String = "" + + var type: String = "" + + var images: List = ArrayList() } class Video { @@ -209,8 +223,9 @@ class MessageEntity { var comment: String? = null - @SerializedName("parent_content") - var parentContent: String? = null + var parent: Parent? = null + + var images: List = ArrayList() } class Activity { 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 0785533178..dadc8a7b29 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java @@ -111,7 +111,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.VISIBLE); mBinding.messageContent.setText(messageEntity.getAnswer().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); - images = messageEntity.getAnswer().getImages(); + images = messageEntity.getQuestion().getImages(); if (images.size() > 0) { mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); @@ -153,7 +153,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.VISIBLE); mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getDialogue().getTo().getContent()); - images = messageEntity.getAnswer().getImages(); + images = messageEntity.getDialogue().getTo().getImages(); if (images.size() > 0) { mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); @@ -179,7 +179,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "answer_vote": mBinding.messageCommand.setText("赞同你的回答"); mBinding.messageContent.setVisibility(View.GONE); - mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); + mBinding.messageOriginalTitle.setText(messageEntity.getAnswer().getContent()); images = messageEntity.getAnswer().getImages(); if (images.size() > 0) { mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); @@ -203,10 +203,14 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder voteMoreUser(messageEntity); break; case "answer_comment_vote": + case "community_article_comment_vote": + case "game_comment_vote": + case "video_comment_vote": + case "game_list_comment_vote": mBinding.messageCommand.setText("赞了你的评论"); mBinding.messageContent.setVisibility(View.GONE); - mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); - images = messageEntity.getAnswer().getImages(); + mBinding.messageOriginalTitle.setText(messageEntity.getComment().getContent()); + images = messageEntity.getComment().getImages(); if (images.size() > 0) { mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); @@ -268,24 +272,13 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } voteMoreUser(messageEntity); break; - case "community_article_comment_vote": - mBinding.messageCommand.setText("赞了你的评论"); - mBinding.messageContent.setVisibility(View.GONE); - mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); - images = messageEntity.getArticle().getImages(); - if (images.size() > 0) { - mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); - ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); - } else { - mBinding.messageOriginalIcon.setVisibility(View.GONE); - } - voteMoreUser(messageEntity); - break; case "community_article_comment_reply_vote": + case "game_comment_reply_vote": + case "video_comment_reply_vote": mBinding.messageCommand.setText("赞了你的回复"); mBinding.messageContent.setVisibility(View.GONE); - mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); - images = messageEntity.getArticle().getImages(); + mBinding.messageOriginalTitle.setText(messageEntity.getReply().getContent()); + images = messageEntity.getReply().getImages(); if (images.size() > 0) { mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); @@ -295,11 +288,12 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder voteMoreUser(messageEntity); break; case "reply_community_article_comment": + case "video_comment_reply": mBinding.messageCommand.setText("回复了你的评论"); mBinding.messageContent.setVisibility(View.VISIBLE); mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getDialogue().getTo().getContent()); - images = messageEntity.getArticle().getImages(); + images = messageEntity.getDialogue().getTo().getImages(); if (images.size() > 0) { mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); @@ -308,19 +302,6 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } voteMoreUser(messageEntity); break; - case "game_comment_vote": - mBinding.messageCommand.setText("赞了你的评论"); - mBinding.messageContent.setVisibility(View.GONE); - mBinding.messageOriginalTitle.setText(messageEntity.getGame().getName()); - targetUrl = messageEntity.getGame().getDefaultIcon(); - if (TextUtils.isEmpty(targetUrl)) { - mBinding.messageOriginalIcon.setVisibility(View.GONE); - } else { - mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); - ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); - } - voteMoreUser(messageEntity); - break; case "update-answer": mBinding.messageCommand.setText("更新了回答"); mBinding.messageContent.setVisibility(View.VISIBLE); @@ -335,27 +316,14 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } voteMoreUser(messageEntity); break; - case "game_comment_reply_vote": - mBinding.messageCommand.setText("赞了你的回复"); - mBinding.messageContent.setVisibility(View.GONE); - mBinding.messageOriginalTitle.setText(messageEntity.getGame().getName()); - targetUrl = messageEntity.getGame().getDefaultIcon(); - if (TextUtils.isEmpty(targetUrl)) { - mBinding.messageOriginalIcon.setVisibility(View.GONE); - } else { - mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); - ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); - } - voteMoreUser(messageEntity); - break; case "game_comment_reply": mBinding.messageCommand.setText("回复了你的评价"); mBinding.messageContent.setVisibility(View.VISIBLE); mBinding.messageContent.setText(messageEntity.getReply().getContent()); - String parentContent = messageEntity.getReply().getParentContent(); + String parentId = messageEntity.getReply().getParent().getId(); // parentContent为空代表是回复评价中的回复,否则是回复游戏评价 - if (!TextUtils.isEmpty(parentContent)) { - mBinding.messageOriginalTitle.setText(messageEntity.getReply().getParentContent()); + if (!TextUtils.isEmpty(parentId)) { + mBinding.messageOriginalTitle.setText(messageEntity.getReply().getParent().getContent()); } else { String comment = messageEntity.getReply().getComment(); if (comment != null) { @@ -384,12 +352,12 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } } } - targetUrl = messageEntity.getGame().getDefaultIcon(); - if (TextUtils.isEmpty(targetUrl)) { - mBinding.messageOriginalIcon.setVisibility(View.GONE); - } else { + images = messageEntity.getReply().getParent().getImages(); + if (images.size() > 0) { mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); - ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } voteMoreUser(messageEntity); break; @@ -407,33 +375,6 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } voteMoreUser(messageEntity); break; - case "video_comment_reply": - mBinding.messageCommand.setText("回复了你的评论"); - mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); - mBinding.messageOriginalTitle.setText(messageEntity.getDialogue().getTo().getContent()); - targetUrl = messageEntity.getVideo().getPoster(); - if (TextUtils.isEmpty(targetUrl)) { - mBinding.messageOriginalIcon.setVisibility(View.GONE); - } else { - mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); - ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); - } - voteMoreUser(messageEntity); - break; - case "video_comment_vote": - mBinding.messageCommand.setText("赞了你的评论"); - mBinding.messageContent.setVisibility(View.GONE); - mBinding.messageOriginalTitle.setText(messageEntity.getVideo().getTitle()); - targetUrl = messageEntity.getVideo().getPoster(); - if (TextUtils.isEmpty(targetUrl)) { - mBinding.messageOriginalIcon.setVisibility(View.GONE); - } else { - mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); - ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); - } - voteMoreUser(messageEntity); - break; case "video_vote": mBinding.messageCommand.setText("赞同了你的视频"); mBinding.messageContent.setVisibility(View.GONE); @@ -447,19 +388,6 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } voteMoreUser(messageEntity); break; - case "video_comment_reply_vote": - mBinding.messageCommand.setText("赞了你的回复"); - mBinding.messageContent.setVisibility(View.GONE); - mBinding.messageOriginalTitle.setText(messageEntity.getVideo().getTitle()); - targetUrl = messageEntity.getVideo().getPoster(); - if (TextUtils.isEmpty(targetUrl)) { - mBinding.messageOriginalIcon.setVisibility(View.GONE); - } else { - mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); - ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); - } - voteMoreUser(messageEntity); - break; case "reply_activity_comment": mBinding.messageCommand.setText("回复了你"); mBinding.messageContent.setVisibility(View.VISIBLE); @@ -531,26 +459,13 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageCommand.setText("回复了你的游戏单评价"); mBinding.messageContent.setVisibility(View.VISIBLE); mBinding.messageContent.setText(messageEntity.getComment().getContent()); - mBinding.messageOriginalTitle.setText(messageEntity.getComment().getParentContent()); - targetUrl = messageEntity.getGameList().getCover(); - if (TextUtils.isEmpty(targetUrl)) { - mBinding.messageOriginalIcon.setVisibility(View.GONE); - } else { + mBinding.messageOriginalTitle.setText(messageEntity.getComment().getParent().getContent()); + images = messageEntity.getComment().getParent().getImages(); + if (images.size() > 0) { mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); - ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); - } - voteMoreUser(messageEntity); - break; - case "game_list_comment_vote": - mBinding.messageCommand.setText("赞了你的评论"); - mBinding.messageContent.setVisibility(View.GONE); - mBinding.messageOriginalTitle.setText(messageEntity.getGameList().getTitle()); - targetUrl = messageEntity.getGameList().getCover(); - if (TextUtils.isEmpty(targetUrl)) { - mBinding.messageOriginalIcon.setVisibility(View.GONE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); } else { - mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); - ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + mBinding.messageOriginalIcon.setVisibility(View.GONE); } voteMoreUser(messageEntity); break; @@ -657,6 +572,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } break; case "answer": + case "answer_vote": intent = NewQuestionDetailActivity.getSpecifiedCommentIntent( context, entity.getQuestion().getId(), @@ -675,13 +591,6 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder context.startActivity(SimpleAnswerDetailActivity.getIntent(context, entity.getAnswer().getId(), entrance, path)); } break; - case "answer_vote": - if (view.getId() == R.id.message_original) { - context.startActivity(NewQuestionDetailActivity.getCommentIntent(context, entity.getQuestion().getId(), entity.getAnswer().getId(), entrance, path)); - } else if (view.getId() == R.id.message_item) { - context.startActivity(NewQuestionDetailActivity.getIntent(context, entity.getQuestion().getId(), entrance, path)); - } - break; case "reply_answer_comment": intent = NewCommentDetailActivity.Companion.getAnswerCommentIntent( context, @@ -706,17 +615,6 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder context.startActivity(intent); break; case "community_article_comment_vote": - community = new CommunityEntity(entity.getArticle().getCommunityId(), ""); - if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { - context.startActivity(ArticleDetailActivity.getCommentIntent(context, community, entity.getArticle().getId(), entrance, path)); - } - break; - case "community_article_comment_reply_vote": - community = new CommunityEntity(entity.getArticle().getCommunityId(), ""); - if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { - context.startActivity(CommentActivity.getCommentDetailIntent(context, entity.getComment().getTopId(), community.getId(), entity.getArticle().getId(), "", "", false, 1, entrance, path)); - } - break; case "community_article_comment": community = new CommunityEntity(entity.getArticle().getCommunityId(), ""); intent = ArticleDetailActivity.getSpecifiedCommentIntent( @@ -725,14 +623,33 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder entity.getArticle().getId(), entity.getComment().getId(), entrance, - path); + path + ); + context.startActivity(intent); + break; + case "community_article_comment_reply_vote": + intent = NewCommentDetailActivity.Companion.getArticleCommentIntent( + context, + entity.getComment().getTopId(), + entity.getArticle().getCommunityId(), + entity.getArticle().getId(), + entity.getComment().getId(), + entrance, + path + ); context.startActivity(intent); break; case "community_article_vote": - if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { - community = new CommunityEntity(entity.getArticle().getCommunityId(), ""); - context.startActivity(ArticleDetailActivity.getIntent(context, community, entity.getArticle().getId(), entrance, path, null)); - } + community = new CommunityEntity(entity.getArticle().getCommunityId(), ""); + intent = ArticleDetailActivity.getIntent( + context, + community, + entity.getArticle().getId(), + entrance, + path, + null + ); + context.startActivity(intent); break; case "reply_community_article_comment": intent = NewCommentDetailActivity.Companion.getArticleCommentIntent( @@ -747,9 +664,17 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder context.startActivity(intent); break; case "game_comment_vote": - if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { - GameDetailActivity.startGameDetailActivity(context, entity.getGame().getId(), BaseActivity.mergeEntranceAndPath(entrance, path), -1, true, false, false, false, null); - } + GameDetailActivity.startGameDetailActivity( + context, + entity.getGame().getId(), + BaseActivity.mergeEntranceAndPath(entrance, path), + -1, + true, + false, + false, + false, + null + ); break; case "game_comment_reply": case "game_comment_reply_vote": @@ -764,24 +689,22 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder context.startActivity(intent); break; case "video_vote": - if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { - DirectUtils.directToVideoDetail( - context, - entity.getVideo().getId(), - VideoDetailContainerViewModel.Location.SINGLE_VIDEO.getValue(), - false, - "", - entrance, - outerInfo, - "" - ); - } + DirectUtils.directToVideoDetail( + context, + entity.getVideo().getId(), + VideoDetailContainerViewModel.Location.SINGLE_VIDEO.getValue(), + false, + "", + entrance, + outerInfo, + "" + ); break; case "video_comment": + case "video_comment_vote": intent = ForumVideoDetailActivity.Companion.getSpecifiedCommentIntent( context, entity.getVideo().getId(), - "", entity.getComment().getId() ); context.startActivity(intent); @@ -797,22 +720,16 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder ); context.startActivity(intent); break; - case "video_comment_vote": case "video_comment_reply_vote": - boolean showComment = false; - - if (view.getId() == R.id.message_item) { - showComment = true; - } - DirectUtils.directToVideoDetail( + intent = NewCommentDetailActivity.Companion.getVideoCommentIntent( context, + entity.getComment().getTopId(), entity.getVideo().getId(), - VideoDetailContainerViewModel.Location.SINGLE_VIDEO.getValue(), - showComment, - "", + entity.getComment().getId(), entrance, - outerInfo, - ""); + path + ); + context.startActivity(intent); break; case "reply_activity_comment": @@ -833,6 +750,25 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder ); context.startActivity(intent); break; + case "game_list_comment_vote": + if (TextUtils.isEmpty(entity.getComment().getTopId())) { + intent = GameCollectionDetailActivity.Companion.getSpecifiedCommentIntent( + context, + entity.getGameList().getId(), + entity.getComment().getId() + ); + } else { + intent = NewCommentDetailActivity.Companion.getGameCollectionCommentIntent( + context, + entity.getComment().getTopId(), + entity.getGameList().getId(), + entity.getComment().getId(), + entrance, + path + ); + } + context.startActivity(intent); + break; case "game_list_comment_reply": intent = NewCommentDetailActivity.Companion.getGameCollectionCommentIntent( context, @@ -844,22 +780,13 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder ); context.startActivity(intent); break; - case "game_list_comment_vote": - if (view.getId() == R.id.message_original) { - context.startActivity(GameCollectionDetailActivity.getIntent(context, entity.getGameList().getId(), false)); - } else if (view.getId() == R.id.message_item) { - context.startActivity(CommentActivity.getGameCollectionCommentDetailIntent( - context, - entity.getComment().getTopId(), - entity.getGameList().getId(), - false, - entrance, - path - )); - } - break; case "game_list_vote": - context.startActivity(GameCollectionDetailActivity.getIntent(context, entity.getGameList().getId(), false)); + intent = GameCollectionDetailActivity.getIntent( + context, + entity.getGameList().getId(), + false + ); + context.startActivity(intent); break; } } diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java index 9d0574377b..122cda0768 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java @@ -1,10 +1,12 @@ package com.gh.gamecenter.message; +import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProviders; import android.os.Bundle; import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; @@ -13,6 +15,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.baselist.ListFragment; import com.gh.gamecenter.baselist.LoadType; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.entity.MessageEntity; import com.halo.assistant.HaloApp; @@ -62,6 +65,15 @@ public class MessageNormalFragment extends ListFragment