首页直播房间列表刷新逻辑优化

This commit is contained in:
huangjian
2022-05-10 16:44:46 +08:00
parent e37c56631a
commit 0cd166474b
4 changed files with 28 additions and 13 deletions

View File

@@ -34,6 +34,7 @@ public class HomeConcernsAdapter extends BaseQuickAdapter<HomeRoomInfo, BaseView
if (item.getRoomUid() > 0) {
helper.setVisible(R.id.view_avatar_bg, true);
helper.setVisible(R.id.view_living, true);
helper.setVisible(R.id.tv_live, true);
if (helper.getView(R.id.view_living).getBackground() instanceof AnimationDrawable) {
((AnimationDrawable) helper.getView(R.id.view_living).getBackground()).start();
}
@@ -48,7 +49,8 @@ public class HomeConcernsAdapter extends BaseQuickAdapter<HomeRoomInfo, BaseView
});
} else {
helper.setVisible(R.id.view_avatar_bg, false);
helper.setVisible(R.id.view_living, false);
helper.setVisible(R.id.tv_live, false);
helper.setVisible(R.id.view_avatar_bg, false);
helper.itemView.setOnClickListener(v -> UserInfoActivity.Companion.start(mContext, item.getUid()));
}

View File

@@ -11,6 +11,7 @@ import com.yizhuan.erban.home.adapter.MoreSingleAnchorAdapter
import com.yizhuan.erban.ui.utils.RVDelegate
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
@@ -27,22 +28,25 @@ class RoomSingleFragment : BaseViewBindingFragment<FragmentRoomSingleBinding>()
}
}
private lateinit var adapter : MoreSingleAnchorAdapter
private lateinit var adapter: MoreSingleAnchorAdapter
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
private val pageSize = Int.MAX_VALUE
private val homeViewModel: HomeViewModel by activityViewModels()
private var lastLoadDataTime = 0L
override fun init() {
adapter = MoreSingleAnchorAdapter()
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
.setAdapter(adapter)
.setRecyclerView(binding.recyclerView)
.setRefreshLayout(binding.refreshLayout)
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无房间"))
.setLayoutManager(GridLayoutManager(mContext,2))
.setLayoutManager(GridLayoutManager(mContext, 2))
.setPageSize(pageSize)
.build()
binding.refreshLayout.setOnRefreshListener { loadData(true) }
homeViewModel.singleAnchorMoreLiveData.observe(this) {
rvDelegate.loadData(it)
}
@@ -50,10 +54,12 @@ class RoomSingleFragment : BaseViewBindingFragment<FragmentRoomSingleBinding>()
override fun onResume() {
super.onResume()
loadData(true)
loadData(false)
}
private fun loadData(isRefresh: Boolean) {
private fun loadData(isForce: Boolean) {
if (!isForce && CurrentTimeUtils.getCurrentTime() - lastLoadDataTime < 15 * 1000) return
lastLoadDataTime = CurrentTimeUtils.getCurrentTime()
homeViewModel.getMoreSingleAnchorList()
}
@@ -69,6 +75,6 @@ class RoomSingleFragment : BaseViewBindingFragment<FragmentRoomSingleBinding>()
@Subscribe(threadMode = ThreadMode.MAIN)
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
if (isResumed) loadData(true)
if (isResumed) loadData(false)
}
}

View File

@@ -1,9 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recycler_view"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingStart="9dp"
android:paddingEnd="9dp" />
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingStart="9dp"
android:paddingEnd="9dp" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

View File

@@ -44,6 +44,7 @@
android:background="@drawable/anim_concerns_living_icon" />
<TextView
android:id="@+id/tv_live"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="3dp"