diff --git a/app/src/main/java/com/gh/common/util/CommentUtils.java b/app/src/main/java/com/gh/common/util/CommentUtils.java index 8d9becbaf1..a4f16b881f 100644 --- a/app/src/main/java/com/gh/common/util/CommentUtils.java +++ b/app/src/main/java/com/gh/common/util/CommentUtils.java @@ -380,10 +380,11 @@ public class CommentUtils { ImageUtils.displayIcon(holder.commentUserIconDv, userInfo.getIcon()); } else { if (entity.getMe() != null && entity.getMe().isContentOwner()) { - holder.commentUserNameTv.setText(entity.getUser().getName() + "(作者)"); + holder.commentAuthorTv.setVisibility(View.VISIBLE); } else { - holder.commentUserNameTv.setText(entity.getUser().getName()); + holder.commentAuthorTv.setVisibility(View.VISIBLE); } + holder.commentUserNameTv.setText(entity.getUser().getName()); if (entity.getUser().getAuth() != null) { ImageUtils.display(holder.commentUserBadgeIv, entity.getUser().getAuth().getIcon()); } else { diff --git a/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java b/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java index 2f061b770d..bdb9f9d115 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java @@ -1,7 +1,9 @@ package com.gh.gamecenter.collection; import android.content.Context; + import androidx.recyclerview.widget.RecyclerView; + import android.view.View; import android.view.ViewGroup; @@ -22,11 +24,13 @@ public class AnswerAdapter extends ListAdapter { private OnListClickListener mListClickListener; private String mEntrance; + private AnswerFragment.Type mType; - public AnswerAdapter(Context context, OnListClickListener listClickListener, String entrance) { + public AnswerAdapter(Context context, AnswerFragment.Type type, OnListClickListener listClickListener, String entrance) { super(context); mListClickListener = listClickListener; mEntrance = entrance; + this.mType = type; } @Override @@ -54,7 +58,7 @@ public class AnswerAdapter extends ListAdapter { public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { switch (getItemViewType(position)) { case ItemViewType.ITEM_BODY: - ((AnswerViewHolder) holder).initCollectionAnswerViewHolder(mEntityList.get(position), mEntrance); + ((AnswerViewHolder) holder).initCollectionAnswerViewHolder(mContext, mEntityList.get(position), mEntrance, mType); break; case ItemViewType.ITEM_FOOTER: FooterViewHolder footerViewHolder = (FooterViewHolder) holder; diff --git a/app/src/main/java/com/gh/gamecenter/collection/AnswerFragment.java b/app/src/main/java/com/gh/gamecenter/collection/AnswerFragment.java index d0961e17f8..6438e2564b 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/AnswerFragment.java +++ b/app/src/main/java/com/gh/gamecenter/collection/AnswerFragment.java @@ -43,7 +43,7 @@ public class AnswerFragment extends ListFragment @Override protected ListAdapter provideListAdapter() { - return mAdapter == null ? mAdapter = new AnswerAdapter(getContext(), this, mEntrance) : mAdapter; + return mAdapter == null ? mAdapter = new AnswerAdapter(getContext(), mType,this, mEntrance) : mAdapter; } @Override @@ -125,6 +125,8 @@ public class AnswerFragment extends ListFragment public enum Type { COLLECTION, + COLLECTION_ANSWER, + HISTORY } } diff --git a/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleAdapter.kt b/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleAdapter.kt index 43af6f8de7..fc16f82e78 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleAdapter.kt @@ -6,10 +6,9 @@ import android.view.View import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat +import anet.channel.util.Utils.context import com.gh.common.constant.ItemViewType -import com.gh.common.util.DialogUtils -import com.gh.common.util.DirectUtils -import com.gh.common.util.DisplayUtils +import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter @@ -18,6 +17,7 @@ import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity import com.gh.gamecenter.qa.entity.ArticleEntity class CommunityArticleAdapter(context: Context, + val mType: CommunityArticleFragment.Type, private val mViewModel: CommunityArticleViewModel, private val mEntrance: String) : ListAdapter(context) { @@ -60,6 +60,22 @@ class CommunityArticleAdapter(context: Context, holder.binding.content.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG holder.binding.content.setTextColor(ContextCompat.getColor(mContext, R.color.hint)) } + if (entity.user.badge != null) { + holder.binding.sdvUserBadge.visibility = View.VISIBLE + holder.binding.tvBadgeName.visibility = View.VISIBLE + ImageUtils.display(holder.binding.sdvUserBadge, entity.user.badge!!.icon) + holder.binding.tvBadgeName.text = entity.user.badge!!.name + } else { + holder.binding.sdvUserBadge.visibility = View.GONE + holder.binding.tvBadgeName.visibility = View.GONE + } + val key = if (mType == CommunityArticleFragment.Type.COLLECTION) "我的收藏-文章列表" else "浏览记录-文章列表" + holder.binding.sdvUserBadge.setOnClickListener { v -> + MtaHelper.onEvent("进入徽章墙_用户记录", key, entity.user.name + "(" + entity.user.id + ")") + MtaHelper.onEvent("徽章中心", "进入徽章中心", key) + DirectUtils.directToBadgeWall(mContext, entity.user.id, entity.user.name, entity.user.icon) + } + holder.binding.tvBadgeName.setOnClickListener { v -> holder.binding.sdvUserBadge.performClick() } holder.itemView.setOnClickListener { if (entity.active) { mContext.startActivity(ArticleDetailActivity.getIntent(mContext, entity.community, entity.id, mEntrance, path)) diff --git a/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleFragment.kt b/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleFragment.kt index 8cf27583f2..1a821c1791 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleFragment.kt @@ -16,7 +16,7 @@ class CommunityArticleFragment : ListFragment { val answerViewHolder = holder as AnswerViewHolder val entity = mEntityList[position] - answerViewHolder.initCollectionAnswerViewHolder(entity, mEntrance) + answerViewHolder.initCollectionAnswerViewHolder(mContext, entity, mEntrance, AnswerFragment.Type.COLLECTION_ANSWER) answerViewHolder.mUsericon.setOnClickListener { selectAndBack(entity) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt index 8d144eca6b..b8f442b30e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt @@ -7,6 +7,9 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.ItemViewType +import com.gh.common.util.DirectUtils +import com.gh.common.util.ImageUtils +import com.gh.common.util.MtaHelper import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter @@ -41,6 +44,23 @@ class ArticleAdapter(context: Context, private val mEntrance: String?) : ListAda val articleHolder = holder as CollectionCommunityArticleViewHolder val entity = mEntityList[position] articleHolder.binding.data = entity + + if (entity.user.badge != null) { + articleHolder.binding.sdvUserBadge.visibility = View.VISIBLE + articleHolder.binding.tvBadgeName.visibility = View.VISIBLE + ImageUtils.display(articleHolder.binding.sdvUserBadge, entity.user.badge!!.icon) + articleHolder.binding.tvBadgeName.text = entity.user.badge!!.name + } else { + articleHolder.binding.sdvUserBadge.visibility = View.GONE + articleHolder.binding.tvBadgeName.visibility = View.GONE + } + articleHolder.binding.sdvUserBadge.setOnClickListener { v -> + MtaHelper.onEvent("进入徽章墙_用户记录", "插入文章-收藏文章列表", entity.user.name + "(" + entity.user.id + ")") + MtaHelper.onEvent("徽章中心", "进入徽章中心", "插入文章-收藏文章列表") + DirectUtils.directToBadgeWall(mContext, entity.user.id, entity.user.name, entity.user.icon) + } + articleHolder.binding.tvBadgeName.setOnClickListener { v -> articleHolder.binding.sdvUserBadge.performClick() } + articleHolder.itemView.setOnClickListener { if (mContext is Activity) { val intent = Intent() diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/detail/AnswerViewHolder.java b/app/src/main/java/com/gh/gamecenter/qa/questions/detail/AnswerViewHolder.java index 4bf4447444..0ac3aa7c14 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/detail/AnswerViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/detail/AnswerViewHolder.java @@ -20,6 +20,8 @@ import com.gh.common.util.NewsUtils; import com.gh.common.util.NumberUtils; import com.gh.common.view.DrawableView; import com.gh.gamecenter.R; +import com.gh.gamecenter.collection.AnswerFragment; +import com.gh.gamecenter.collection.CommunityArticleFragment; import com.gh.gamecenter.entity.UserEntity; import com.gh.gamecenter.qa.entity.AnswerEntity; import com.gh.gamecenter.qa.entity.CommunityVideoEntity; @@ -114,7 +116,7 @@ public class AnswerViewHolder extends BaseRecyclerViewHolder { skipPersonalHome(entity, entrance, path); } - public void initCollectionAnswerViewHolder(AnswerEntity entity, String entrance) { + public void initCollectionAnswerViewHolder(Context context, AnswerEntity entity, String entrance, AnswerFragment.Type mType) { setClickData(entity); if (entity.getActive()) { mContent.getPaint().setFlags(Paint.ANTI_ALIAS_FLAG); @@ -135,6 +137,31 @@ public class AnswerViewHolder extends BaseRecyclerViewHolder { // mCommunityName.setText(entity.getCommunityName()); UserEntity user = entity.getUser(); mUsername.setText(user.getName()); + + if (user.getBadge() != null) { + userBadgeSdv.setVisibility(View.VISIBLE); + badgeNameTv.setVisibility(View.VISIBLE); + ImageUtils.display(userBadgeSdv, user.getBadge().getIcon()); + badgeNameTv.setText(user.getBadge().getName()); + } else { + userBadgeSdv.setVisibility(View.GONE); + badgeNameTv.setVisibility(View.GONE); + } + String key; + if (mType == AnswerFragment.Type.COLLECTION) { + key = "我的收藏-回答列表"; + } else if (mType == AnswerFragment.Type.HISTORY) { + key = "浏览记录-回答列表"; + } else { + key = "插入回答-收藏回答列表"; + } + userBadgeSdv.setOnClickListener(v -> { + MtaHelper.onEvent("进入徽章墙_用户记录", key, user.getName() + "(" + user.getId() + ")"); + MtaHelper.onEvent("徽章中心", "进入徽章中心", key); + DirectUtils.directToBadgeWall(context, user.getId(), user.getName(), user.getIcon()); + }); + badgeNameTv.setOnClickListener(v -> userBadgeSdv.performClick()); + ImageUtils.displayIcon(mUsericon, user.getIcon()); if (user.getAuth() != null) { ImageUtils.display(mBadgeIcon, user.getAuth().getIcon()); diff --git a/app/src/main/res/layout/collection_comunity_article_item.xml b/app/src/main/res/layout/collection_comunity_article_item.xml index f7adb94148..767d987475 100644 --- a/app/src/main/res/layout/collection_comunity_article_item.xml +++ b/app/src/main/res/layout/collection_comunity_article_item.xml @@ -81,10 +81,49 @@ android:text="@{data.user.name}" android:textColor="@color/title" android:textSize="14sp" + android:maxLines="1" + android:ellipsize="end" + app:layout_constrainedWidth="true" + app:layout_constraintHorizontal_bias="0" + app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintBottom_toBottomOf="@id/user_icon_container" app:layout_constraintLeft_toRightOf="@id/user_icon_container" - app:layout_constraintTop_toTopOf="@id/user_icon_container" /> + app:layout_constraintTop_toTopOf="@id/user_icon_container" + app:layout_constraintRight_toLeftOf="@+id/sdv_user_badge" + fresco:text="我的名字很长很长有十二字"/> + + +