对接社区推荐Tab的接口

This commit is contained in:
lyr
2021-06-09 16:26:04 +08:00
parent daece9337c
commit b96104fcd9
4 changed files with 47 additions and 4 deletions

View File

@ -4,12 +4,14 @@ import android.content.Context
import android.graphics.Color
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.gh.base.BaseActivity
import com.gh.common.constant.ItemViewType
import com.gh.common.syncpage.ISyncAdapterHandler
import com.gh.common.util.MtaHelper
import com.gh.common.util.dip2px
import com.gh.common.util.goneIf
import com.gh.gamecenter.R
import com.gh.gamecenter.adapter.viewholder.FooterViewHolder
@ -18,6 +20,8 @@ import com.gh.gamecenter.databinding.CommunityAnswerItemBinding
import com.gh.gamecenter.entity.CommunityEntity
import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity
import com.gh.gamecenter.qa.entity.ArticleEntity
import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity
import com.gh.gamecenter.qa.video.detail.ForumVideoDetailActivity
class ForumArticleListAdapter(context: Context, val mEntrance: String, val path: String) : ListAdapter<ArticleEntity>(context), ISyncAdapterHandler {
@ -55,6 +59,11 @@ class ForumArticleListAdapter(context: Context, val mEntrance: String, val path:
val viewHolder = holder as ForumArticleAskItemViewHolder
val articleEntity = mEntityList[position]
articleEntity.community = CommunityEntity(articleEntity.bbs.id, articleEntity.bbs.name)
if (articleEntity.type == "bbs_article") articleEntity.type = "community_article"
if (articleEntity.type == "bbs_question") articleEntity.type = "question"
if (articleEntity.type == "bbs_video") articleEntity.type = "video"
viewHolder.binding.run {
topLine.goneIf(position == 0)
contentContainer.setBackgroundColor(Color.TRANSPARENT)
@ -63,9 +72,41 @@ class ForumArticleListAdapter(context: Context, val mEntrance: String, val path:
includeVoteAndComment.voteCountContainer.setBackgroundColor(Color.TRANSPARENT)
}
viewHolder.bindForumArticleItem(articleEntity, mEntrance, path)
if (articleEntity.type == "question") {
if (articleEntity.count.answer > 0) {
viewHolder.commentCount.text = articleEntity.count.answer.toString()
} else {
viewHolder.commentCount.text = "回答"
}
viewHolder.commentCount.setCompoundDrawablesWithIntrinsicBounds(ContextCompat.getDrawable(mContext, R.drawable.community_comment_count), null, null, null)
viewHolder.voteCountContainer.visibility = View.GONE
val params = viewHolder.binding.includeVoteAndComment.root.layoutParams as LinearLayout.LayoutParams
params.width = 80f.dip2px()
viewHolder.binding.includeVoteAndComment.root.layoutParams = params
} else {
viewHolder.voteCountContainer.visibility = View.VISIBLE
val params = viewHolder.binding.includeVoteAndComment.root.layoutParams as LinearLayout.LayoutParams
params.width = 160f.dip2px()
viewHolder.binding.includeVoteAndComment.root.layoutParams = params
}
viewHolder.itemView.setOnClickListener {
MtaHelper.onEvent("论坛首页", viewHolder.getKey(BaseActivity.mergeEntranceAndPath(mEntrance, path)), "${articleEntity.title}${articleEntity.id}")
mContext.startActivity(ArticleDetailActivity.getIntent(mContext, articleEntity.community, articleEntity.id, "", path))
when (articleEntity.type) {
"community_article" -> {
MtaHelper.onEvent("论坛首页", viewHolder.getKey(BaseActivity.mergeEntranceAndPath(mEntrance, path)), "${articleEntity.title}${articleEntity.id}")
mContext.startActivity(ArticleDetailActivity.getIntent(mContext, articleEntity.community, articleEntity.id, "", path))
}
"video" -> {
MtaHelper.onEvent("论坛首页", viewHolder.getKey(BaseActivity.mergeEntranceAndPath(mEntrance, path)), "${articleEntity.title}${articleEntity.id}")
mContext.startActivity(ForumVideoDetailActivity.getIntent(mContext, articleEntity.id ?:""))
}
else -> {
MtaHelper.onEvent("论坛首页", viewHolder.getKey(BaseActivity.mergeEntranceAndPath(mEntrance, path)), "${articleEntity.title}${articleEntity.id}")
mContext.startActivity(NewQuestionDetailActivity.getIntent(mContext, articleEntity.id
?: "", mEntrance, path))
}
}
}
}

View File

@ -37,6 +37,7 @@ class ForumArticleListFragment : LazyListFragment<ArticleEntity, ForumArticleLis
private var mPath = ""
private var mIsFirst = true
private var mHaveLoadLoginData = false
private var mIsLogin = false
override fun getRealLayoutId() = R.layout.fragment_forum_list
@ -45,7 +46,7 @@ class ForumArticleListFragment : LazyListFragment<ArticleEntity, ForumArticleLis
val factory = UserViewModel.Factory(requireActivity().application)
mUserViewModel = ViewModelProviders.of(this, factory)[UserViewModel::class.java]
mUserViewModel?.loginObsUserinfo?.observe(this, Observer {
if (it?.data != null && !mHaveLoadLoginData) {
if (it?.data != null && !mHaveLoadLoginData && !mIsLogin) {
onRefresh()
}
})
@ -97,6 +98,7 @@ class ForumArticleListFragment : LazyListFragment<ArticleEntity, ForumArticleLis
override fun onFragmentResume() {
super.onFragmentResume()
mIsLogin = CheckLoginUtils.isLogin()
if (mIsFirst) {
mIsFirst = false
} else {

View File

@ -28,6 +28,7 @@ class ForumArticleListViewModel(application: Application) : ListViewModel<Articl
var videoList = listOf<ForumVideoEntity>()
init {
setOverLimitSize(0)
getRecordForums()
}

View File

@ -133,7 +133,6 @@ class ForumContentSearchListAdapter(context: Context, val mListViewModel: ForumC
params.width = 160f.dip2px()
answerViewHolder.binding.includeVoteAndComment.root.layoutParams = params
}
} else {
val forumSearchHolder = holder as ForumSearchContentListViewHolder
if (answer.type == "video") {