From da3ba76547351e688766020294f2a7de0d9ce2de Mon Sep 17 00:00:00 2001 From: "kehaoyuan@ghzhushou.com" Date: Fri, 14 Feb 2020 18:53:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=B1=80=E4=BF=AE=E6=94=B9=E7=A4=BE?= =?UTF-8?q?=E5=8C=BA=E6=89=80=E6=9C=89=E5=88=97=E8=A1=A8UI=EF=BC=88?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E6=88=90=EF=BC=89=EF=BC=886=EF=BC=89=20https?= =?UTF-8?q?://gitlab.ghzs.com/pm/halo-app-issues/issues/768?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/util/SyncDataBetweenPageHelper.kt | 1 - .../game/upload/GameUploadViewModel.kt | 5 +- .../answer/CommunityAnswerItemViewHolder.kt | 48 ++++ .../detail/unanswered/UnansweredAdapter.kt | 10 +- .../qa/myqa/ConcernQuestionsAdapter.java | 27 +- .../qa/myqa/ConcernQuestionsFragment.java | 18 +- .../qa/myqa/MyQuestionsAdapter.java | 20 +- .../qa/myqa/MyQuestionsFragment.java | 18 +- .../qa/newest/AskQuestionsNewBodyAdapter.java | 17 +- .../newest/AskQuestionsNewBodyFragment.java | 17 +- .../qa/newest/AskQuestionsNewViewHolder.java | 53 ---- .../questions/CommunityQuestionViewHolder.kt | 26 ++ .../AskQuestionsRecommendsAdapter.java | 61 ++++- .../AskQuestionsRecommendsFragment.java | 19 +- .../AskQuestionsRecommendsViewHolder.java | 2 + .../newest/RecommendNewestAdapter.kt | 36 +-- .../community_comment_count_icon.png | Bin 0 -> 1650 bytes .../community_vote_cout_icon.png | Bin 0 -> 1684 bytes .../res/layout/ask_questions_new_item.xml | 53 ---- .../main/res/layout/community_answer_item.xml | 243 ++++++++++++++++++ .../res/layout/community_question_item.xml | 72 ++++++ 21 files changed, 536 insertions(+), 210 deletions(-) create mode 100644 app/src/main/java/com/gh/gamecenter/qa/answer/CommunityAnswerItemViewHolder.kt delete mode 100644 app/src/main/java/com/gh/gamecenter/qa/newest/AskQuestionsNewViewHolder.java create mode 100644 app/src/main/java/com/gh/gamecenter/qa/questions/CommunityQuestionViewHolder.kt create mode 100644 app/src/main/res/drawable-xxhdpi/community_comment_count_icon.png create mode 100644 app/src/main/res/drawable-xxhdpi/community_vote_cout_icon.png delete mode 100644 app/src/main/res/layout/ask_questions_new_item.xml create mode 100644 app/src/main/res/layout/community_answer_item.xml create mode 100644 app/src/main/res/layout/community_question_item.xml diff --git a/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt b/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt index 48b53e99cd..ae4e28fdb5 100644 --- a/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt +++ b/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt @@ -5,7 +5,6 @@ import android.content.Context import android.content.Intent import android.os.Parcelable import androidx.fragment.app.Fragment -import anet.channel.util.Utils.context import com.gh.common.annotation.Synchronize import com.gh.common.util.SyncDataBetweenPageHelper.resultHandle import com.gh.common.util.SyncDataBetweenPageHelper.startActivityForResult diff --git a/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadViewModel.kt b/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadViewModel.kt index ab36be84fa..63e543ded2 100644 --- a/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadViewModel.kt @@ -5,11 +5,11 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import anet.channel.util.Utils.context import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.user.ApiResponse +import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import okhttp3.RequestBody @@ -20,7 +20,8 @@ class GameUploadViewModel(application: Application) : AndroidViewModel(applicati val upLoadSuccess = MutableLiveData() //上传游戏 fun uploadGames(body: RequestBody) { - RetrofitManager.getInstance(context).api.uploadGames(UserManager.getInstance().userId, body) + RetrofitManager.getInstance(HaloApp.getInstance().application) + .api.uploadGames(UserManager.getInstance().userId, body) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(object : Response() { diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/CommunityAnswerItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/CommunityAnswerItemViewHolder.kt new file mode 100644 index 0000000000..a527b7f12f --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/CommunityAnswerItemViewHolder.kt @@ -0,0 +1,48 @@ +package com.gh.gamecenter.qa.answer + +import android.view.View +import com.gh.base.BaseRecyclerViewHolder +import com.gh.common.util.* +import com.gh.gamecenter.databinding.CommunityAnswerItemBinding +import com.gh.gamecenter.qa.entity.AnswerEntity +import com.gh.gamecenter.qa.entity.ArticleEntity + +/** + * 因为社区回答和社区文章的样式完全一样,所以就统一处理吧! + */ +class CommunityAnswerItemViewHolder(val binding: CommunityAnswerItemBinding) : BaseRecyclerViewHolder(binding.root) { + + fun bindAnswerItem(entity: AnswerEntity, entrance: String, path: String) { + binding.entity = entity + + val user = entity.user + binding.userBadgeName.setOnClickListener { binding.userBadgeIcon.performClick() } + binding.userBadgeIcon.setOnClickListener { + var key = "" + if (path == "标签专栏-热门") { + key = "问题标签详情-热门" + } else if (path == "标签专栏-精华") { + key = "问题标签详情-精华" + } else if (path == "专栏-热门") { + key = "问答-专栏详情-热门" + } else if (path == "专栏-精华") { + key = "问答-专栏详情-精华" + } else if (path == "游戏详情-动态") { + key = "游戏详情-热门回答" + } else if (path == "问答-推荐-按精选" || path == "问答-推荐-按时间") { + key = "问答-推荐" + } + MtaHelper.onEvent("进入徽章墙_用户记录", key, user.name + "(" + user.id + ")") + MtaHelper.onEvent("徽章中心", "进入徽章中心", key) + DirectUtils.directToBadgeWall(binding.root.context, user.id, user.name, user.icon) + } + + val userClick = View.OnClickListener { DirectUtils.directToHomeActivity(binding.root.context, entity.user.id, entrance, path) } + binding.userIcon.setOnClickListener(userClick) + binding.userName.setOnClickListener(userClick) + } + + fun bindArticleItem(entity: ArticleEntity) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredAdapter.kt index 4362ee03a4..639d59bffd 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredAdapter.kt @@ -7,9 +7,10 @@ import com.gh.common.constant.ItemViewType import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.databinding.CommunityQuestionItemBinding import com.gh.gamecenter.entity.SpecialColumn import com.gh.gamecenter.qa.entity.Questions -import com.gh.gamecenter.qa.newest.AskQuestionsNewViewHolder +import com.gh.gamecenter.qa.questions.CommunityQuestionViewHolder import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity class UnansweredAdapter(context: Context, @@ -27,7 +28,8 @@ class UnansweredAdapter(context: Context, FooterViewHolder(mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false)) } else -> { - AskQuestionsNewViewHolder(mLayoutInflater.inflate(R.layout.ask_questions_new_item, parent, false)) + val view = mLayoutInflater.inflate(R.layout.community_question_item, parent, false) + CommunityQuestionViewHolder(CommunityQuestionItemBinding.bind(view)) } } } @@ -37,9 +39,9 @@ class UnansweredAdapter(context: Context, } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { - if (holder is AskQuestionsNewViewHolder) { + if (holder is CommunityQuestionViewHolder) { val questions = mEntityList[position] - holder.initAskQuestionsNewViewHolder(questions) + holder.bindQuestionViewHolder(questions) holder.itemView.setOnClickListener { mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.id, mEntrance, mPath, mSpecialColumn)) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsAdapter.java index 7786a85267..2502e41176 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsAdapter.java @@ -1,7 +1,11 @@ package com.gh.gamecenter.qa.myqa; +import android.app.Activity; import android.content.Context; + import androidx.recyclerview.widget.RecyclerView; + +import android.content.Intent; import android.view.View; import android.view.ViewGroup; @@ -9,9 +13,11 @@ import com.gh.base.OnListClickListener; import com.gh.common.constant.ItemViewType; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.qa.newest.AskQuestionsNewViewHolder; +import com.gh.gamecenter.databinding.CommunityQuestionItemBinding; import com.gh.gamecenter.qa.entity.Questions; import com.gh.gamecenter.baselist.ListAdapter; +import com.gh.gamecenter.qa.questions.CommunityQuestionViewHolder; +import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity; /** * Created by khy on 20/12/17. @@ -20,10 +26,11 @@ import com.gh.gamecenter.baselist.ListAdapter; class ConcernQuestionsAdapter extends ListAdapter { private OnListClickListener mListClickListener; + private String mEntrance = ""; - - public ConcernQuestionsAdapter(Context context, OnListClickListener listClickListener) { + public ConcernQuestionsAdapter(Context context, String entrance, OnListClickListener listClickListener) { super(context); + mEntrance = entrance; mListClickListener = listClickListener; } @@ -41,8 +48,8 @@ class ConcernQuestionsAdapter extends ListAdapter { view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false); return new FooterViewHolder(view, mListClickListener); case ItemViewType.ITEM_BODY: - view = mLayoutInflater.inflate(R.layout.ask_questions_new_item, parent, false); - return new AskQuestionsNewViewHolder(view, mListClickListener); + view = mLayoutInflater.inflate(R.layout.community_question_item, parent, false); + return new CommunityQuestionViewHolder(CommunityQuestionItemBinding.bind(view)); default: return null; } @@ -52,8 +59,14 @@ class ConcernQuestionsAdapter extends ListAdapter { public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { switch (getItemViewType(position)) { case ItemViewType.ITEM_BODY: - ((AskQuestionsNewViewHolder) holder).initMyQuestionsViewHolder(mEntityList.get(position)); - + Questions questions = mEntityList.get(position); + ((CommunityQuestionViewHolder) holder).bindMyQuestionViewHolder(questions); + holder.itemView.setOnClickListener(v -> { + if (mContext instanceof Activity) { + Intent intent = QuestionsDetailActivity.getIntent(mContext, questions.getId(), mEntrance, "我的问答-关注问题", true); + ((Activity) mContext).startActivityForResult(intent, ConcernQuestionsFragment.KEY_CHECK_QUESTION_CONCERN); + } + }); break; case ItemViewType.ITEM_FOOTER: FooterViewHolder footerViewHolder = (FooterViewHolder) holder; diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsFragment.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsFragment.java index abc55b3fad..6a931c35c3 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsFragment.java @@ -13,7 +13,6 @@ import com.gh.gamecenter.baselist.LoadType; import com.gh.gamecenter.baselist.NormalListViewModel; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.qa.entity.Questions; -import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity; import com.gh.gamecenter.retrofit.RetrofitManager; import java.util.List; @@ -47,7 +46,7 @@ public class ConcernQuestionsFragment extends ListFragment { private OnListClickListener mListClickListener; + private String mEntrance = ""; - - public MyQuestionsAdapter(Context context, OnListClickListener listClickListener) { + public MyQuestionsAdapter(Context context, String entrance, OnListClickListener listClickListener) { super(context); + mEntrance = entrance; mListClickListener = listClickListener; } @@ -41,8 +46,8 @@ public class MyQuestionsAdapter extends ListAdapter { view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false); return new FooterViewHolder(view, mListClickListener); case ItemViewType.ITEM_BODY: - view = mLayoutInflater.inflate(R.layout.ask_questions_new_item, parent, false); - return new AskQuestionsNewViewHolder(view, mListClickListener); + view = mLayoutInflater.inflate(R.layout.community_question_item, parent, false); + return new CommunityQuestionViewHolder(CommunityQuestionItemBinding.bind(view)); default: return null; } @@ -52,8 +57,9 @@ public class MyQuestionsAdapter extends ListAdapter { public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { switch (getItemViewType(position)) { case ItemViewType.ITEM_BODY: - ((AskQuestionsNewViewHolder) holder).initMyQuestionsViewHolder(mEntityList.get(position)); - + Questions questions = mEntityList.get(position); + ((CommunityQuestionViewHolder) holder).bindMyQuestionViewHolder(questions); + holder.itemView.setOnClickListener(v -> mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.getId(), mEntrance, "我的光环-我的问答-我的问题"))); break; case ItemViewType.ITEM_FOOTER: FooterViewHolder footerViewHolder = (FooterViewHolder) holder; diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsFragment.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsFragment.java index ad3e8e6afd..5689ab6c99 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsFragment.java @@ -11,7 +11,6 @@ import com.gh.gamecenter.baselist.LoadType; import com.gh.gamecenter.baselist.NormalListViewModel; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.qa.entity.Questions; -import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; @@ -38,7 +37,7 @@ public class MyQuestionsFragment extends ListFragment { private OnListClickListener mListClickListener; + private String mEntrance = ""; + @Override protected boolean areItemsTheSame(Questions oldItem, Questions newItem) { return oldItem.getId().equals(newItem.getId()); } - public AskQuestionsNewBodyAdapter(Context context, OnListClickListener listClickListener) { + public AskQuestionsNewBodyAdapter(Context context, String entrance, OnListClickListener listClickListener) { super(context); + mEntrance = entrance; mListClickListener = listClickListener; } @@ -44,8 +50,8 @@ public class AskQuestionsNewBodyAdapter extends ListAdapter { view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false); return new FooterViewHolder(view, mListClickListener); case ItemViewType.ITEM_BODY: - view = mLayoutInflater.inflate(R.layout.ask_questions_new_item, parent, false); - return new AskQuestionsNewViewHolder(view, mListClickListener); + view = mLayoutInflater.inflate(R.layout.community_question_item, parent, false); + return new CommunityQuestionViewHolder(CommunityQuestionItemBinding.bind(view)); default: return null; } @@ -55,7 +61,10 @@ public class AskQuestionsNewBodyAdapter extends ListAdapter { public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { switch (getItemViewType(position)) { case ItemViewType.ITEM_BODY: - ((AskQuestionsNewViewHolder) holder).initAskQuestionsNewViewHolder(mEntityList.get(position)); + Questions questions = mEntityList.get(position); + ((CommunityQuestionViewHolder) holder).bindQuestionViewHolder(questions); + holder.itemView.setOnClickListener(v -> mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.getId(), mEntrance, "问答-问题"))); + break; case ItemViewType.ITEM_FOOTER: FooterViewHolder footerViewHolder = (FooterViewHolder) holder; diff --git a/app/src/main/java/com/gh/gamecenter/qa/newest/AskQuestionsNewBodyFragment.java b/app/src/main/java/com/gh/gamecenter/qa/newest/AskQuestionsNewBodyFragment.java index 74b4925c0c..a467051ee7 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/newest/AskQuestionsNewBodyFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/newest/AskQuestionsNewBodyFragment.java @@ -22,7 +22,6 @@ import com.gh.gamecenter.eventbus.EBTypeChange; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.qa.CommunityFragment; import com.gh.gamecenter.qa.entity.Questions; -import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity; import com.gh.gamecenter.qa.questions.edit.QuestionEditActivity; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -99,7 +98,7 @@ public class AskQuestionsNewBodyFragment extends ListFragment { - - @BindView(R.id.ask_questions_item_title) - TextView mTitle; - @BindView(R.id.ask_questions_item_answer_count) - TextView mAnswerCount; - @BindView(R.id.ask_questions_item_community_name) - TextView mCommunityName; - - public AskQuestionsNewViewHolder(View itemView) { - super(itemView); - itemView.setOnClickListener(this); - } - - public AskQuestionsNewViewHolder(View itemView, OnListClickListener listClickListener) { - super(itemView, listClickListener); - itemView.setOnClickListener(this); - } - - public void initAskQuestionsNewViewHolder(Questions questions) { - setClickData(questions); - mAnswerCount.setText(NumberUtils.transSimpleCount(questions.getAnswerCount())); - mTitle.setText(questions.getTitle()); - mCommunityName.setVisibility(View.VISIBLE); - mCommunityName.setText(NewsUtils.getFormattedTime(questions.getTime())); - } - - public void initMyQuestionsViewHolder(Questions questions) { - setClickData(questions); - mAnswerCount.setText(NumberUtils.transSimpleCount(questions.getAnswerCount())); - mTitle.setText(questions.getTitle()); - mCommunityName.setVisibility(View.VISIBLE); - mCommunityName.setText(questions.getCommunityName()); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/CommunityQuestionViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/CommunityQuestionViewHolder.kt new file mode 100644 index 0000000000..f70f600a87 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/CommunityQuestionViewHolder.kt @@ -0,0 +1,26 @@ +package com.gh.gamecenter.qa.questions + +import com.gh.base.BaseRecyclerViewHolder +import com.gh.common.util.NewsUtils +import com.gh.common.util.NumberUtils +import com.gh.gamecenter.databinding.CommunityQuestionItemBinding +import com.gh.gamecenter.qa.entity.Questions + +class CommunityQuestionViewHolder(val binding: CommunityQuestionItemBinding) : BaseRecyclerViewHolder(binding.root) { + + fun bindQuestionViewHolder(questions: Questions) { + binding.title.text = questions.title + binding.endDesc.text = NewsUtils.getFormattedTime(questions.time) + binding.answerCount.text = if (questions.answerCount>0) { + NumberUtils.transSimpleCount(questions.answerCount) + } else "回答" + } + + fun bindMyQuestionViewHolder(questions: Questions) { + binding.title.text = questions.title + binding.endDesc.text = questions.communityName + binding.answerCount.text = if (questions.answerCount>0) { + NumberUtils.transSimpleCount(questions.answerCount) + } else "回答" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsAdapter.java index ed59436dc4..9873200042 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsAdapter.java @@ -1,8 +1,11 @@ package com.gh.gamecenter.qa.recommends; +import android.app.Activity; import android.content.Context; + import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; + import android.view.View; import android.view.ViewGroup; @@ -15,9 +18,14 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.databinding.AskRecommendsItemConcernBinding; +import com.gh.gamecenter.databinding.CommunityAnswerItemBinding; import com.gh.gamecenter.manager.UserManager; +import com.gh.gamecenter.qa.answer.CommunityAnswerItemViewHolder; +import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity; +import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity; import com.gh.gamecenter.qa.entity.AnswerEntity; import com.gh.gamecenter.qa.entity.Questions; +import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity; import java.util.ArrayList; import java.util.List; @@ -75,8 +83,8 @@ public class AskQuestionsRecommendsAdapter extends ListAdapter { + if ("community_article".equals(answer.getType())) { + if (mContext instanceof Activity) { + ((Activity) mContext).startActivityForResult(ArticleDetailActivity.getRecommendsIntent(mContext, + UserManager.getInstance().getCommunity(), answer.getId(), "", + AskQuestionsRecommendsFragment.QUESTION_RECOMMEND_PATH), + AskQuestionsRecommendsFragment.RECOMMENDS_REQUEST_CODE); + } + + } else { + Questions questions = answer.getQuestions(); + mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, + questions.getId(), "", + AskQuestionsRecommendsFragment.QUESTION_RECOMMEND_PATH)); + } + }); + + binding.getRoot().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if ("community_article".equals(answer.getType())) { + if (mContext instanceof Activity) { + ((Activity) mContext).startActivityForResult(ArticleDetailActivity.getRecommendsIntent(mContext, + UserManager.getInstance().getCommunity(), answer.getId(), "", + AskQuestionsRecommendsFragment.QUESTION_RECOMMEND_PATH), + AskQuestionsRecommendsFragment.RECOMMENDS_REQUEST_CODE); + + } + } else { + ((Activity) mContext).startActivityForResult(AnswerDetailActivity.getRecommendsIntent(mContext, + answer.getId(), "", + AskQuestionsRecommendsFragment.QUESTION_RECOMMEND_PATH), + AskQuestionsRecommendsFragment.RECOMMENDS_REQUEST_CODE); + } + } + }); break; case ItemViewType.ITEM_FOOTER: FooterViewHolder footerViewHolder = (FooterViewHolder) holder; diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java index 1199d3a9b0..b7e81180e8 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java @@ -56,7 +56,7 @@ public class AskQuestionsRecommendsFragment extends ListFragment { @BindView(R.id.ask_item_usericon) diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt index 86f3a22a26..bcf2a39cd4 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt @@ -8,7 +8,9 @@ import com.gh.common.constant.ItemViewType import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.manager.UserManager +import com.gh.gamecenter.qa.answer.CommunityAnswerItemViewHolder import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity import com.gh.gamecenter.qa.entity.AnswerEntity @@ -35,8 +37,8 @@ open class RecommendNewestAdapter(context: Context) : ListAdapter( FooterViewHolder(view) } else -> { - view = mLayoutInflater.inflate(R.layout.ask_questions_hot_item, parent, false) - AskQuestionsRecommendsViewHolder(view) + view = mLayoutInflater.inflate(R.layout.community_answer_item, parent, false) + CommunityAnswerItemViewHolder(CommunityAnswerItemBinding.bind(view)) } } } @@ -48,28 +50,30 @@ open class RecommendNewestAdapter(context: Context) : ListAdapter( override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { when (getItemViewType(position)) { ItemViewType.ITEM_BODY -> { - val viewHolder = holder as AskQuestionsRecommendsViewHolder - val answerEntity = mEntityList[position] - if ("community_article" == answerEntity.type) { + val answer = mEntityList[position] + if ("community_article" == answer.type) { val questions = Questions() - questions.title = answerEntity.articleTitle - answerEntity.questions = questions + questions.title = answer.articleTitle + answer.questions = questions } - viewHolder.initQuestionsHotViewHolder(mContext, answerEntity, "", getPath()) - viewHolder.mAskTitle.setOnClickListener { - if ("community_article" == answerEntity.type) { - mContext.startActivity(ArticleDetailActivity.getIntent(mContext, UserManager.getInstance().community, answerEntity.id!!, "", getPath())) + + val answerViewHolder = holder as CommunityAnswerItemViewHolder + val binding = answerViewHolder.binding + answerViewHolder.bindAnswerItem(answer, "", getPath()) + binding.title.setOnClickListener { + if ("community_article" == answer.type) { + mContext.startActivity(ArticleDetailActivity.getIntent(mContext, UserManager.getInstance().community, answer.id!!, "", getPath())) } else { - val questions = answerEntity.questions + val questions = answer.questions mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.id, "", getPath())) } } - viewHolder.itemView.setOnClickListener { - if ("community_article" == answerEntity.type) { - mContext.startActivity(ArticleDetailActivity.getIntent(mContext, UserManager.getInstance().community, answerEntity.id!!, "", getPath())) + answerViewHolder.itemView.setOnClickListener { + if ("community_article" == answer.type) { + mContext.startActivity(ArticleDetailActivity.getIntent(mContext, UserManager.getInstance().community, answer.id!!, "", getPath())) } else { - mContext.startActivity(AnswerDetailActivity.getIntent(mContext, answerEntity.id, "", getPath())) + mContext.startActivity(AnswerDetailActivity.getIntent(mContext, answer.id, "", getPath())) } } } diff --git a/app/src/main/res/drawable-xxhdpi/community_comment_count_icon.png b/app/src/main/res/drawable-xxhdpi/community_comment_count_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0284f55406fb8c8a2a1988bf44dabf33d8959b0a GIT binary patch literal 1650 zcmV-&295cNP)Oa9v>gSHak0e&CJZq8o%G42mX9G z91blmE{1Y*b3-*XH5Yw8UpQ6suGoRDuCC4V^YaxLwF9HJVeAzNj609+hv*zCC@45m zRaG^eK;KcEv;!R-9d|D+ExnAv_d3qtAjFX=p7xxaoIQa+V9Y_)R^-_M3@;@e-U6}A z7S*EwCnT+2&Ckz&)9Z?Oa-hAveHT%G9s92IXrn82ocImJ2O1k2Pq-R@k}C)L`ueV( zoSf_pElbbXHbY8LRuf!HgwwADnHt{+(@L(1_sJesWqa$_fi-y zlQcCood*9t=KWKhlvUZp9&A>5YTwcU@_sJ^3sgn=ACWT88oZQ};GYF>Cy)7cuI=pX zyxD59I0q;ViipC)sxtHiqEoN(E>)iu{*JkxSMdpECdY7#%8T~n9H6dwS_VWFKJQ_*tA-r{GFi9&6?b!~|*7`P;BXEBG!42ejV{ti}b^p|p1ZgEy!K zlTzCLOKS&)hKA%&QS)EQnscf{Y3;!9@bET_)eag~;FRisCR7D>eQqY?7~9FS-cHAY zzkFOKQ4q>ynbx@VJEAg@Spl!c%Y5RjjC0*c6+e$QhUg!!t*!k-1@Y_vpLea;Q^B12 zUdK@*$#3zSR7@O-tC>7Izz>TbR8Y5lFXJ$jVEbNDv7y7%O+6}4`kwcIRF0I>QVqH) zrxTUUra?l>4Iob3qROBT)YsP^S9#L+?0^i4)bN&dyvSG5B6qK^nHWUB+2jfBIfbl1 zQpJ-Kj#S$Zo>^4BPxLKQH*Fl~?(Qz6wEi69wT(;epCS#Pva`!qrJG+~-k^3esm~!gyJcaS!IN|;;4v;Qu`Dxh5C4!`e zR;)#gl^@JOjE_4uO=psFK>o~|n3&i?=t$=yW zk`OSF0tOGGBiA)Y`JZ^e>%WpFzUBbn1S71iia8)cpF_8c&GwazJdRBY%CUHY6cGnf z)-(q|{gtQK4jltN@PzPqw_)_psw^G)ap}Sji3$u0 wkV;D!Eq|Tv!|B0{0<1(u<<2<^TWy07*qoM6N<$g7{7lA^-pY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/community_vote_cout_icon.png b/app/src/main/res/drawable-xxhdpi/community_vote_cout_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..af5a54b61cc684cad378aaa622186024a3d24338 GIT binary patch literal 1684 zcmV;F25b3=P)=137krqkZKy1JL+?KhKspahzmo7YZEOq{{#qL~~= z!%3o=BwC}{#M+h;tD&}=oSb|T-6ektVmne&QkG|BW#y))r*A}m1G~R<--!GcBe=l_ zj~fa!0t7$C^m))kgXr&>nVD-UD=S9~X6n|~*5a|Tv7^}EVlb)c^K)Ka-pyrYWfK~Y zR}M4+1o_7av^YCE+xKSd+O_LPlDiYa-MSA66%7s!-lwr3a-aktb4mw;%+i5@feMXj znUNVp-$5DII8(7!>p|o|2{6y!A&D_3;M0z7sVv%W0Xj5D;@ewVTCUSrymFufYHDi! zAo#mF7a=(| z9XWDjQGb8GYy{d=L^l6 z0Q>aT@$vB|Ah!+j*BdX8H=?ei9?m;Few(QSMyI*b1 zM{N)}afZM)X*`O2uCTChU1@2ld(7~NzRxgrkIU2gL#7unM7_VZ zw)W3y1~UM}*h7q$Xr6TnD;L8|sjW<@uN9VLCBP!h;86BG&P%kB$dHt?%n9nVlx~Lg zx15}ub3u>82M-=x&YZs;pG(ERT-@nwd`s-jaJcP1Q2o%>#Swf1F-Hw--GOj8{J2Y= zP6J@_1a-`Gnv1%ss_G(sKAy=}Lqo$u#D1IDdB#S#2}krcgIQ|;gU3umq#nn~qxJRm zb4uQc;j2naiA|$*1a~=FBY^RG?F|PfncH6&jJFW?fZd9dLH@9g%c3-G^HED|*2_ua z-KG3n9NiIEsSHK*77XNNZf?SvEbf)eU+Un^J;X3Aj4O-eTb|e}&`7 z(skQh%5ZRxALq4yHv!#d$?Oo;j%78@lOiWurtCKD9{mTc$DDxfbh%`v=>v>FmX1dP zomyYe2|%<=lZE^k|3B|(Y{4eLx#=2+T2FY4Mkh~#13CeB8`W)BROZkpyIh7Q!A5de z>mo1M5n#IP)MU|RM|@vnA}`1U+S=OknJ(7u1J_Ue4vY&jfuW(HhaqfDZxWg|ePjeI zBLNo3?7_vcu9Q8&##+6SR3KU`y1!k zRlaq37j2gAH6$qTq3{u=OR9D=)ASJ=D*;ITsyiazEelF87SLHn;Ty^*L_QD`*9>gC~udg%=y*P(UIBH(-Xq+ zO^)-!+`J(N^Hl4A#$#T==;&w{#20%O{|kNGg;xR*Q6YVn; zIkI~fH*JJcOuQZsbOb8_Y2)1gJj3{!V|S(0eLR`%i5A>i17b+Fuak94v`&|!4Gy9F z{QMVZi#2Toqys~l%!{q(s9&MP@)3KsI5D?Fe1fu%8#ya^aq63ZiN^D25edA2!=2RG z2A`)|-iIFIgW!JNSo{)ejHn41CoHy9-dPr~kn<>#h_z1}y8!hB?_I - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/community_answer_item.xml b/app/src/main/res/layout/community_answer_item.xml new file mode 100644 index 0000000000..52127b02a7 --- /dev/null +++ b/app/src/main/res/layout/community_answer_item.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/community_question_item.xml b/app/src/main/res/layout/community_question_item.xml new file mode 100644 index 0000000000..408ae8bc6f --- /dev/null +++ b/app/src/main/res/layout/community_question_item.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + +