From f1fae2f4cc8d851cc70a1e2bc44438783de14c9c Mon Sep 17 00:00:00 2001 From: HuanChengFly <609486518@qq.com> Date: Fri, 5 Feb 2021 15:16:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E9=97=AA=E9=80=80=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tieba/post/activities/ForumActivity.kt | 2 +- .../tieba/post/api/models/ForumPageBean.kt | 2 +- .../post/fragments/SearchForumFragment.kt | 24 +++++++++---------- .../tieba/post/utils/PostListAdapterHelper.kt | 24 +++++++++++++++---- 4 files changed, 34 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/activities/ForumActivity.kt b/app/src/main/java/com/huanchengfly/tieba/post/activities/ForumActivity.kt index 2e396b6d..5824e7ed 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/activities/ForumActivity.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/activities/ForumActivity.kt @@ -401,7 +401,7 @@ class ForumActivity : BaseActivity(), View.OnClickListener, OnRefreshedListener, private fun refreshHeaderView() { if (mDataBean != null && mDataBean!!.forum != null) { headerView.visibility = View.VISIBLE - val color = getDarkerColor(greifyColor(Color.parseColor("#${mDataBean!!.forum!!.themeColor.day.commonColor}"), 0.15f), 0.1f) + val color = getDarkerColor(greifyColor(Color.parseColor("#${mDataBean?.forum?.themeColor?.day?.commonColor ?: ThemeUtils.getColorById(this, R.color.default_color_primary)}"), 0.15f), 0.1f) toolbarColor = color appbar.backgroundTintList = ColorStateList.valueOf(color) setCustomStatusColor(color) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/api/models/ForumPageBean.kt b/app/src/main/java/com/huanchengfly/tieba/post/api/models/ForumPageBean.kt index 7c4cdfda..92e369f7 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/api/models/ForumPageBean.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/api/models/ForumPageBean.kt @@ -90,7 +90,7 @@ class ForumPageBean : ErrorBean() { var threadNum: String? = null @SerializedName("theme_color") - lateinit var themeColor: ThemeColors + var themeColor: ThemeColors? = null @SerializedName("post_num") var postNum: String? = null diff --git a/app/src/main/java/com/huanchengfly/tieba/post/fragments/SearchForumFragment.kt b/app/src/main/java/com/huanchengfly/tieba/post/fragments/SearchForumFragment.kt index 082c967c..19a95364 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/fragments/SearchForumFragment.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/fragments/SearchForumFragment.kt @@ -32,10 +32,18 @@ class SearchForumFragment : BaseFragment(), ISearchFragment, OnItemClickListener lateinit var recyclerView: RecyclerView private var keyword: String? = null - private lateinit var layoutManager: VirtualLayoutManager - private lateinit var delegateAdapter: DelegateAdapter - private lateinit var exactMatchAdapter: SearchForumAdapter - private lateinit var fuzzyMatchAdapter: SearchForumAdapter + private val layoutManager: VirtualLayoutManager by lazy { VirtualLayoutManager(attachContext) } + private val delegateAdapter: DelegateAdapter by lazy { DelegateAdapter(layoutManager) } + private val exactMatchAdapter: SearchForumAdapter by lazy { + SearchForumAdapter(attachContext).apply { + setOnItemClickListener(this@SearchForumFragment) + } + } + private val fuzzyMatchAdapter: SearchForumAdapter by lazy { + SearchForumAdapter(attachContext).apply { + setOnItemClickListener(this@SearchForumFragment) + } + } private var mData: SearchForumBean.DataBean? = null override fun setKeyword( @@ -62,14 +70,6 @@ class SearchForumFragment : BaseFragment(), ISearchFragment, OnItemClickListener if (arguments != null) { keyword = requireArguments().getString(ARG_KEYWORD) } - layoutManager = VirtualLayoutManager(attachContext) - delegateAdapter = DelegateAdapter(layoutManager) - exactMatchAdapter = SearchForumAdapter(attachContext).apply { - setOnItemClickListener(this@SearchForumFragment) - } - fuzzyMatchAdapter = SearchForumAdapter(attachContext).apply { - setOnItemClickListener(this@SearchForumFragment) - } } public override fun getLayoutId(): Int { diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/PostListAdapterHelper.kt b/app/src/main/java/com/huanchengfly/tieba/post/utils/PostListAdapterHelper.kt index b4a73dc0..75fcd1d6 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/PostListAdapterHelper.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/PostListAdapterHelper.kt @@ -65,12 +65,18 @@ class PostListAdapterHelper( if (postListItemBeans != null) { for (postListItemBean in postListItemBeans) { val photoViewBeans: MutableList = ArrayList() - for (contentBean in postListItemBean.content!!) { + if (postListItemBean.content.isNullOrEmpty() || postListItemBean.floor == null) { + continue + } + for (contentBean in postListItemBean.content) { if (contentBean.type == "3") { + if (contentBean.originSrc == null) { + continue + } val url = ImageUtil.getUrl( context, true, - contentBean.originSrc!!, + contentBean.originSrc, contentBean.bigCdnSrc, contentBean.cdnSrcActive, contentBean.cdnSrc @@ -78,8 +84,18 @@ class PostListAdapterHelper( if (url.isNullOrEmpty()) { continue } - photoViewBeans.add(PhotoViewBean(url, - ImageUtil.getNonNullString(contentBean.originSrc, contentBean.bigCdnSrc, contentBean.cdnSrcActive, contentBean.cdnSrc), "1" == contentBean.isLongPic)) + photoViewBeans.add( + PhotoViewBean( + url, + ImageUtil.getNonNullString( + contentBean.originSrc, + contentBean.bigCdnSrc, + contentBean.cdnSrcActive, + contentBean.cdnSrc + ), + "1" == contentBean.isLongPic + ) + ) } } photoViewBeansMap[Integer.valueOf(postListItemBean.floor!!)] = photoViewBeans