feat:删除首页历史无用代码
feat:调整首页刷新机制(去掉定时刷新任务、改为每次可见刷新) feat:完善首页-我的-房间信息展示
This commit is contained in:
@@ -91,7 +91,6 @@ import com.chwl.core.channel_page.model.ChannelPageModel;
|
||||
import com.chwl.core.community.event.SquareTaskEvent;
|
||||
import com.chwl.core.community.event.UnReadCountEvent;
|
||||
import com.chwl.core.home.bean.MainTabType;
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent;
|
||||
import com.chwl.core.home.event.VisitorUnreadCountEvent;
|
||||
import com.chwl.core.home.model.GameHomeModel;
|
||||
import com.chwl.core.home.model.HomeModel;
|
||||
@@ -126,10 +125,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
@@ -252,11 +247,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
EventBus.getDefault().register(this);
|
||||
otherModelInit();
|
||||
|
||||
Observable.interval(60, TimeUnit.SECONDS)
|
||||
.compose(bindToLifecycle())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(aLong -> EventBus.getDefault().post(new RefreshHomeDataEvent()));
|
||||
|
||||
homeViewModel.getAnchorInfoLiveData().observe(this, anchorInfo -> {
|
||||
if (anchorInfo != null) {
|
||||
anchorCardView.setAnchorInfo(anchorInfo);
|
||||
|
22
app/src/main/java/com/chwl/app/home/HomeMeViewModel.kt
Normal file
22
app/src/main/java/com/chwl/app/home/HomeMeViewModel.kt
Normal file
@@ -0,0 +1,22 @@
|
||||
package com.chwl.app.home
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.chwl.app.base.BaseViewModel
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.room.bean.RoomInfo
|
||||
import com.chwl.core.room.model.AvRoomModel
|
||||
|
||||
class HomeMeViewModel : BaseViewModel() {
|
||||
|
||||
val roomInfoLiveData = MutableLiveData<RoomInfo>()
|
||||
|
||||
fun getMyRoomInfo() {
|
||||
addDisposable(
|
||||
AvRoomModel.get().requestRoomInfo(AuthModel.get().currentUid.toString())
|
||||
.subscribe({
|
||||
roomInfoLiveData.postValue(it)
|
||||
}, {
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
@@ -1,184 +0,0 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chwl.app.application.IReportConstants
|
||||
import com.chwl.app.application.ReportManager
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.avroom.dialog.CreateRoomDialog
|
||||
import com.chwl.app.base.BaseActivity
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.FragmentAccompanyBinding
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.HomeChatAdapter
|
||||
import com.chwl.app.home.adapter.RoomNewFriendsAdapter
|
||||
import com.chwl.app.home.helper.OpenRoomHelper
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent
|
||||
import com.chwl.core.room.event.RoomShieldEvent
|
||||
import com.chwl.core.user.UserModel
|
||||
import com.chwl.core.user.bean.UserInfo
|
||||
import com.chwl.core.user.event.LoginUserInfoUpdateEvent
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
/**
|
||||
首页
|
||||
*/
|
||||
class AccompanyFragment : BaseViewBindingFragment<FragmentAccompanyBinding>() {
|
||||
private lateinit var charAdapter: HomeChatAdapter
|
||||
private lateinit var roomNewFriendsAdapter: RoomNewFriendsAdapter
|
||||
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
|
||||
private lateinit var rvDelegate: RVDelegate<UserInfo>
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private var isShield = false
|
||||
|
||||
override fun init() {
|
||||
initRefreshView()
|
||||
initChatTab()
|
||||
initHotRoomTab()
|
||||
showGameGuide()
|
||||
|
||||
binding.ivGameGuide.setOnClickListener {
|
||||
//首页_扩列聊天-创建游戏房
|
||||
ReportManager.get().reportEvent(
|
||||
IReportConstants.MODULE_HOMEPAGE_CLICK, mapOf(
|
||||
Pair(IReportConstants.HOMEPAGE_TYPE, IReportConstants.NINE),
|
||||
Pair(IReportConstants.MODULE, IReportConstants.MOLISTAR_HOMEPAGE)
|
||||
)
|
||||
)
|
||||
CreateRoomDialog().apply { setGameVisible() }.show(context)
|
||||
}
|
||||
}
|
||||
|
||||
private fun initRefreshView() {
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
binding.refreshLayout.finishRefresh()
|
||||
EventBus.getDefault().post(RefreshHomeDataEvent())
|
||||
}
|
||||
binding.refreshLayout.isEnableLoadmore = false
|
||||
binding.refreshLayout.isEnableOverScrollBounce = false
|
||||
}
|
||||
|
||||
private fun initChatTab() {
|
||||
charAdapter = HomeChatAdapter()
|
||||
charAdapter.onItemClickListener =
|
||||
BaseQuickAdapter.OnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int ->
|
||||
val homePlayInfo: HomeRoomInfo? = charAdapter.getItem(position)
|
||||
if (homePlayInfo != null) {
|
||||
//首页_扩列聊天-用户房间
|
||||
ReportManager.get().reportEvent(
|
||||
IReportConstants.MODULE_HOMEPAGE_CLICK, mapOf(
|
||||
Pair(IReportConstants.HOMEPAGE_TYPE, IReportConstants.SEVEN),
|
||||
Pair(IReportConstants.MODULE, IReportConstants.MOLISTAR_HOMEPAGE)
|
||||
)
|
||||
)
|
||||
AVRoomActivity.startForFromType(
|
||||
mContext,
|
||||
homePlayInfo.uid,
|
||||
AVRoomActivity.FROM_TYPE_RECOMMEND
|
||||
)
|
||||
}
|
||||
}
|
||||
binding.mRecyclerChat.adapter = charAdapter
|
||||
binding.mLiCreateRoom.setOnClickListener {
|
||||
//首页_扩列聊天-创建普通房
|
||||
ReportManager.get().reportEvent(
|
||||
IReportConstants.MODULE_HOMEPAGE_CLICK, mapOf(
|
||||
Pair(IReportConstants.HOMEPAGE_TYPE, IReportConstants.EIGHT),
|
||||
Pair(IReportConstants.MODULE, IReportConstants.MOLISTAR_HOMEPAGE)
|
||||
)
|
||||
)
|
||||
OpenRoomHelper.openRoom(context as BaseActivity?)
|
||||
}
|
||||
homeViewModel.homePlayInfoData.observe(this) {
|
||||
it?.let {
|
||||
if (it.isNotEmpty()) {
|
||||
binding.mLiCreateRoom.visibility = View.GONE
|
||||
binding.nsHost.visibility = View.VISIBLE
|
||||
charAdapter.setNewData(it)
|
||||
} else {
|
||||
binding.mLiCreateRoom.visibility = View.VISIBLE
|
||||
binding.nsHost.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun initHotRoomTab() {
|
||||
roomNewFriendsAdapter = RoomNewFriendsAdapter()
|
||||
rvDelegate = RVDelegate.Builder<UserInfo>()
|
||||
.setAdapter(roomNewFriendsAdapter)
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyTextView(context, "暂无新朋友"))
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.build()
|
||||
homeViewModel.newFriendLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLazyLoad() {
|
||||
super.onLazyLoad()
|
||||
loadData()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (isShield) {
|
||||
loadData()
|
||||
isShield = false
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData() {
|
||||
homeViewModel.getHomePlayV2()
|
||||
homeViewModel.getNewFriendList()
|
||||
}
|
||||
|
||||
private fun showGameGuide(){
|
||||
val userInfo = UserModel.get().cacheLoginUserInfo
|
||||
if (userInfo?.isHasPermitRoom == true) {
|
||||
binding.ivGameGuide.visibility = View.GONE
|
||||
} else {
|
||||
binding.ivGameGuide.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onLoginUserInfoUpdateEvent(event: LoginUserInfoUpdateEvent?) {
|
||||
showGameGuide()
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) {
|
||||
loadData()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomShieldEvent(event: RoomShieldEvent?) {
|
||||
isShield = true
|
||||
}
|
||||
|
||||
}
|
@@ -43,7 +43,7 @@ class ContactsListFragment : BaseViewBindingFragment<FragmentContactListBinding>
|
||||
private val viewModel: HomeMessageViewModel by activityViewModels()
|
||||
private val publicChatAdapter = PublicChatLaneAdapter(ArrayList())
|
||||
|
||||
private val stateHelper = FragmentVisibleStateHelper(this) {
|
||||
private val stateHelper = FragmentVisibleStateHelper(this).start {
|
||||
onVisibleChanged(it)
|
||||
}
|
||||
companion object {
|
||||
|
@@ -8,7 +8,6 @@ import com.chwl.app.R
|
||||
import com.chwl.app.application.IReportConstants
|
||||
import com.chwl.app.application.ReportManager
|
||||
import com.chwl.app.avroom.adapter.CommonVPAdapter
|
||||
import com.chwl.app.avroom.adapter.RoomMessageIndicatorAdapter
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.databinding.FragmentHomeBinding
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
|
@@ -2,10 +2,10 @@ package com.chwl.app.home.fragment
|
||||
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.application.IReportConstants
|
||||
@@ -16,6 +16,7 @@ import com.chwl.app.databinding.FragmentHomeRecommendBinding
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.HomeBannerAdapter
|
||||
import com.chwl.app.home.dialog.RecommendRoomDialog
|
||||
import com.chwl.app.support.FragmentVisibleStateHelper
|
||||
import com.chwl.app.ui.search.SearchActivity
|
||||
import com.chwl.app.ui.user.adapter.HomeRecommendIndicatorAdapter
|
||||
import com.chwl.app.ui.utils.load
|
||||
@@ -27,22 +28,15 @@ import com.chwl.app.utils.CommonJumpHelper
|
||||
import com.chwl.core.DemoCache
|
||||
import com.chwl.core.home.bean.BannerInfo
|
||||
import com.chwl.core.home.bean.HomeTagInfo
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent
|
||||
import com.chwl.library.utils.ListUtils
|
||||
import com.example.lib_utils.ktx.getDrawableById
|
||||
import com.zhpan.bannerview.BannerViewPager
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
/**
|
||||
首页
|
||||
*/
|
||||
class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBinding>(),
|
||||
View.OnClickListener,
|
||||
HomeRecommendIndicatorAdapter.OnItemSelectListener {
|
||||
|
||||
private val TAB_ID_RECOMMEND = Int.MAX_VALUE - 1
|
||||
|
||||
private val TAB_ID_ACCOMPANY = Int.MAX_VALUE - 2
|
||||
View.OnClickListener {
|
||||
|
||||
private val tabList = mutableListOf<HomeTagInfo>()
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
@@ -64,7 +58,9 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
// binding.ivMyRoom.setOnClickListener(this)
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
it.finishRefresh()
|
||||
EventBus.getDefault().post(RefreshHomeDataEvent())
|
||||
childFragmentManager.fragments.forEach {
|
||||
(it as? OnRefreshListener)?.onRefresh()
|
||||
}
|
||||
homeViewModel.getBannerInfo()
|
||||
if (binding.viewPager.adapter?.itemCount == 0) {
|
||||
homeViewModel.getHomeTagInfo()
|
||||
@@ -185,18 +181,8 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
|
||||
override fun createFragment(position: Int): Fragment {
|
||||
val itemId = getItemId(position)
|
||||
return when (itemId) {
|
||||
TAB_ID_RECOMMEND.toLong() -> {
|
||||
RecommendFragment()
|
||||
}
|
||||
|
||||
TAB_ID_ACCOMPANY.toLong() -> {
|
||||
AccompanyFragment()
|
||||
}
|
||||
|
||||
else -> {
|
||||
return HomeTabFragment.newInstance(itemId.toInt())
|
||||
}
|
||||
return HomeTabFragment.newInstance(itemId.toInt()).apply {
|
||||
autoRefreshOnVisible = true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -253,6 +239,4 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
tabList.clear()
|
||||
}
|
||||
|
||||
override fun onItemSelect(position: Int, view: TextView?) {
|
||||
}
|
||||
}
|
@@ -0,0 +1,85 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.HomeHotAdapter
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.HomeTabFragmentBinding
|
||||
|
||||
/**
|
||||
* 收藏
|
||||
*/
|
||||
class HomeRoomCollectListFragment : BaseViewBindingFragment<HomeTabFragmentBinding>() {
|
||||
|
||||
private lateinit var roomHotAdapter: HomeHotAdapter
|
||||
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private val homeViewModel: HomeViewModel by viewModels()
|
||||
|
||||
private var pageNum = 1
|
||||
private var tabId: Int? = null
|
||||
companion object {
|
||||
fun newInstance(tabId: Int): HomeRoomCollectListFragment {
|
||||
return HomeRoomCollectListFragment().apply {
|
||||
arguments = Bundle().apply {
|
||||
putInt("tabId", tabId)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
override fun init() {
|
||||
tabId = arguments?.getInt("tabId")
|
||||
initHotRoomTab()
|
||||
}
|
||||
|
||||
private fun initHotRoomTab() {
|
||||
roomHotAdapter = HomeHotAdapter()
|
||||
roomHotAdapter.onItemClickListener =
|
||||
BaseQuickAdapter.OnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int ->
|
||||
val homePlayInfo: HomeRoomInfo? = roomHotAdapter.getItem(position)
|
||||
if (homePlayInfo != null) {
|
||||
//首页_房间派对
|
||||
AVRoomActivity.start(mContext, homePlayInfo.uid)
|
||||
}
|
||||
}
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setPageSize(20)
|
||||
.setAdapter(roomHotAdapter)
|
||||
.setRecyclerView(binding.mRecyclerRoom)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyTextViewHeight(context, getString(R.string.data_empty)))
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.build()
|
||||
|
||||
roomHotAdapter.setOnLoadMoreListener({
|
||||
loadData(false)
|
||||
}, binding.mRecyclerRoom)
|
||||
|
||||
homeViewModel.tabHomeLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLazyLoad() {
|
||||
super.onLazyLoad()
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
private fun loadData(isRefresh: Boolean) {
|
||||
if (isRefresh) {
|
||||
pageNum = 1
|
||||
} else {
|
||||
pageNum++
|
||||
}
|
||||
homeViewModel.getHomeTabName(tabId ?: 0, pageNum)
|
||||
}
|
||||
}
|
@@ -0,0 +1,85 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.HomeHotAdapter
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.HomeTabFragmentBinding
|
||||
|
||||
/**
|
||||
* 最近访问记录
|
||||
*/
|
||||
class HomeRoomHistoryListFragment : BaseViewBindingFragment<HomeTabFragmentBinding>() {
|
||||
|
||||
private lateinit var roomHotAdapter: HomeHotAdapter
|
||||
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private val homeViewModel: HomeViewModel by viewModels()
|
||||
|
||||
private var pageNum = 1
|
||||
private var tabId: Int? = null
|
||||
companion object {
|
||||
fun newInstance(tabId: Int): HomeRoomHistoryListFragment {
|
||||
return HomeRoomHistoryListFragment().apply {
|
||||
arguments = Bundle().apply {
|
||||
putInt("tabId", tabId)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
override fun init() {
|
||||
tabId = arguments?.getInt("tabId")
|
||||
initHotRoomTab()
|
||||
}
|
||||
|
||||
private fun initHotRoomTab() {
|
||||
roomHotAdapter = HomeHotAdapter()
|
||||
roomHotAdapter.onItemClickListener =
|
||||
BaseQuickAdapter.OnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int ->
|
||||
val homePlayInfo: HomeRoomInfo? = roomHotAdapter.getItem(position)
|
||||
if (homePlayInfo != null) {
|
||||
//首页_房间派对
|
||||
AVRoomActivity.start(mContext, homePlayInfo.uid)
|
||||
}
|
||||
}
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setPageSize(20)
|
||||
.setAdapter(roomHotAdapter)
|
||||
.setRecyclerView(binding.mRecyclerRoom)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyTextViewHeight(context, getString(R.string.data_empty)))
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.build()
|
||||
|
||||
roomHotAdapter.setOnLoadMoreListener({
|
||||
loadData(false)
|
||||
}, binding.mRecyclerRoom)
|
||||
|
||||
homeViewModel.tabHomeLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLazyLoad() {
|
||||
super.onLazyLoad()
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
private fun loadData(isRefresh: Boolean) {
|
||||
if (isRefresh) {
|
||||
pageNum = 1
|
||||
} else {
|
||||
pageNum++
|
||||
}
|
||||
homeViewModel.getHomeTabName(tabId ?: 0, pageNum)
|
||||
}
|
||||
}
|
@@ -3,9 +3,8 @@ package com.chwl.app.home.fragment
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
@@ -13,21 +12,16 @@ import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.HomeHotAdapter
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.app.application.IReportConstants
|
||||
import com.chwl.app.application.ReportManager
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.HomeTabFragmentBinding
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent
|
||||
import com.chwl.core.room.event.RoomShieldEvent
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
import com.chwl.app.support.FragmentVisibleStateHelper
|
||||
|
||||
/**
|
||||
* Peko首页
|
||||
* 首页-房间列表
|
||||
*/
|
||||
class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>() {
|
||||
class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>(),
|
||||
SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
private lateinit var roomHotAdapter: HomeHotAdapter
|
||||
|
||||
@@ -35,8 +29,7 @@ class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>() {
|
||||
|
||||
private val homeViewModel: HomeViewModel by viewModels()
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private var isShield = false
|
||||
var autoRefreshOnVisible = false
|
||||
|
||||
private var pageNum = 1
|
||||
private var tabId: Int? = null
|
||||
@@ -52,6 +45,15 @@ class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>() {
|
||||
override fun init() {
|
||||
tabId = arguments?.getInt("tabId")
|
||||
initHotRoomTab()
|
||||
if (autoRefreshOnVisible) {
|
||||
FragmentVisibleStateHelper(this).apply {
|
||||
start {
|
||||
if (it && !isFirstVisible) {
|
||||
loadData(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun initHotRoomTab() {
|
||||
@@ -86,14 +88,6 @@ class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>() {
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (isShield) {
|
||||
loadData(true)
|
||||
isShield = false
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData(isRefresh: Boolean) {
|
||||
if (isRefresh) {
|
||||
pageNum = 1
|
||||
@@ -103,26 +97,9 @@ class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>() {
|
||||
homeViewModel.getHomeTabName(tabId ?: 0, pageNum)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
override fun onRefresh() {
|
||||
if (isResumed) {
|
||||
loadData(true)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomShieldEvent(event: RoomShieldEvent?) {
|
||||
isShield = true
|
||||
}
|
||||
|
||||
}
|
@@ -1,220 +0,0 @@
|
||||
package com.chwl.app.home.fragment;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Bundle;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.application.IReportConstants;
|
||||
import com.chwl.app.application.ReportManager;
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity;
|
||||
import com.chwl.app.base.BaseFragment;
|
||||
import com.chwl.app.home.adapter.HomeTopAdapter;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.chwl.core.home.bean.HomeTabMapInfo;
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent;
|
||||
import com.chwl.core.home.model.GameHomeModel;
|
||||
import com.chwl.core.room.event.RoomShieldEvent;
|
||||
import com.chwl.core.utils.net.RxHelper;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.zhpan.bannerview.BannerViewPager;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class HomeTabHomeFragment extends BaseFragment {
|
||||
private static final Comparator<HomeTabMapInfo> comp = (o1, o2) -> {
|
||||
int seq = o1.getSeq() - o2.getSeq();
|
||||
return Integer.compare(seq, 0);
|
||||
};
|
||||
|
||||
private BannerViewPager<HomeTabMapInfo> mBanner;
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private boolean isShield = false;
|
||||
|
||||
public static HomeTabHomeFragment newInstance() {
|
||||
HomeTabHomeFragment fragment = new HomeTabHomeFragment();
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_home_room_tab;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
super.onFindViews();
|
||||
mBanner = mView.findViewById(R.id.mBanner);
|
||||
}
|
||||
|
||||
/**
|
||||
* 请求数据
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
private void getData() {
|
||||
GameHomeModel.get()
|
||||
.getHomeTabHome()
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
|
||||
.subscribe((serviceResult, throwable) -> {
|
||||
if (throwable == null) {
|
||||
if (ListUtils.isListEmpty(serviceResult)) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<HomeTabMapInfo> roomsList = new ArrayList<>(serviceResult);//未处理的数
|
||||
List<HomeTabMapInfo> randomList = new ArrayList<>();//不是置顶的
|
||||
List<HomeTabMapInfo> finalList = new ArrayList<>();//最终的6条数据
|
||||
|
||||
for (int i = 0; i < roomsList.size(); i++) {
|
||||
roomsList.get(i).setItemType(HomeTabMapInfo.TYPE_NORMAL);//对原始数据设置type
|
||||
}
|
||||
for (int i = 0; i < roomsList.size(); i++) {
|
||||
if (roomsList.get(i).isIsTop()) {
|
||||
finalList.add(roomsList.get(i));
|
||||
} else {
|
||||
randomList.add(roomsList.get(i));
|
||||
}
|
||||
}
|
||||
sortSeqRoom(finalList);
|
||||
refreshRoomData(finalList, randomList);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新数据
|
||||
*/
|
||||
private void refreshRoomData(List<HomeTabMapInfo> finalList, List<HomeTabMapInfo> randomList) {
|
||||
List<HomeTabMapInfo> finalList1 = new ArrayList<>(finalList);//最终的6条数据
|
||||
List<HomeTabMapInfo> randomList1 = new ArrayList<>(randomList);//不是置顶的
|
||||
mBanner.setAdapter(new HomeTopAdapter());
|
||||
mBanner.post(() -> {
|
||||
int width = UIUtil.getScreenWidth(mContext) - (UIUtil.dip2px(mContext, 10) * 3);
|
||||
int revealWidth = width / 3;
|
||||
ViewGroup.LayoutParams bannerLayoutParams = mBanner.getLayoutParams();
|
||||
bannerLayoutParams.height = revealWidth + UIUtil.dip2px(mContext, 32);
|
||||
mBanner.setLayoutParams(bannerLayoutParams);
|
||||
setupBanner(
|
||||
revealWidth,
|
||||
revealWidth,
|
||||
getConvertData(finalList1, randomList1)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
private void setupBanner(
|
||||
int leftRevealWidth,
|
||||
int rightRevealWidth,
|
||||
List<HomeTabMapInfo> list
|
||||
) {
|
||||
mBanner.setPageMargin(UIUtil.dip2px(mContext, 10))
|
||||
.setScrollDuration(800)
|
||||
.setRevealWidth(leftRevealWidth, rightRevealWidth)
|
||||
.setOnPageClickListener((clickedView, position) -> {
|
||||
//首页_热门房间
|
||||
HashMap<String, Object> map = new HashMap<>(3);
|
||||
map.put(IReportConstants.HOMEPAGE_TYPE, IReportConstants.FIVE);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.MOLISTAR_HOMEPAGE);
|
||||
ReportManager.get().reportEvent(IReportConstants.MODULE_HOMEPAGE_CLICK, map);
|
||||
AVRoomActivity.startForFromType(mContext, list.get(position).getRoomUid(), AVRoomActivity.FROM_TYPE_RECOMMEND);
|
||||
})
|
||||
.create(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 转化房间数组,不足6的加上虚位以待
|
||||
*
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
private List<HomeTabMapInfo> getConvertData(List<HomeTabMapInfo> finalList, List<HomeTabMapInfo> randomList) {
|
||||
List<HomeTabMapInfo> finalList1 = new ArrayList<>(finalList);//最终的6条数据
|
||||
List<HomeTabMapInfo> randomList1 = new ArrayList<>(randomList);//不是置顶的
|
||||
int ROOM_COUNT = 6;//首页显示6条数据
|
||||
randomList1 = randomList(randomList1);
|
||||
finalList1.addAll(randomList1);
|
||||
|
||||
if (finalList1.size() >= ROOM_COUNT) {
|
||||
finalList1 = finalList1.subList(0, ROOM_COUNT);
|
||||
}
|
||||
return finalList1;
|
||||
}
|
||||
|
||||
/**
|
||||
* **************************** 排序 ***********************************
|
||||
*/
|
||||
private void sortSeqRoom(List<HomeTabMapInfo> list) {
|
||||
if (list.size() == 0) {
|
||||
return;
|
||||
}
|
||||
Collections.sort(list, comp);
|
||||
}
|
||||
|
||||
private List<HomeTabMapInfo> randomList(List<HomeTabMapInfo> sourceList) {
|
||||
if (sourceList == null || sourceList.size() == 0) {
|
||||
return sourceList;
|
||||
}
|
||||
ArrayList randomList = new ArrayList(sourceList.size());
|
||||
do {
|
||||
int randomIndex = Math.abs(new Random().nextInt(sourceList.size()));
|
||||
randomList.add(sourceList.remove(randomIndex));
|
||||
} while (sourceList.size() > 0);
|
||||
return randomList;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
getData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if(isShield){
|
||||
getData();
|
||||
isShield = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onRefreshHomeDataEvent(RefreshHomeDataEvent event) {
|
||||
if (isResumed()) getData();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onRoomShieldEvent(RoomShieldEvent event){
|
||||
isShield = true;
|
||||
}
|
||||
|
||||
}
|
@@ -1,53 +1,47 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.core.view.isGone
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.adapter.CommonVPAdapter
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.databinding.HomeMeFragmentBinding
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.HomeMeViewModel
|
||||
import com.chwl.app.home.helper.OpenRoomHelper
|
||||
import com.chwl.app.support.FragmentVisibleStateHelper
|
||||
import com.chwl.app.ui.user.adapter.HomeRecommendIndicatorAdapter
|
||||
import com.chwl.app.ui.utils.loadAvatar
|
||||
import com.chwl.app.ui.utils.loadImage
|
||||
import com.chwl.app.ui.widget.magicindicator.ViewPagerHelper
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
|
||||
import com.chwl.core.home.bean.HomeTagInfo
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent
|
||||
import com.example.lib_utils.ktx.getDrawableById
|
||||
import com.chwl.core.room.bean.RoomInfo
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
/**
|
||||
首页
|
||||
首页-我的
|
||||
*/
|
||||
class HomeWithMeFragment : BaseViewBindingFragment<HomeMeFragmentBinding>(),
|
||||
HomeRecommendIndicatorAdapter.OnItemSelectListener {
|
||||
class HomeWithMeFragment : BaseViewBindingFragment<HomeMeFragmentBinding>() {
|
||||
|
||||
private val TAB_ID_RECOMMEND = Int.MAX_VALUE - 1
|
||||
|
||||
private val TAB_ID_ACCOMPANY = Int.MAX_VALUE - 2
|
||||
|
||||
private val tabList = mutableListOf<HomeTagInfo>()
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
private val viewModel: HomeMeViewModel by activityViewModels()
|
||||
|
||||
override fun init() {
|
||||
initListener()
|
||||
initTab()
|
||||
homeViewModel.homeTagLiveData.observe(this) {
|
||||
loadTabList(transformTabList(it))
|
||||
initObserve()
|
||||
FragmentVisibleStateHelper(this).start {
|
||||
if (it) {
|
||||
viewModel.getMyRoomInfo()
|
||||
}
|
||||
}
|
||||
homeViewModel.getHomeTagInfo()
|
||||
}
|
||||
|
||||
private fun initListener() {
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
it.finishRefresh()
|
||||
EventBus.getDefault().post(RefreshHomeDataEvent())
|
||||
homeViewModel.getBannerInfo()
|
||||
if (binding.viewPager.adapter?.itemCount == 0) {
|
||||
homeViewModel.getHomeTagInfo()
|
||||
childFragmentManager.fragments.forEach {
|
||||
(it as? SwipeRefreshLayout.OnRefreshListener)?.onRefresh()
|
||||
}
|
||||
}
|
||||
binding.refreshLayout.isEnableLoadmore = false
|
||||
@@ -58,86 +52,59 @@ class HomeWithMeFragment : BaseViewBindingFragment<HomeMeFragmentBinding>(),
|
||||
}
|
||||
|
||||
private fun initTab() {
|
||||
binding.viewPager.adapter =
|
||||
object : FragmentStateAdapter(childFragmentManager, lifecycle) {
|
||||
override fun getItemId(position: Int): Long {
|
||||
return tabList[position].id.toLong()
|
||||
}
|
||||
|
||||
override fun containsItem(itemId: Long): Boolean {
|
||||
return tabList.firstOrNull { it.id.toLong() == itemId } != null
|
||||
}
|
||||
|
||||
override fun createFragment(position: Int): Fragment {
|
||||
val itemId = getItemId(position)
|
||||
return when (itemId) {
|
||||
TAB_ID_RECOMMEND.toLong() -> {
|
||||
RecommendFragment()
|
||||
}
|
||||
|
||||
TAB_ID_ACCOMPANY.toLong() -> {
|
||||
AccompanyFragment()
|
||||
}
|
||||
|
||||
else -> {
|
||||
return HomeTabFragment.newInstance(itemId.toInt())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int {
|
||||
return tabList.size
|
||||
}
|
||||
}
|
||||
ViewPagerHelper.bind(binding.magicIndicator, binding.viewPager)
|
||||
}
|
||||
|
||||
private fun resetTabIndicator(list: List<String>) {
|
||||
val tabList = listOf(getString(R.string.lately), getString(R.string.collect))
|
||||
val fragmentList = listOf(HomeRoomHistoryListFragment(), HomeRoomCollectListFragment())
|
||||
val commonNavigator = CommonNavigator(context)
|
||||
if (list.size <= 4) {
|
||||
commonNavigator.isAdjustMode = true
|
||||
}
|
||||
val magicIndicatorAdapter = HomeRecommendIndicatorAdapter(
|
||||
context,
|
||||
list
|
||||
tabList
|
||||
)
|
||||
magicIndicatorAdapter.setOnItemSelectListener { position, _ ->
|
||||
binding.viewPager.currentItem = position
|
||||
}
|
||||
commonNavigator.adapter = magicIndicatorAdapter
|
||||
binding.magicIndicator.navigator = commonNavigator
|
||||
val titleContainer: LinearLayout = commonNavigator.titleContainer // must after setNavigator
|
||||
titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
|
||||
titleContainer.dividerPadding = resources.getDimensionPixelOffset(R.dimen.dp_15)
|
||||
titleContainer.dividerDrawable = getDrawableById(R.drawable.home_recommend_tab_splitter)
|
||||
binding.magicIndicator.onPageSelected(binding.viewPager.currentItem)
|
||||
binding.viewPager.offscreenPageLimit = fragmentList.size
|
||||
binding.viewPager.adapter = CommonVPAdapter(
|
||||
childFragmentManager,
|
||||
lifecycle,
|
||||
fragmentList
|
||||
)
|
||||
ViewPagerHelper.bind(binding.magicIndicator, binding.viewPager)
|
||||
}
|
||||
|
||||
private fun transformTabList(list: List<HomeTagInfo>): List<HomeTagInfo> {
|
||||
return list
|
||||
}
|
||||
|
||||
private fun loadTabList(list: List<HomeTagInfo>) {
|
||||
// 预防脏数据导致fragment复用问题
|
||||
val newList = list.distinctBy {
|
||||
it.id
|
||||
private fun initObserve() {
|
||||
viewModel.roomInfoLiveData.observe(this) {
|
||||
updateRoomInfo(it)
|
||||
}
|
||||
val currentListId = tabList.joinToString { it.id.toString() }
|
||||
val newListId = newList.joinToString { it.id.toString() }
|
||||
if (currentListId == newListId) {
|
||||
return
|
||||
}
|
||||
|
||||
private fun updateRoomInfo(roomInfo: RoomInfo?) {
|
||||
binding.tvRoomName.text = roomInfo?.title
|
||||
binding.tvRoomTopic.text = roomInfo?.roomDesc
|
||||
binding.ivRoomCover.loadImage(roomInfo?.backPic ?: "")
|
||||
binding.tvOnlineNumber.text = roomInfo?.onlineNum?.toString() ?: "0"
|
||||
loadRoomUsers(null)
|
||||
}
|
||||
|
||||
private fun loadRoomUsers(list: List<String>?) {
|
||||
val avatarViewList = arrayOf(
|
||||
binding.ivRoomUser0,
|
||||
binding.ivRoomUser1,
|
||||
binding.ivRoomUser2,
|
||||
binding.ivRoomUser3,
|
||||
binding.ivRoomUser4
|
||||
)
|
||||
avatarViewList.forEachIndexed { index, imageView ->
|
||||
val item = list?.getOrNull(index)
|
||||
if (item == null) {
|
||||
imageView.setImageDrawable(null)
|
||||
imageView.isGone = true
|
||||
} else {
|
||||
imageView.loadAvatar(item)
|
||||
imageView.isVisible = true
|
||||
}
|
||||
}
|
||||
tabList.clear()
|
||||
tabList.addAll(newList)
|
||||
binding.viewPager.adapter?.notifyDataSetChanged()
|
||||
resetTabIndicator(tabList.map { it.name })
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
tabList.clear()
|
||||
}
|
||||
|
||||
override fun onItemSelect(position: Int, view: TextView?) {
|
||||
}
|
||||
}
|
@@ -136,10 +136,9 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
loadVipInfo(it)
|
||||
}
|
||||
|
||||
FragmentVisibleStateHelper(this) {
|
||||
FragmentVisibleStateHelper(this).start {
|
||||
onVisibleChanged(it)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun setCenterData(list: List<MeCenterInfo>?) {
|
||||
|
@@ -1,144 +0,0 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.widget.TextView
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import com.coorchice.library.utils.LogUtils
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.adapter.CommonVPAdapter
|
||||
import com.chwl.app.avroom.adapter.RoomVPAdapter
|
||||
import com.chwl.app.base.BaseFragment
|
||||
import com.chwl.app.databinding.FragmentPartyBinding
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.PartyMagicIndicatorAdapter
|
||||
import com.chwl.app.ui.widget.magicindicator.ViewPagerHelper
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
|
||||
import com.chwl.core.home.bean.HomeTagInfo
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
/**
|
||||
首页
|
||||
*/
|
||||
class PartyFragment : BaseFragment(), PartyMagicIndicatorAdapter.OnItemSelectListener {
|
||||
private lateinit var mBinding: FragmentPartyBinding
|
||||
private val mFragments: ArrayList<Fragment> = ArrayList()
|
||||
private val mTabInfoList: ArrayList<CharSequence> = ArrayList()
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
private var currentIndex = 1
|
||||
|
||||
companion object {
|
||||
fun newInstance(): PartyFragment {
|
||||
val args = Bundle()
|
||||
val fragment = PartyFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
override fun getRootLayoutId(): Int {
|
||||
return R.layout.fragment_party
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
override fun onFindViews() {
|
||||
mBinding = DataBindingUtil.bind(mView)!!
|
||||
}
|
||||
|
||||
override fun initiate() {
|
||||
homeViewModel.tagLiveData.observe(this) {
|
||||
it?.let {
|
||||
onGetHomeTagSuccess(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
homeViewModel.getTagInfo()
|
||||
}
|
||||
|
||||
private fun onGetHomeTagSuccess(info: List<HomeTagInfo>) {
|
||||
var changed = false
|
||||
val oldTabInfoList: List<CharSequence> = ArrayList<CharSequence>(mTabInfoList)
|
||||
for (tagInfo in info) {
|
||||
if (!oldTabInfoList.contains(tagInfo.name)) {
|
||||
changed = true
|
||||
break
|
||||
}
|
||||
}
|
||||
//只有HomeTagInfo发生改变才刷新数据
|
||||
if (changed) {
|
||||
LogUtils.e("$changed:oldTabInfoList")
|
||||
mTabInfoList.clear()
|
||||
mFragments.clear()
|
||||
for (i in info.indices) {
|
||||
//过滤对象是空和没有标签名同时也没有子标签的情况
|
||||
var title: CharSequence?
|
||||
var fragment: Fragment?
|
||||
var name = info[i].name
|
||||
if (name != null) {
|
||||
name = name.trim { it <= ' ' }
|
||||
}
|
||||
title = name
|
||||
mTabInfoList.add(title)
|
||||
val tabId: Int = info[i].id
|
||||
fragment = when (title) {
|
||||
ResUtil.getString(R.string.home_fragment_partyfragment_01) -> {
|
||||
RoomLikeFragment.newInstance()
|
||||
}
|
||||
ResUtil.getString(R.string.home_fragment_partyfragment_02) -> {
|
||||
RoomGameFragment.newInstance()
|
||||
}
|
||||
else -> {
|
||||
RoomCommonFragment.newInstance(tabId)
|
||||
}
|
||||
}
|
||||
mFragments.add(fragment)
|
||||
}
|
||||
val commonNavigator = CommonNavigator(context)
|
||||
commonNavigator.setTitleWrapContent(false)
|
||||
commonNavigator.titleMargin = ScreenUtil.dip2px(2.0F)
|
||||
commonNavigator.setTitleGravity(Gravity.CENTER_VERTICAL)
|
||||
val magicIndicatorAdapter = PartyMagicIndicatorAdapter(mTabInfoList)
|
||||
magicIndicatorAdapter.textSize = 14
|
||||
magicIndicatorAdapter.setOnItemSelectListener(this)
|
||||
commonNavigator.adapter = magicIndicatorAdapter
|
||||
mBinding.magicIndicator.navigator = commonNavigator
|
||||
mBinding.viewPager.offscreenPageLimit = 2
|
||||
mBinding.viewPager.adapter = CommonVPAdapter(
|
||||
childFragmentManager, lifecycle,
|
||||
mFragments
|
||||
)
|
||||
ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager)
|
||||
onItemSelect(currentIndex, null)
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) homeViewModel.getTagInfo()
|
||||
}
|
||||
|
||||
override fun onItemSelect(position: Int, view: TextView?) {
|
||||
currentIndex = position
|
||||
mBinding.viewPager.currentItem = currentIndex
|
||||
}
|
||||
|
||||
}
|
@@ -1,111 +0,0 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.application.IReportConstants
|
||||
import com.chwl.app.application.ReportManager
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.FragmentRecommendBinding
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.HomeHotAdapter
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent
|
||||
import com.chwl.core.room.event.RoomShieldEvent
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
/**
|
||||
首页
|
||||
*/
|
||||
class RecommendFragment : BaseViewBindingFragment<FragmentRecommendBinding>() {
|
||||
|
||||
private lateinit var roomHotAdapter: HomeHotAdapter
|
||||
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private var isShield = false
|
||||
|
||||
override fun init() {
|
||||
initHotRoomTab()
|
||||
}
|
||||
|
||||
private fun initHotRoomTab() {
|
||||
roomHotAdapter = HomeHotAdapter()
|
||||
roomHotAdapter.onItemClickListener =
|
||||
BaseQuickAdapter.OnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int ->
|
||||
val homePlayInfo: HomeRoomInfo? = roomHotAdapter.getItem(position)
|
||||
if (homePlayInfo != null) {
|
||||
//首页_房间派对
|
||||
ReportManager.get().reportEvent(
|
||||
IReportConstants.MODULE_HOMEPAGE_CLICK, mapOf(
|
||||
Pair(IReportConstants.HOMEPAGE_TYPE, IReportConstants.TEN),
|
||||
Pair(IReportConstants.MODULE, IReportConstants.MOLISTAR_HOMEPAGE)
|
||||
)
|
||||
)
|
||||
AVRoomActivity.start(mContext, homePlayInfo.uid)
|
||||
}
|
||||
}
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(roomHotAdapter)
|
||||
.setRecyclerView(binding.mRecyclerRoom)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyTextViewHeight(context, ResUtil.getString(R.string.hot_recommend_empty)))
|
||||
.setLayoutManager(LinearLayoutManager(mContext, RecyclerView.VERTICAL, false))
|
||||
.build()
|
||||
homeViewModel.homeHotRoomLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLazyLoad() {
|
||||
super.onLazyLoad()
|
||||
loadData()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (isShield) {
|
||||
loadData()
|
||||
isShield = false
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData() {
|
||||
homeViewModel.getHotRoom()
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) {
|
||||
loadData()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomShieldEvent(event: RoomShieldEvent?) {
|
||||
isShield = true
|
||||
}
|
||||
|
||||
}
|
@@ -1,116 +0,0 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.FragmentRoomCommonBinding
|
||||
import com.chwl.app.home.RoomCommonViewModel
|
||||
import com.chwl.app.home.adapter.RoomCommonAdapter
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent
|
||||
import com.chwl.core.room.event.RoomShieldEvent
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
class RoomCommonFragment : BaseViewBindingFragment<FragmentRoomCommonBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(tabID: Int): RoomCommonFragment {
|
||||
val args = Bundle()
|
||||
args.putInt("tab_id", tabID)
|
||||
val fragment = RoomCommonFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private val tabID: Int by lazy { arguments?.getInt("tab_id") ?: -1 }
|
||||
private var pageNum: Int = 1
|
||||
private val pageSize = 20
|
||||
|
||||
private lateinit var mAdapter: RoomCommonAdapter
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private var roomCommonViewModel: RoomCommonViewModel? = null
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private var isShield = false
|
||||
|
||||
override fun init() {
|
||||
val roomCommonViewModel: RoomCommonViewModel by viewModels()
|
||||
this.roomCommonViewModel = roomCommonViewModel
|
||||
mAdapter = RoomCommonAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(mAdapter)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.setPageSize(20)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyTextView(mContext, ResUtil.getString(R.string.home_fragment_roomcommonfragment_01)))
|
||||
.setRefreshLayout(binding.refreshLayout)
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
.build()
|
||||
mAdapter.setOnItemClickListener { _, _, position ->
|
||||
mAdapter.getItem(position)?.let {
|
||||
AVRoomActivity.start(context, it.roomUid)
|
||||
}
|
||||
}
|
||||
mAdapter.setOnLoadMoreListener({
|
||||
loadData(false)
|
||||
}, binding.recyclerView)
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
loadData(true)
|
||||
}
|
||||
roomCommonViewModel.commonRoomLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onLazyLoad() {
|
||||
super.onLazyLoad()
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if(isShield){
|
||||
loadData(true)
|
||||
isShield = false
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
fun loadData(isRefresh: Boolean) {
|
||||
binding.refreshLayout.isRefreshing = isRefresh
|
||||
pageNum = if (isRefresh) 1 else (pageNum + 1)
|
||||
roomCommonViewModel?.getCommonRoom(tabID, pageNum, pageSize)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomShieldEvent(event: RoomShieldEvent?){
|
||||
isShield = true
|
||||
}
|
||||
|
||||
}
|
@@ -1,126 +0,0 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.FragmentRoomGameBinding
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.RoomGameAdapter
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent
|
||||
import com.chwl.core.room.event.RoomShieldEvent
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
class RoomGameFragment : BaseViewBindingFragment<FragmentRoomGameBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(): RoomGameFragment {
|
||||
val args = Bundle()
|
||||
val fragment = RoomGameFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private lateinit var roomHotAdapter: RoomGameAdapter
|
||||
private var page = 1
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
private val pageSize = 20
|
||||
private var homeViewModel: HomeViewModel? = null
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private var isShield = false
|
||||
|
||||
override fun init() {
|
||||
val homeViewModel: HomeViewModel by viewModels()
|
||||
this.homeViewModel = homeViewModel
|
||||
|
||||
roomHotAdapter = RoomGameAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(roomHotAdapter)
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
.setEmptyView(
|
||||
EmptyViewHelper.createEmptyTextView(
|
||||
context,
|
||||
ResUtil.getString(R.string.home_fragment_roomgamefragment_01)
|
||||
)
|
||||
)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.setRefreshLayout(binding.refreshLayout)
|
||||
.setPageSize(pageSize)
|
||||
.build()
|
||||
|
||||
roomHotAdapter.setOnLoadMoreListener({ loadData(false) }, binding.recyclerView)
|
||||
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
loadData(true)
|
||||
}
|
||||
homeViewModel.gameRoomLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
|
||||
binding.tvMatch.setOnClickListener {
|
||||
homeViewModel.fastPickGameRoom()
|
||||
}
|
||||
|
||||
homeViewModel.pickRoomLiveData.observe(this) {
|
||||
it?.let {
|
||||
AVRoomActivity.start(mContext, it.uid)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLazyLoad() {
|
||||
super.onLazyLoad()
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if(isShield){
|
||||
loadData(true)
|
||||
isShield = false
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData(isRefresh: Boolean) {
|
||||
|
||||
binding.refreshLayout.isRefreshing = isRefresh
|
||||
|
||||
if (isRefresh) {
|
||||
page = 1
|
||||
} else {
|
||||
page++
|
||||
}
|
||||
homeViewModel?.getGameRoom(page, pageSize)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomShieldEvent(event: RoomShieldEvent?){
|
||||
isShield = true
|
||||
}
|
||||
|
||||
}
|
@@ -1,154 +0,0 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.core.view.isGone
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.google.android.material.appbar.AppBarLayout
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.FragmentRoomLikeBinding
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.HomeConcernsAdapter
|
||||
import com.chwl.app.home.adapter.RoomLikeAdapter
|
||||
import com.chwl.app.ui.relation.AttentionListActivity
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.home.event.RefreshHomeDataEvent
|
||||
import com.chwl.core.room.event.RoomShieldEvent
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
|
||||
class RoomLikeFragment : BaseViewBindingFragment<FragmentRoomLikeBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(): RoomLikeFragment {
|
||||
val args = Bundle()
|
||||
val fragment = RoomLikeFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private lateinit var concernsAdapter : HomeConcernsAdapter
|
||||
private lateinit var likeRvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private lateinit var mAdapter : RoomLikeAdapter
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
private var pageNum = 1
|
||||
private val pageSize = 20
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private var isShield = false
|
||||
|
||||
override fun init() {
|
||||
|
||||
binding.appBarLayout.addOnOffsetChangedListener(
|
||||
AppBarLayout.OnOffsetChangedListener { _, verticalOffset ->
|
||||
binding.refreshLayout.isEnabled = verticalOffset == 0
|
||||
})
|
||||
concernsAdapter = HomeConcernsAdapter()
|
||||
likeRvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(concernsAdapter)
|
||||
.setRecyclerView(binding.rvLike)
|
||||
.setLayoutManager(GridLayoutManager(mContext,5, GridLayoutManager.VERTICAL, false))
|
||||
.build()
|
||||
|
||||
homeViewModel.concernsLiveData.observe(this) {
|
||||
likeRvDelegate.setNewData(it)
|
||||
val isGone = concernsAdapter.data.isNullOrEmpty()
|
||||
binding.tvMore.isGone = isGone
|
||||
binding.tvLike.isGone = isGone
|
||||
binding.rvLike.isGone = isGone
|
||||
}
|
||||
mAdapter = RoomLikeAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(mAdapter)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.setPageSize(pageSize)
|
||||
.setRefreshLayout(binding.refreshLayout)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyTextView(mContext, ResUtil.getString(R.string.home_fragment_roomlikefragment_01)))
|
||||
.setRecyclerView(binding.rvCollect)
|
||||
.build()
|
||||
|
||||
homeViewModel.collectLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
|
||||
mAdapter.setOnLoadMoreListener({
|
||||
loadData(false)
|
||||
}, binding.rvCollect)
|
||||
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
homeViewModel.emptyLiveData.observe(this) {
|
||||
it?.let {
|
||||
binding.refreshLayout.isRefreshing = false
|
||||
binding.clEmpty.isVisible = it
|
||||
binding.coordinatorLayout.isVisible = !it
|
||||
}
|
||||
}
|
||||
|
||||
binding.tvGoPlay.setOnClickListener {
|
||||
(parentFragment as PartyFragment).onItemSelect(1, null)
|
||||
}
|
||||
|
||||
binding.tvMore.setOnClickListener {
|
||||
AttentionListActivity.start(context)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onLazyLoad() {
|
||||
super.onLazyLoad()
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if(isShield){
|
||||
loadData(true)
|
||||
isShield = false
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData(isRefresh: Boolean) {
|
||||
if (isRefresh) {
|
||||
pageNum = 1
|
||||
binding.refreshLayout.isRefreshing = true
|
||||
} else {
|
||||
pageNum++
|
||||
}
|
||||
homeViewModel.getCollectRoom(pageNum, pageSize)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomShieldEvent(event: RoomShieldEvent?){
|
||||
isShield = true
|
||||
}
|
||||
|
||||
}
|
@@ -42,7 +42,7 @@ class StarFragment : BaseViewBindingFragment<StarFragmentBinding>(), MainTabCont
|
||||
private var currentUser: StarUser? = null
|
||||
|
||||
override fun init() {
|
||||
FragmentVisibleStateHelper(this) {
|
||||
FragmentVisibleStateHelper(this).start {
|
||||
onVisibleChanged(it)
|
||||
}
|
||||
initView()
|
||||
|
@@ -8,21 +8,23 @@ import androidx.lifecycle.LifecycleOwner
|
||||
import com.chwl.app.base.BaseFragment
|
||||
|
||||
class FragmentVisibleStateHelper(
|
||||
private val fragment: Fragment,
|
||||
private val onVisibleChanged: (Boolean) -> Unit
|
||||
private val fragment: Fragment
|
||||
) : LifecycleEventObserver {
|
||||
|
||||
private var onVisibleChanged: ((Boolean) -> Unit)? = null
|
||||
private var isRealVisible = false
|
||||
|
||||
private var visibleCount = 0
|
||||
val isVisible get() = isRealVisible
|
||||
val isFirstVisible get() = isVisible && visibleCount == 1
|
||||
|
||||
init {
|
||||
fun start(onVisibleChanged: (Boolean) -> Unit): FragmentVisibleStateHelper {
|
||||
this.onVisibleChanged = onVisibleChanged
|
||||
fragment.lifecycle.addObserver(this)
|
||||
(fragment as? BaseFragment)?.let {
|
||||
it.onHiddenChangedListener = Consumer<Boolean> {
|
||||
checkVisibleState()
|
||||
}
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
fun checkVisibleState() {
|
||||
@@ -32,12 +34,15 @@ class FragmentVisibleStateHelper(
|
||||
)
|
||||
if (isRealVisible != newRealVisible) {
|
||||
isRealVisible = newRealVisible
|
||||
if (newRealVisible) {
|
||||
visibleCount++
|
||||
}
|
||||
onVisibleChanged(newRealVisible)
|
||||
}
|
||||
}
|
||||
|
||||
private fun onVisibleChanged(isVisible: Boolean) {
|
||||
onVisibleChanged.invoke(isVisible)
|
||||
onVisibleChanged?.invoke(isVisible)
|
||||
}
|
||||
|
||||
override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
|
||||
|
@@ -1,109 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<data>
|
||||
|
||||
<import type="android.view.View" />
|
||||
|
||||
<variable
|
||||
name="click"
|
||||
type="android.view.View.OnClickListener" />
|
||||
|
||||
</data>
|
||||
|
||||
<com.scwang.smartrefresh.layout.SmartRefreshLayout
|
||||
android:id="@+id/refresh_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/llListChat"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/mLiCreateRoom"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/bg_home_chat"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginStart="@dimen/dp_12"
|
||||
android:src="@drawable/ic_home_chat_add" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:text="@string/create_home_play"
|
||||
android:textColor="@color/color_1F1A4E"
|
||||
android:textSize="@dimen/sp_15" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<com.chwl.app.view.NestedScrollableHost
|
||||
android:id="@+id/ns_host"
|
||||
android:visibility="gone"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/mRecyclerChat"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_4"
|
||||
android:orientation="horizontal"
|
||||
android:overScrollMode="never"
|
||||
android:paddingStart="0dp"
|
||||
android:paddingEnd="@dimen/dp_10"
|
||||
android:scrollbars="none"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
||||
|
||||
</com.chwl.app.view.NestedScrollableHost>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/ivGameGuide"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="75dp"
|
||||
android:src="@drawable/ic_game_guide"
|
||||
android:visibility="gone" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<com.chwl.library.common.widget.VpRecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:overScrollMode="never"
|
||||
android:scrollbars="none" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
|
||||
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
|
||||
</layout>
|
@@ -1,16 +0,0 @@
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<com.zhpan.bannerview.BannerViewPager
|
||||
android:id="@+id/mBanner"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="140dp"
|
||||
app:bvp_can_loop="true"
|
||||
app:bvp_auto_play="true"
|
||||
app:bvp_indicator_visibility="gone"
|
||||
app:bvp_page_style="multi_page_scale" />
|
||||
|
||||
</LinearLayout>
|
@@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/coordinator_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.chwl.app.ui.widget.magicindicator.MagicIndicator
|
||||
android:id="@+id/magic_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="7dp" />
|
||||
|
||||
<androidx.viewpager2.widget.ViewPager2
|
||||
android:id="@+id/view_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</layout>
|
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<data>
|
||||
|
||||
<import type="android.view.View" />
|
||||
|
||||
<variable
|
||||
name="click"
|
||||
type="android.view.View.OnClickListener" />
|
||||
|
||||
</data>
|
||||
|
||||
<com.chwl.library.common.widget.VpRecyclerView
|
||||
android:id="@+id/mRecyclerRoom"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingTop="@dimen/dp_12"
|
||||
android:overScrollMode="never"
|
||||
android:scrollbars="none" />
|
||||
|
||||
</layout>
|
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<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">
|
||||
|
||||
<com.chwl.library.common.widget.VpRecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="none"
|
||||
android:overScrollMode="never" />
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
@@ -1,36 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<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">
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.chwl.library.common.widget.VpRecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false" />
|
||||
|
||||
<com.chwl.library.widget.DrawableCenterTextView
|
||||
android:id="@+id/tv_match"
|
||||
android:layout_width="118dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:layout_marginBottom="35dp"
|
||||
android:background="@drawable/bg_quick_match"
|
||||
android:drawableStart="@drawable/ic_quick_match_left"
|
||||
android:gravity="center"
|
||||
android:paddingBottom="2dp"
|
||||
android:text="@string/layout_fragment_room_game_01"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_16" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
@@ -1,151 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/refresh_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/cl_empty"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="70dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/home_like_hint"
|
||||
android:textColor="#b3333333"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="68dp"
|
||||
android:src="@drawable/icon_common_failure" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="25dp"
|
||||
android:text="@string/layout_fragment_room_like_01"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_go_play"
|
||||
android:layout_width="240dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginTop="40dp"
|
||||
android:background="@drawable/common_btn_bg"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:text="@string/layout_fragment_room_like_02"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="16sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
android:id="@+id/coordinator_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/app_bar_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/transparent"
|
||||
app:elevation="0dp"
|
||||
app:layout_behavior="com.chwl.app.ui.widget.AppBarLayoutBehavior">
|
||||
|
||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:contentScrim="@color/transparent"
|
||||
app:layout_scrollFlags="scroll|enterAlwaysCollapsed">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_like"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:text="@string/layout_fragment_room_like_03"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_more"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:text="@string/layout_fragment_room_like_04"
|
||||
android:textColor="#b3333333"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_like"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/tv_like"
|
||||
app:drawableRightCompat="@drawable/arrow_right" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_like"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:clipToPadding="true"
|
||||
android:paddingStart="11dp"
|
||||
android:paddingEnd="11dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_like" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_collect"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/layout_fragment_room_like_05"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/rv_like"
|
||||
app:layout_goneMarginTop="0dp" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<com.chwl.library.common.widget.VpRecyclerView
|
||||
android:id="@+id/rv_collect"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
@@ -104,9 +104,11 @@
|
||||
android:padding="@dimen/dp_0_5"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_avatar"
|
||||
android:visibility="gone"
|
||||
app:shapeAppearance="@style/shape_circle"
|
||||
app:strokeColor="@color/white"
|
||||
app:strokeWidth="@dimen/dp_1" />
|
||||
app:strokeWidth="@dimen/dp_1"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.google.android.material.imageview.ShapeableImageView
|
||||
android:id="@+id/iv_room_user_1"
|
||||
@@ -116,9 +118,11 @@
|
||||
android:padding="@dimen/dp_0_5"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_avatar"
|
||||
android:visibility="gone"
|
||||
app:shapeAppearance="@style/shape_circle"
|
||||
app:strokeColor="@color/white"
|
||||
app:strokeWidth="@dimen/dp_1" />
|
||||
app:strokeWidth="@dimen/dp_1"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.google.android.material.imageview.ShapeableImageView
|
||||
android:id="@+id/iv_room_user_2"
|
||||
@@ -128,9 +132,11 @@
|
||||
android:padding="@dimen/dp_0_5"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_avatar"
|
||||
android:visibility="gone"
|
||||
app:shapeAppearance="@style/shape_circle"
|
||||
app:strokeColor="@color/white"
|
||||
app:strokeWidth="@dimen/dp_1" />
|
||||
app:strokeWidth="@dimen/dp_1"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.google.android.material.imageview.ShapeableImageView
|
||||
android:id="@+id/iv_room_user_3"
|
||||
@@ -140,9 +146,11 @@
|
||||
android:padding="@dimen/dp_0_5"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_avatar"
|
||||
android:visibility="gone"
|
||||
app:shapeAppearance="@style/shape_circle"
|
||||
app:strokeColor="@color/white"
|
||||
app:strokeWidth="@dimen/dp_1" />
|
||||
app:strokeWidth="@dimen/dp_1"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.google.android.material.imageview.ShapeableImageView
|
||||
android:id="@+id/iv_room_user_4"
|
||||
@@ -152,9 +160,11 @@
|
||||
android:padding="@dimen/dp_0_5"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_avatar"
|
||||
android:visibility="gone"
|
||||
app:shapeAppearance="@style/shape_circle"
|
||||
app:strokeColor="@color/white"
|
||||
app:strokeWidth="@dimen/dp_1" />
|
||||
app:strokeWidth="@dimen/dp_1"
|
||||
tools:visibility="visible" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -172,8 +182,7 @@
|
||||
android:textColor="#797B80"
|
||||
android:textSize="@dimen/dp_13"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
tools:text="266" />
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
||||
|
@@ -5300,4 +5300,5 @@
|
||||
<string name="send_gift_tab_title">الهدايا</string>
|
||||
<string name="level_up_wear_dress_tips_format">恭喜你成為「%s」!當前已自動佩戴該等級裝扮,是否保留原有裝扮?</string>
|
||||
<string name="home_room_card_topic_empty_def">歡迎來到我的房間</string>
|
||||
<string name="lately">最近</string>
|
||||
</resources>
|
@@ -5242,5 +5242,5 @@
|
||||
<string name="send_gift_tab_title">送禮</string>
|
||||
<string name="level_up_wear_dress_tips_format">恭喜你成為「%s」!當前已自動佩戴該等級裝扮,是否保留原有裝扮?</string>
|
||||
<string name="home_room_card_topic_empty_def">歡迎來到我的房間</string>
|
||||
|
||||
<string name="lately">最近</string>
|
||||
</resources>
|
@@ -5281,6 +5281,7 @@ You cannot join again within 24 hours after leaving</string>
|
||||
<string name="send_gift_tab_title">Gift</string>
|
||||
<string name="level_up_wear_dress_tips_format">恭喜你成為「%s」!當前已自動佩戴該等級裝扮,是否保留原有裝扮?</string>
|
||||
<string name="home_room_card_topic_empty_def">歡迎來到我的房間</string>
|
||||
<string name="lately">最近</string>
|
||||
</resources>
|
||||
|
||||
|
||||
|
@@ -35,7 +35,7 @@ class GameHomeFragment : BaseViewBindingFragment<GameHomeFragmentBinding>(), Mai
|
||||
initView()
|
||||
initEvent()
|
||||
initObserver()
|
||||
FragmentVisibleStateHelper(this) {
|
||||
FragmentVisibleStateHelper(this).start {
|
||||
onVisibleChanged(it)
|
||||
}
|
||||
PayModel.get().refreshWalletInfo(true)
|
||||
|
@@ -1,4 +0,0 @@
|
||||
package com.chwl.core.home.event;
|
||||
|
||||
public class RefreshHomeDataEvent {
|
||||
}
|
Reference in New Issue
Block a user