feat:拆分首页ViewModel

This commit is contained in:
Max
2023-12-27 11:22:00 +08:00
parent 321fa1b9ea
commit b9d59e9477
8 changed files with 241 additions and 344 deletions

View File

@@ -0,0 +1,90 @@
package com.nnbc123.app.home
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.nnbc123.app.base.BaseViewModel
import com.nnbc123.core.bean.response.ListResult
import com.nnbc123.core.home.bean.HomeGameTab
import com.nnbc123.core.home.bean.HomeRoomInfo
import com.nnbc123.core.home.model.HomeModel
import com.nnbc123.core.user.bean.UserInfo
import com.nnbc123.core.utils.toast
/**
* Created by Max on 2023/12/27 10:18
* Desc:
**/
class FriendsViewModel: BaseViewModel() {
private val _resourceJumpLiveData = MutableLiveData<HomeRoomInfo?>()
val resourceJumpLiveData: LiveData<HomeRoomInfo?> = _resourceJumpLiveData
private val _homeChatPickLiveData = MutableLiveData<String?>()
val homeChatPickLiveData: LiveData<String?> = _homeChatPickLiveData
private val _newFriendLiveData = MutableLiveData<ListResult<UserInfo>>()
val newFriendLiveData: LiveData<ListResult<UserInfo>> = _newFriendLiveData
val friendRecommendModeLiveData = MutableLiveData<ListResult<UserInfo>>()
val gameTabLiveData = MutableLiveData<MutableList<HomeGameTab>>()
fun getResourceJumpInfo(id: Long) {
safeLaunch(
onError = {
_resourceJumpLiveData.value = null
it.message.toast()
},
block = {
_resourceJumpLiveData.value = HomeModel.getResourceJumpInfo(id, 0)
}
)
}
fun getHomeChatPick() {
safeLaunch(
onError = {
_homeChatPickLiveData.value = null
it.message.toast()
},
block = {
_homeChatPickLiveData.value = HomeModel.getHomeChatPick()
}
)
}
fun getNewFriendList(gender: Int? = null, gameId: Long? = null) {
safeLaunch(
onError = {
_newFriendLiveData.value = ListResult.failed(1)
},
block = {
val result = HomeModel.getNewFriendList(gender, gameId)
_newFriendLiveData.value = ListResult.success(result, 1)
}
)
}
fun getFriendRecommendMore() {
safeLaunch(
onError = {
friendRecommendModeLiveData.value = ListResult.failed(1)
},
block = {
val result = HomeModel.getFriendRecommendMore()
friendRecommendModeLiveData.value = ListResult.success(result, 1)
}
)
}
fun getHomeGameTab() {
safeLaunch {
if (gameTabLiveData.value == null) {
HomeModel.getHomeGameTabListByLocal()?.let {
gameTabLiveData.value = it
}
}
gameTabLiveData.value = HomeModel.getHomeGameTabList()
}
}
}

View File

@@ -0,0 +1,45 @@
package com.nnbc123.app.home
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.nnbc123.app.base.BaseViewModel
import com.nnbc123.core.home.bean.HomeRoomInfo
import com.nnbc123.core.home.model.HomeModel
import com.nnbc123.core.utils.toast
/**
* Created by Max on 2023/12/27 10:18
* Desc:
**/
class HomeChildViewModel: BaseViewModel() {
private val _resourceJumpLiveData = MutableLiveData<HomeRoomInfo?>()
val resourceJumpLiveData: LiveData<HomeRoomInfo?> = _resourceJumpLiveData
private val _homeChatPickLiveData = MutableLiveData<String?>()
val homeChatPickLiveData: LiveData<String?> = _homeChatPickLiveData
fun getResourceJumpInfo(id: Long) {
safeLaunch(
onError = {
_resourceJumpLiveData.value = null
it.message.toast()
},
block = {
_resourceJumpLiveData.value = HomeModel.getResourceJumpInfo(id, 0)
}
)
}
fun getHomeChatPick() {
safeLaunch(
onError = {
_homeChatPickLiveData.value = null
it.message.toast()
},
block = {
_homeChatPickLiveData.value = HomeModel.getHomeChatPick()
}
)
}
}

View File

