首页直播房间列表刷新逻辑优化
This commit is contained in:
@@ -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()));
|
||||
}
|
||||
|
||||
|
@@ -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)
|
||||
}
|
||||
}
|
@@ -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>
|
||||
|
||||
|
@@ -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"
|
||||
|
Reference in New Issue
Block a user