From 12612f1956f3227629636bd30128aafb1279b47f Mon Sep 17 00:00:00 2001 From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com> Date: Thu, 11 Aug 2022 11:14:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20Bugs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../post/adapters/ThreadMainPostAdapter.kt | 3 ++ .../fragments/PersonalizedFeedFragment.kt | 39 +++++++----------- .../post/fragments/SearchThreadFragment.kt | 6 ++- .../res/layout/fragment_personalized_feed.xml | 41 ++++++++----------- 4 files changed, 39 insertions(+), 50 deletions(-) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/adapters/ThreadMainPostAdapter.kt b/app/src/main/java/com/huanchengfly/tieba/post/adapters/ThreadMainPostAdapter.kt index f12b3f7c..cd41879d 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/adapters/ThreadMainPostAdapter.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/adapters/ThreadMainPostAdapter.kt @@ -92,6 +92,9 @@ class ThreadMainPostAdapter( } private fun showMenu() { + if (threadPostBean == null) { + return + } val userInfoBean: ThreadContentBean.UserInfoBean = user MenuDialogFragment.newInstance(R.menu.menu_thread_item, null) .setOnNavigationItemSelectedListener { item: MenuItem -> diff --git a/app/src/main/java/com/huanchengfly/tieba/post/fragments/PersonalizedFeedFragment.kt b/app/src/main/java/com/huanchengfly/tieba/post/fragments/PersonalizedFeedFragment.kt index e6d9bcd7..d250256b 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/fragments/PersonalizedFeedFragment.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/fragments/PersonalizedFeedFragment.kt @@ -35,13 +35,9 @@ import com.huanchengfly.tieba.post.utils.ThemeUtil import com.huanchengfly.tieba.post.utils.TiebaUtil import com.huanchengfly.tieba.post.utils.Util import com.huanchengfly.tieba.post.utils.anim.animSet -import com.huanchengfly.tieba.post.widgets.ShadowLayout import com.huanchengfly.tieba.post.widgets.VideoPlayerStandard import com.scwang.smart.refresh.header.MaterialHeader import com.scwang.smart.refresh.layout.SmartRefreshLayout -import retrofit2.Call -import retrofit2.Callback -import retrofit2.Response class PersonalizedFeedFragment : BaseFragment(), PersonalizedFeedAdapter.OnRefreshListener, Refreshable, Toolbar.OnMenuItemClickListener { @@ -68,7 +64,7 @@ class PersonalizedFeedFragment : BaseFragment(), PersonalizedFeedAdapter.OnRefre lateinit var recyclerView: RecyclerView @BindView(R.id.refresh_tip) - lateinit var refreshTip: ShadowLayout + lateinit var refreshTip: View @BindView(R.id.refresh_tip_text) lateinit var refreshTipText: TextView @@ -226,27 +222,19 @@ class PersonalizedFeedFragment : BaseFragment(), PersonalizedFeedAdapter.OnRefre } private fun loadMore() { - TiebaApi.getInstance().personalized(2, page + 1) - .enqueue(object : Callback { - override fun onFailure(call: Call, t: Throwable) { - refreshLayout.finishLoadMore(false) - } - - override fun onResponse( - call: Call, - response: Response - ) { - val personalizedBean = response.body()!! - this@PersonalizedFeedFragment.personalizedBean = personalizedBean - personalizedBean.threadList?.forEachIndexed { index, threadBean -> + launchIO { + TiebaApi.getInstance().personalizedAsync(2, page + 1) + .doIfSuccess { + this@PersonalizedFeedFragment.personalizedBean = it + it.threadList?.forEachIndexed { index, threadBean -> threadBean.threadPersonalizedBean = - personalizedBean.threadPersonalized?.get(index) + it.threadPersonalized?.get(index) } val newThreadBeans: List = - personalizedBean.threadList?.filterNot { - (it.abstractBeans?.size!! > 0 && BlockUtil.needBlock(it.abstractBeans[0].text)) || BlockUtil.needBlock( - it.author?.nameShow, - it.author?.id + it.threadList?.filterNot { threadBean -> + (threadBean.abstractBeans?.size!! > 0 && BlockUtil.needBlock(threadBean.abstractBeans[0].text)) || BlockUtil.needBlock( + threadBean.author?.nameShow, + threadBean.author?.id ) }!! adapter.apply { @@ -255,7 +243,10 @@ class PersonalizedFeedFragment : BaseFragment(), PersonalizedFeedAdapter.OnRefre page += 1 refreshLayout.finishLoadMore(true) } - }) + .doIfFailure { + refreshLayout.finishLoadMore(false) + } + } } override fun onFragmentVisibleChange(isVisible: Boolean) { diff --git a/app/src/main/java/com/huanchengfly/tieba/post/fragments/SearchThreadFragment.kt b/app/src/main/java/com/huanchengfly/tieba/post/fragments/SearchThreadFragment.kt index 912b3808..669b2207 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/fragments/SearchThreadFragment.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/fragments/SearchThreadFragment.kt @@ -185,7 +185,11 @@ class SearchThreadFragment : BaseFragment(), ISearchFragment, NewSearchActivity. call: Call, response: Response ) { - val searchThreadBean = response.body()!! + val searchThreadBean = response.body() + if (searchThreadBean == null) { + refreshLayout?.finishLoadMore(false) + return + } mData = searchThreadBean.data mData!!.postList?.let { searchThreadAdapter!!.insert(it) diff --git a/app/src/main/res/layout/fragment_personalized_feed.xml b/app/src/main/res/layout/fragment_personalized_feed.xml index 485afe56..2a840a01 100644 --- a/app/src/main/res/layout/fragment_personalized_feed.xml +++ b/app/src/main/res/layout/fragment_personalized_feed.xml @@ -73,37 +73,28 @@ android:layout_marginBottom="@dimen/card_margin" /> - - - - - - + android:textColor="@color/white" + android:textSize="@dimen/text_size_refresh_tip" + android:textStyle="bold" + tools:text="更新了 12 条动态" /> + \ No newline at end of file