@@ -2,118 +2,31 @@ package com.nnbc123.app.home
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.nnbc123.core.auth.AuthModel
import com.nnbc123.core.bean.response.ListResult
import com.nnbc123.core.community.CommunityConstant
import com.nnbc123.core.home.bean.*
import com.nnbc123.core.home.model.HomeModel
import com.nnbc123.core.room.bean.AnchorInfo
import com.nnbc123.core.room.bean.HomeLiveTopInfo
import com.nnbc123.core.room.bean.SingleRoomSortInfo
import com.nnbc123.core.statistic.StatisticManager
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
import com.nnbc123.core.utils.toast
import com.nnbc123.app.base.BaseViewModel
import com.nnbc123.core.user.bean.UserInfo
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
class HomeViewModel : BaseViewModel() {
private val _bannerLiveData = MutableLiveData<List<BannerInfo>>()
val bannerLiveData: LiveData<List<BannerInfo>> = _bannerLiveData
private val _partyBannerLiveData = MutableLiveData<List<BannerInfo>?>()
val partyBannerLiveData: LiveData<List<BannerInfo>?> = _partyBannerLiveData
private val _hotRoomLiveData = MutableLiveData<ListResult<HomeRoomInfo>>()
val hotRoomLiveData: LiveData<ListResult<HomeRoomInfo>> = _hotRoomLiveData
private val _gameRoomLiveData = MutableLiveData<ListResult<HomeRoomInfo>>()
val gameRoomLiveData: LiveData<ListResult<HomeRoomInfo>> = _gameRoomLiveData
private val _pickRoomLiveData = MutableLiveData<HomeRoomInfo?>()
val pickRoomLiveData: LiveData<HomeRoomInfo?> = _pickRoomLiveData
private val _openGameRoomLiveData = MutableLiveData<Long?>()
val openGameRoomLiveData: LiveData<Long?> = _openGameRoomLiveData
private val _concernsLiveData = MutableLiveData<List<HomeRoomInfo>>()
val concernsLiveData: LiveData<List<HomeRoomInfo>> = _concernsLiveData
private val _collectLiveData = MutableLiveData<ListResult<HomeRoomInfo>>()
val collectLiveData: LiveData<ListResult<HomeRoomInfo>> = _collectLiveData
private val _tagLiveData = MutableLiveData<MutableList<HomeTagInfo>>()
val tagLiveData: LiveData<MutableList<HomeTagInfo>> = _tagLiveData
private val _emptyLiveData = MutableLiveData<Boolean>()
val emptyLiveData: LiveData<Boolean> = _emptyLiveData
private val _resourceLiveData = MutableLiveData<MutableList<ResourceInfo>>()
val resourceLiveData: LiveData<MutableList<ResourceInfo>> = _resourceLiveData
private val _resourceJumpLiveData = MutableLiveData<HomeRoomInfo?>()
val resourceJumpLiveData: LiveData<HomeRoomInfo?> = _resourceJumpLiveData
private val _homeChatPickLiveData = MutableLiveData<String?>()
val homeChatPickLiveData: LiveData<String?> = _homeChatPickLiveData
private val _singleAnchorHomeLiveData = MutableLiveData<ListResult<HomeRoomInfo>>()
val singleAnchorHomeLiveData: LiveData<ListResult<HomeRoomInfo>> = _singleAnchorHomeLiveData
private val _singleRoomSortInfoLiveData = MutableLiveData<ListResult<SingleRoomSortInfo>>()
val singleRoomSortInfoLiveData: LiveData<ListResult<SingleRoomSortInfo>> =
_singleRoomSortInfoLiveData
private val _homeLiveTopInfoLiveData = MutableLiveData<HomeLiveTopInfo?>()
val homeLiveTopInfoLiveData: LiveData<HomeLiveTopInfo?> = _homeLiveTopInfoLiveData
private val _anchorInfoLiveData = MutableLiveData<AnchorInfo?>()
val anchorInfoLiveData: LiveData<AnchorInfo?> = _anchorInfoLiveData
private val _partyRecommendRoomLiveData = MutableLiveData<ListResult<HomeRoomInfo>>()
val partyRecommendRoomLiveData: LiveData<ListResult<HomeRoomInfo>> =
_partyRecommendRoomLiveData
private val _partyRecommendRoomMoreLiveData = MutableLiveData<ListResult<HomeRoomInfo>>()
val partyRecommendRoomMoreLiveData: LiveData<ListResult<HomeRoomInfo>> =
_partyRecommendRoomMoreLiveData
private val _giftServiceLiveData = MutableLiveData<ListResult<GiftServiceMsgVo>>()
val giftServiceLiveData: LiveData<ListResult<GiftServiceMsgVo>> = _giftServiceLiveData
private val _newFriendLiveData = MutableLiveData<ListResult<UserInfo>>()
val newFriendLiveData: LiveData<ListResult<UserInfo>> = _newFriendLiveData
val gameTabLiveData = MutableLiveData<MutableList<HomeGameTab>>()
val friendRecommendModeLiveData = MutableLiveData<ListResult<UserInfo>>()
fun getHomeGameTab() {
safeLaunch {
if (gameTabLiveData.value == null) {
HomeModel.getHomeGameTabListByLocal()?.let {
gameTabLiveData.value = it
}
}
gameTabLiveData.value = HomeModel.getHomeGameTabList()
}
}
fun getBannerInfo() {
safeLaunch {
_bannerLiveData.value = HomeModel.getHomeBanner("1")
}
}
fun getTagInfo() {
safeLaunch {
_tagLiveData.value = HomeModel.getHomeTag()
}
}
fun getHomeResource() {
safeLaunch(
block = {
@@ -127,31 +40,6 @@ class HomeViewModel : BaseViewModel() {
onError = {
}
)
}
fun getResourceJumpInfo(id: Long) {
safeLaunch(
onError = {
_resourceJumpLiveData.value = null
it.message.toast()
},
block = {
_resourceJumpLiveData.value = HomeModel.getResourceJumpInfo(id, 0)
}
)
}
fun getHomeChatPick() {
safeLaunch(
onError = {
_homeChatPickLiveData.value = null
it.message.toast()
},
block = {
_homeChatPickLiveData.value = HomeModel.getHomeChatPick()
}
)
}
fun getHotRoom(pageNum: Int, pageSize: Int) {
@@ -166,145 +54,6 @@ class HomeViewModel : BaseViewModel() {
)
}
fun getPartyBanner() {
safeLaunch(
onError = {
_partyBannerLiveData.value = null
},
block = {
val result = HomeModel.getHotRoom()
var bannerInfoList: List<BannerInfo>?
bannerInfoList = result?.find { it.isBanner }?.bannerVoList
if (bannerInfoList == null) {
bannerInfoList = HomeModel.getPlayRoom()?.find { it.isBanner }?.bannerVoList
}
_partyBannerLiveData.value = bannerInfoList
}
)
}
fun getGameRoom(pageNum: Int, pageSize: Int) {
safeLaunch(
onError = {
_gameRoomLiveData.value = ListResult.failed(pageNum)
},
block = {
val result = HomeModel.getGameRoom(pageNum, pageSize)
_gameRoomLiveData.value = ListResult.success(result, pageNum)
}
)
}
fun fastPickGameRoom(mgId: Long? = null) {
safeLaunch(
onError = {
it.message.toast()
StatisticManager.Instance()
.onEvent(
StatisticsProtocol.EVENT_USERCENTER_QUICK_ENTRYSUCCESS_CLICK,
"个人中心快捷进房点击未匹配成功"
)
},
block = {
val homeRoomInfo = HomeModel.fastPickGameRoom(mgId)
if (homeRoomInfo?.isPick == true) {
_pickRoomLiveData.value = homeRoomInfo
} else if (homeRoomInfo?.isNeedOpenSelfRoom == true) {
_openGameRoomLiveData.value = mgId
}
}
)
}
fun getCollectRoom(pageNum: Int, pageSize: Int) {
safeLaunch(
onError = {
_collectLiveData.value = ListResult.failed(pageNum)
_emptyLiveData.value = true
},
block = {
if (pageNum == 1) {
val concernsRooms = async(Dispatchers.IO) {
try {
HomeModel.getConcernsRoom()
} catch (e: Throwable) {
null
}
}
val collectRooms = async(Dispatchers.IO) {
try {
HomeModel.getCollectRoom(pageNum, pageSize)
} catch (e: Throwable) {
null
}
}
_concernsLiveData.value = concernsRooms.await()
val collectList = collectRooms.await()
if (collectList == null) {
_collectLiveData.value = ListResult.failed(pageNum)
} else {
_collectLiveData.value =
ListResult.success(collectList.fansRoomList, pageNum)
}
_emptyLiveData.value = _concernsLiveData.value.isNullOrEmpty() &&
_collectLiveData.value?.data.isNullOrEmpty()
} else {
val result = HomeModel.getCollectRoom(pageNum, pageSize)
_collectLiveData.value = ListResult.success(result?.fansRoomList, pageNum)
}
}
)
}
fun requestSingleRoomSortList() {
safeLaunch(
onError = {
//保证最少有一个推荐tab,防止出现空白页
_singleRoomSortInfoLiveData.value =
ListResult.success(listOf(SingleRoomSortInfo(null, "推荐")), 1)
},
block = {
val result = HomeModel.requestSingleRoomSortList()
val fullResult = ArrayList<SingleRoomSortInfo>()
fullResult.add(SingleRoomSortInfo(null, "推荐"))
result?.let { fullResult.addAll(it) }
_singleRoomSortInfoLiveData.value = ListResult.success(fullResult, 1)
}
)
}
fun getHomeSingleAnchorList() {
safeLaunch(
onError = {
_singleAnchorHomeLiveData.value = ListResult.failed(1)
},
block = {
val result = HomeModel.getHomeSingleAnchorList()
_singleAnchorHomeLiveData.value = ListResult.success(
if ((result?.size ?: 0) > 4) {
result?.subList(0, 4)
} else {
result
}, 1
)
}
)
}
fun requestHomeLiveTopInfo() {
safeLaunch(
onError = {
_homeLiveTopInfoLiveData.value = null
},
block = {
_homeLiveTopInfoLiveData.value = HomeModel.requestHomeLiveTopInfo()
}
)
}
fun requestAnchorInfo() {
safeLaunch(
onError = {
@@ -316,67 +65,4 @@ class HomeViewModel : BaseViewModel() {
)
}
fun getPartyRecommendRoomList() {
safeLaunch(
onError = {
_partyRecommendRoomLiveData.value = ListResult.failed(1)
},
block = {
val result = HomeModel.getPartyRecommendRoomList(
AuthModel.get().currentUid.toString(),
CommunityConstant.VERSION_VALID_TYPE
)
_partyRecommendRoomLiveData.value = ListResult.success(result, 1)
}
)
}
fun getPartyRecommendRoomMoreList() {
safeLaunch(
onError = {
_partyRecommendRoomMoreLiveData.value = ListResult.failed(1)
},
block = {
val result = HomeModel.getPartyRecommendRoomMoreList()
_partyRecommendRoomMoreLiveData.value = ListResult.success(result, 1)
}
)
}
fun getServiceGiftRecord() {
safeLaunch(
onError = {
_giftServiceLiveData.value = ListResult.failed(1)
},
block = {
val result = HomeModel.getServiceGiftRecord()
_giftServiceLiveData.value = ListResult.success(result, 1)
}
)
}
fun getNewFriendList(gender: Int? = null, gameId: Long? = null) {
safeLaunch(
onError = {
_newFriendLiveData.value = ListResult.failed(1)
},
block = {
val result = HomeModel.getNewFriendList(gender, gameId)
_newFriendLiveData.value = ListResult.success(result, 1)
}
)
}
fun getFriendRecommendMore() {
safeLaunch(
onError = {
friendRecommendModeLiveData.value = ListResult.failed(1)
},
block = {
val result = HomeModel.getFriendRecommendMore()
friendRecommendModeLiveData.value = ListResult.success(result, 1)
}
)
}
}

View File

@@ -0,0 +1,56 @@
package com.nnbc123.app.home
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.nnbc123.app.base.BaseViewModel
import com.nnbc123.core.bean.response.ListResult
import com.nnbc123.core.home.bean.BannerInfo
import com.nnbc123.core.home.bean.GiftServiceMsgVo
import com.nnbc123.core.home.bean.HomeRoomInfo
import com.nnbc123.core.home.model.HomeModel
import com.nnbc123.core.utils.toast
/**
* Created by Max on 2023/12/27 10:18
* Desc:
**/
class PartyViewModel : BaseViewModel() {
private val _giftServiceLiveData = MutableLiveData<ListResult<GiftServiceMsgVo>>()
val giftServiceLiveData: LiveData<ListResult<GiftServiceMsgVo>> = _giftServiceLiveData
private val _bannerLiveData = MutableLiveData<List<BannerInfo>>()
val bannerLiveData: LiveData<List<BannerInfo>> = _bannerLiveData
private val _resourceJumpLiveData = MutableLiveData<HomeRoomInfo?>()
val resourceJumpLiveData: LiveData<HomeRoomInfo?> = _resourceJumpLiveData
fun getResourceJumpInfo(id: Long) {
safeLaunch(
onError = {
_resourceJumpLiveData.value = null
it.message.toast()
},
block = {
_resourceJumpLiveData.value = HomeModel.getResourceJumpInfo(id, 0)
}
)
}
fun getBannerInfo() {
safeLaunch {
_bannerLiveData.value = HomeModel.getHomeBanner("1")
}
}
fun getServiceGiftRecord() {
safeLaunch(
onError = {
_giftServiceLiveData.value = ListResult.failed(1)
},
block = {
val result = HomeModel.getServiceGiftRecord()
_giftServiceLiveData.value = ListResult.success(result, 1)
}
)
}
}

View File

@@ -3,12 +3,16 @@ package com.nnbc123.app.home.fragment.home.friends
import android.view.Gravity
import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
import com.chuhai.utils.ktx.singleClick
import com.nnbc123.app.R
import com.nnbc123.app.avroom.activity.AVRoomActivity
import com.nnbc123.app.base.BaseBindingFragment
import com.nnbc123.app.databinding.HomeFriendsFragmentBinding
import com.nnbc123.app.home.FriendsViewModel
import com.nnbc123.app.home.HomeViewModel
import com.nnbc123.app.home.adapter.HomeFriendsGameTabAdapter
import com.nnbc123.app.home.dialog.RecommendRoomDialog
import com.nnbc123.app.ui.im.avtivity.NimP2PMessageActivity
import com.nnbc123.app.ui.utils.load
import com.nnbc123.app.ui.webview.CommonWebViewActivity
@@ -26,6 +30,7 @@ import com.nnbc123.library.annatation.ActLayoutRes
class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
private val homeViewModel: HomeViewModel by activityViewModels()
private val viewModel: FriendsViewModel by activityViewModels()
private val tabAdapter = HomeFriendsGameTabAdapter()
@@ -44,7 +49,7 @@ class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
showFilterGender()
}
mBinding.tvRefresh.singleClick {
homeViewModel.getNewFriendList(filterGender, filterGameId)
viewModel.getNewFriendList(filterGender, filterGameId)
}
mBinding.refreshLayout.isEnableLoadmore = false
mBinding.refreshLayout.isEnableOverScrollBounce = false
@@ -64,7 +69,7 @@ class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
tabAdapter.selectItem(position)
refreshListData()
}
homeViewModel.gameTabLiveData.observe(viewLifecycleOwner)
viewModel.gameTabLiveData.observe(viewLifecycleOwner)
{
if (!it.isNullOrEmpty()) {
tabAdapter.setNewData(it)
@@ -75,10 +80,27 @@ class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
private fun initResource() {
mBinding.ivResourceMatch.singleClick {
dialogManager.showProgressDialog(mContext)
homeViewModel.getHomeChatPick()
viewModel.getHomeChatPick()
}
homeViewModel.homeChatPickLiveData.observe(viewLifecycleOwner) {
viewModel.resourceJumpLiveData.observe(this)
{
dialogManager.dismissDialog()
it?.let {
if (it.isPick) {
AVRoomActivity.start(context, it.uid)
// StatisticManager.Instance().onEvent(
// "${currMatchClick}_match_success",
// "资源位匹配成功",
// mapOf("user_id" to AuthModel.get().currentUid.toString())
// )
} else {
RecommendRoomDialog.newInstance(it).show(context)
}
}
}
viewModel.homeChatPickLiveData.observe(viewLifecycleOwner) {
dialogManager.dismissDialog()
it?.let {
if (it.isNotEmpty()) {
@@ -105,7 +127,7 @@ class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
else -> {
dialogManager.showProgressDialog(mContext)
homeViewModel.getResourceJumpInfo(item.id)
viewModel.getResourceJumpInfo(item.id)
}
}
}
@@ -159,13 +181,13 @@ class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
private fun loadData() {
if (homeViewModel.gameTabLiveData.value.isNullOrEmpty()) {
homeViewModel.getHomeGameTab()
viewModel.getHomeGameTab()
}
homeViewModel.getHomeResource()
refreshListData()
}
private fun refreshListData() {
homeViewModel.getNewFriendList(filterGender, filterGameId)
viewModel.getNewFriendList(filterGender, filterGameId)
}
}

View File

@@ -5,12 +5,14 @@ import android.view.LayoutInflater
import android.view.View
import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.chuhai.utils.UiUtils
import com.nnbc123.app.R
import com.nnbc123.app.base.BaseBindingFragment
import com.nnbc123.app.databinding.HomeFriendsListFragmentBinding
import com.nnbc123.app.home.FriendsViewModel
import com.nnbc123.app.home.HomeViewModel
import com.nnbc123.app.home.adapter.HomeFriendsUserAdapter
import com.nnbc123.app.ui.user.UserInfoActivity
@@ -27,7 +29,7 @@ import kotlin.random.Random
@ActLayoutRes(R.layout.home_friends_list_fragment)
class FriendsListFragment : BaseBindingFragment<HomeFriendsListFragmentBinding>() {
private val adapter = HomeFriendsUserAdapter()
private val homeViewModel: HomeViewModel by activityViewModels()
private val viewModel: FriendsViewModel by activityViewModels()
private var rvDelegate: RVDelegate<UserInfo>? = null
private var headerEmptyView: View? = null
private val recommendTitleView get() = headerEmptyView?.findViewById<View>(R.id.layout_title)
@@ -91,10 +93,10 @@ class FriendsListFragment : BaseBindingFragment<HomeFriendsListFragmentBinding>(
}
private fun initObserve() {
homeViewModel.newFriendLiveData.observe(this) {
viewModel.newFriendLiveData.observe(this) {
if (it.data.isNullOrEmpty()) {
headerEmptyView?.isVisible = true
val list = homeViewModel.friendRecommendModeLiveData.value?.data?.toMutableList()
val list = viewModel.friendRecommendModeLiveData.value?.data?.toMutableList()
recommendTitleView?.isVisible = !list.isNullOrEmpty()
adapter.setNewData(list)
} else {
@@ -102,7 +104,7 @@ class FriendsListFragment : BaseBindingFragment<HomeFriendsListFragmentBinding>(
rvDelegate?.loadData(it)
}
}
homeViewModel.friendRecommendModeLiveData.observe(this) {
viewModel.friendRecommendModeLiveData.observe(this) {
if (headerEmptyView?.isVisible == true) {
recommendTitleView?.isVisible = !it.data.isNullOrEmpty()
adapter.setNewData(it.data?.toMutableList())
@@ -112,8 +114,8 @@ class FriendsListFragment : BaseBindingFragment<HomeFriendsListFragmentBinding>(
override fun onResume() {
super.onResume()
if (homeViewModel.friendRecommendModeLiveData.value?.data.isNullOrEmpty()) {
homeViewModel.getFriendRecommendMore()
if (viewModel.friendRecommendModeLiveData.value?.data.isNullOrEmpty()) {
viewModel.getFriendRecommendMore()
}
}
}

View File

@@ -3,22 +3,26 @@ package com.nnbc123.app.home.fragment.home.party
import android.os.Bundle
import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
import androidx.viewpager2.widget.ViewPager2
import com.chuhai.utils.ktx.singleClick
import com.nnbc123.app.R
import com.nnbc123.app.avroom.activity.AVRoomActivity
import com.nnbc123.app.base.BaseActivity
import com.nnbc123.app.base.BaseBindingFragment
import com.nnbc123.app.databinding.HomePartyFragmentBinding
import com.nnbc123.app.home.HomeViewModel
import com.nnbc123.app.game_room.GameRoomActivity
import com.nnbc123.app.home.PartyViewModel
import com.nnbc123.app.home.adapter.HomePartyMessageAdapter
import com.nnbc123.app.home.dialog.RecommendRoomDialog
import com.nnbc123.app.home.helper.BannerHelper
import com.nnbc123.app.ui.im.avtivity.NimP2PMessageActivity
import com.nnbc123.app.home.helper.OpenRoomHelper
import com.nnbc123.app.ui.utils.load
import com.nnbc123.app.ui.webview.CommonWebViewActivity
import com.nnbc123.core.auth.AuthModel
import com.nnbc123.core.home.event.RefreshHomeDataEvent
import com.nnbc123.core.room.bean.RoomInfo
import com.nnbc123.core.statistic.StatisticManager
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
import com.nnbc123.library.annatation.ActLayoutRes
@@ -34,6 +38,7 @@ import org.greenrobot.eventbus.ThreadMode
class PartyFragment : BaseBindingFragment<HomePartyFragmentBinding>() {
private val homeViewModel: HomeViewModel by activityViewModels()
private val viewModel: PartyViewModel by activityViewModels()
//仅埋点使用,不影响业务逻辑
private val abcArray = arrayOf("A", "B", "C", "D")
@@ -69,8 +74,8 @@ class PartyFragment : BaseBindingFragment<HomePartyFragmentBinding>() {
private fun loadData() {
homeViewModel.getHomeResource()
homeViewModel.getBannerInfo()
homeViewModel.getServiceGiftRecord()
viewModel.getBannerInfo()
viewModel.getServiceGiftRecord()
}
private fun initHotMessage() {
@@ -86,7 +91,7 @@ class PartyFragment : BaseBindingFragment<HomePartyFragmentBinding>() {
}
}
}.create()
homeViewModel.giftServiceLiveData.observe(viewLifecycleOwner) {
viewModel.giftServiceLiveData.observe(viewLifecycleOwner) {
if (it.isSuccess && !it.data.isNullOrEmpty()) {
mBinding.hotMessage.isVisible = true
mBinding.hotMessage.refreshData(it.data)
@@ -99,15 +104,6 @@ class PartyFragment : BaseBindingFragment<HomePartyFragmentBinding>() {
GameRoomActivity.start(requireContext())
}
homeViewModel.homeChatPickLiveData.observe(viewLifecycleOwner) {
dialogManager.dismissDialog()
it?.let {
if (it.isNotEmpty()) {
NimP2PMessageActivity.start(context, it)
}
}
}
homeViewModel.resourceLiveData.observe(this) {
if (it.isNullOrEmpty()) {
mBinding.groupResource.isVisible = false
@@ -136,14 +132,14 @@ class PartyFragment : BaseBindingFragment<HomePartyFragmentBinding>() {
else -> {
dialogManager.showProgressDialog(mContext)
homeViewModel.getResourceJumpInfo(it[i].id)
viewModel.getResourceJumpInfo(it[i].id)
}
}
}
}
}
homeViewModel.resourceJumpLiveData.observe(this)
viewModel.resourceJumpLiveData.observe(this)
{
dialogManager.dismissDialog()
it?.let {
@@ -162,7 +158,7 @@ class PartyFragment : BaseBindingFragment<HomePartyFragmentBinding>() {
}
private fun initBanner() {
homeViewModel.bannerLiveData.observe(this) {
viewModel.bannerLiveData.observe(this) {
BannerHelper.setBanner(mBinding.rollView, it) { _, _ ->
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_HOME_BANNER_CLICK, "首页_banner")

View File

@@ -661,7 +661,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
@SuppressLint("CheckResult")
private void loadChatLimit(boolean sessionIsEmpty) {
if (ignoreChatLimit) {
Log.d("MAAAX", "#ignore");
Log.d(TAG, "#ignore");
return;
}
IMCustomModel.get().getPrivateChatLimit(sessionId).subscribe(((privateChatLimitInfo, throwable) -> {