feat:拆分首页ViewModel
This commit is contained in:
90
app/src/main/java/com/nnbc123/app/home/FriendsViewModel.kt
Normal file
90
app/src/main/java/com/nnbc123/app/home/FriendsViewModel.kt
Normal 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()
|
||||
}
|
||||
}
|
||||
}
|
45
app/src/main/java/com/nnbc123/app/home/HomeChildViewModel.kt
Normal file
45
app/src/main/java/com/nnbc123/app/home/HomeChildViewModel.kt
Normal 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()
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
@@ -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)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
56
app/src/main/java/com/nnbc123/app/home/PartyViewModel.kt
Normal file
56
app/src/main/java/com/nnbc123/app/home/PartyViewModel.kt
Normal 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)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
@@ -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)
|
||||
}
|
||||
}
|
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
@@ -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")
|
||||
|
@@ -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) -> {
|
||||
|
Reference in New Issue
Block a user