派对banner使用组队开黑的
This commit is contained in:
@@ -23,6 +23,9 @@ 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
|
||||
|
||||
@@ -120,6 +123,23 @@ 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(
|
||||
|
@@ -1,106 +1,104 @@
|
||||
package com.nnbc123.app.home.fragment;
|
||||
package com.nnbc123.app.home.fragment
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.nnbc123.app.R;
|
||||
import com.nnbc123.app.avroom.activity.AVRoomActivity;
|
||||
import com.nnbc123.app.base.BaseFragment;
|
||||
import com.nnbc123.app.common.EmptyViewHelper;
|
||||
import com.nnbc123.app.home.adapter.HomePlayAdapter;
|
||||
import com.nnbc123.app.ui.utils.RVDelegate;
|
||||
import com.nnbc123.core.home.bean.HomeRoomInfo;
|
||||
import com.nnbc123.core.home.event.RefreshHomeDataEvent;
|
||||
import com.nnbc123.core.home.model.GameHomeModel;
|
||||
import com.nnbc123.core.statistic.StatisticManager;
|
||||
import com.nnbc123.core.statistic.protocol.StatisticsProtocol;
|
||||
import com.nnbc123.core.user.event.LoadLoginUserInfoEvent;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
import com.nnbc123.app.base.BaseFragment
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.nnbc123.app.home.adapter.HomePlayAdapter
|
||||
import com.nnbc123.app.ui.utils.RVDelegate
|
||||
import com.nnbc123.core.home.bean.HomeRoomInfo
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.nnbc123.app.common.EmptyViewHelper
|
||||
import com.nnbc123.core.statistic.StatisticManager
|
||||
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
|
||||
import com.nnbc123.app.avroom.activity.AVRoomActivity
|
||||
import android.annotation.SuppressLint
|
||||
import com.nnbc123.core.home.model.GameHomeModel
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
import com.nnbc123.core.user.event.LoadLoginUserInfoEvent
|
||||
import com.nnbc123.core.home.event.RefreshHomeDataEvent
|
||||
import com.nnbc123.app.home.fragment.HomePlayFragment
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.nnbc123.app.R
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2020/1/7
|
||||
*/
|
||||
public class HomePlayFragment extends BaseFragment {
|
||||
class HomePlayFragment : BaseFragment() {
|
||||
private var recyclerView: RecyclerView? = null
|
||||
private lateinit var playAdapter: HomePlayAdapter
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private RecyclerView recyclerView;
|
||||
|
||||
private HomePlayAdapter playAdapter;
|
||||
private RVDelegate<HomeRoomInfo> rvDelegate;
|
||||
|
||||
public static HomePlayFragment newInstance() {
|
||||
HomePlayFragment fragment = new HomePlayFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
override fun getRootLayoutId(): Int {
|
||||
return R.layout.fragment_home_play
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_home_play;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
recyclerView = mView.findViewById(R.id.recycler_view);
|
||||
EventBus.getDefault().register(this);
|
||||
playAdapter = new HomePlayAdapter();
|
||||
rvDelegate = new RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(playAdapter)
|
||||
.setLayoutManager(new LinearLayoutManager(mContext))
|
||||
.setRecyclerView(recyclerView)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(getContext(), "暂无数据"))
|
||||
.build();
|
||||
playAdapter.setOnItemClickListener((adapter, view, position) -> {
|
||||
HomeRoomInfo homePlayInfo = playAdapter.getItem(position);
|
||||
if (homePlayInfo != null) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_KH_ROOM_SUCCESS, "点击组队开黑进入房间");
|
||||
AVRoomActivity.startForFromType(mContext, homePlayInfo.getUid(), AVRoomActivity.FROM_TYPE_RECOMMEND);
|
||||
override fun initiate() {
|
||||
recyclerView = mView.findViewById(R.id.recycler_view)
|
||||
EventBus.getDefault().register(this)
|
||||
playAdapter = HomePlayAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(playAdapter)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.setRecyclerView(recyclerView)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无数据"))
|
||||
.build()
|
||||
playAdapter.onItemClickListener =
|
||||
BaseQuickAdapter.OnItemClickListener { _: BaseQuickAdapter<*, *>, _: View, position: Int ->
|
||||
val homePlayInfo = playAdapter.getItem(position)
|
||||
if (homePlayInfo != null) {
|
||||
StatisticManager.Instance()
|
||||
.onEvent(StatisticsProtocol.EVENT_KH_ROOM_SUCCESS, "点击组队开黑进入房间")
|
||||
AVRoomActivity.startForFromType(
|
||||
mContext,
|
||||
homePlayInfo.uid,
|
||||
AVRoomActivity.FROM_TYPE_RECOMMEND
|
||||
)
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
loadData(true);
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadData(boolean refresh) {
|
||||
GameHomeModel.get().getHomePlayV2()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((homePlayInfoList, throwable) -> {
|
||||
if (throwable != null) {
|
||||
rvDelegate.loadErr(refresh);
|
||||
} else {
|
||||
rvDelegate.loadData(homePlayInfoList, refresh);
|
||||
}
|
||||
});
|
||||
private fun loadData(refresh: Boolean) {
|
||||
GameHomeModel.get().homePlayV2
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe { homePlayInfoList: List<HomeRoomInfo>?, throwable: Throwable? ->
|
||||
if (throwable != null) {
|
||||
rvDelegate.loadErr(refresh)
|
||||
} else {
|
||||
rvDelegate.loadData(homePlayInfoList?.filter { !it.isBanner }, refresh)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onLoadLoginUserInfoEvent(LoadLoginUserInfoEvent event) {
|
||||
if (isResumed()) loadData(true);
|
||||
fun onLoadLoginUserInfoEvent(event: LoadLoginUserInfoEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onRefreshHomeDataEvent(RefreshHomeDataEvent event) {
|
||||
if (isResumed()) loadData(true);
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
EventBus.getDefault().unregister(this);
|
||||
super.onDestroyView();
|
||||
override fun onDestroyView() {
|
||||
EventBus.getDefault().unregister(this)
|
||||
super.onDestroyView()
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun newInstance(): HomePlayFragment {
|
||||
val fragment = HomePlayFragment()
|
||||
val bundle = Bundle()
|
||||
fragment.arguments = bundle
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
}
|
@@ -32,7 +32,7 @@ class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectList
|
||||
private val mFragments: ArrayList<Fragment> = ArrayList()
|
||||
private val mTabInfoList: ArrayList<CharSequence> = ArrayList()
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
private var currentIndex = 1
|
||||
private var currentIndex = 0
|
||||
|
||||
companion object {
|
||||
fun newInstance(): PartyFragment {
|
||||
@@ -67,18 +67,18 @@ class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectList
|
||||
onGetHomeTagSuccess(it)
|
||||
}
|
||||
}
|
||||
homeViewModel.bannerLiveData.observe(this) {
|
||||
homeViewModel.partyBannerLiveData.observe(this) {
|
||||
BannerHelper.setBanner(mBinding.rollView, it) { _, _ ->
|
||||
StatisticManager.Instance()
|
||||
.onEvent(StatisticsProtocol.EVENT_HOME_BANNER_CLICK, "首页_banner")
|
||||
}
|
||||
}
|
||||
homeViewModel.getBannerInfo()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
homeViewModel.getTagInfo()
|
||||
homeViewModel.getPartyBanner()
|
||||
}
|
||||
|
||||
private fun onGetHomeTagSuccess(tagInfoList: List<HomeTagInfo>) {
|
||||
|
@@ -11,11 +11,6 @@ import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.nnbc123.core.auth.AuthModel
|
||||
import com.nnbc123.core.home.event.RefreshHomeDataEvent
|
||||
import com.nnbc123.core.initial.InitialModel
|
||||
import com.nnbc123.core.statistic.StatisticManager
|
||||
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
|
||||
import com.nnbc123.app.R
|
||||
import com.nnbc123.app.avroom.activity.AVRoomActivity
|
||||
import com.nnbc123.app.avroom.adapter.RoomVPAdapter
|
||||
@@ -23,16 +18,21 @@ import com.nnbc123.app.base.BaseFragment
|
||||
import com.nnbc123.app.common.EmptyViewHelper
|
||||
import com.nnbc123.app.databinding.FragmentRecommendBinding
|
||||
import com.nnbc123.app.home.HomeViewModel
|
||||
import com.nnbc123.app.home.adapter.*
|
||||
import com.nnbc123.app.home.adapter.GiftServiceAdapter
|
||||
import com.nnbc123.app.home.adapter.HomeSingleAnchorAdapter
|
||||
import com.nnbc123.app.home.adapter.MainMagicIndicatorAdapter
|
||||
import com.nnbc123.app.home.dialog.RecommendRoomDialog
|
||||
import com.nnbc123.app.home.helper.BannerHelper
|
||||
import com.nnbc123.app.ui.utils.RVDelegate
|
||||
import com.nnbc123.app.ui.webview.CommonWebViewActivity
|
||||
import com.nnbc123.app.ui.widget.magicindicator.ViewPagerHelper
|
||||
import com.nnbc123.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
|
||||
import com.nnbc123.core.auth.AuthModel
|
||||
import com.nnbc123.core.home.bean.GiftServiceMsgVo
|
||||
import com.nnbc123.core.home.bean.HomeRoomInfo
|
||||
import com.nnbc123.core.home.event.RefreshHomeDataEvent
|
||||
import com.nnbc123.core.statistic.StatisticManager
|
||||
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
|
||||
import com.scwang.smartrefresh.layout.internal.ProgressDrawable
|
||||
import com.yinyuan.doudou.pay.adapter.GiveSearchAdapter
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
@@ -95,6 +95,13 @@ class RecommendFragment : BaseFragment(),
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无房间"))
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.build()
|
||||
|
||||
homeViewModel.bannerLiveData.observe(this) {
|
||||
BannerHelper.setBanner(mBinding.rollView, it) { _, _ ->
|
||||
StatisticManager.Instance()
|
||||
.onEvent(StatisticsProtocol.EVENT_HOME_BANNER_CLICK, "首页_banner")
|
||||
}
|
||||
}
|
||||
homeViewModel.resourceLiveData.observe(this) {
|
||||
if (it.isNullOrEmpty() || it.size != 3) {
|
||||
mBinding.llResource.isGone = true
|
||||
@@ -230,6 +237,7 @@ class RecommendFragment : BaseFragment(),
|
||||
|
||||
private fun loadData() {
|
||||
homeViewModel.getHomeResource()
|
||||
homeViewModel.getBannerInfo()
|
||||
//homeViewModel.getHomeSingleAnchorList()
|
||||
}
|
||||
|
||||
|
@@ -47,6 +47,31 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/cl_roll_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_15">
|
||||
|
||||
<com.nnbc123.app.ui.widget.rollviewpager.RollPagerView
|
||||
android:id="@+id/roll_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="345:80"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:rollviewpager_hint_gravity="left"
|
||||
app:rollviewpager_hint_paddingBottom="8dp"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/ll_resource"
|
||||
android:layout_width="match_parent"
|
||||
|
@@ -75,10 +75,10 @@
|
||||
android:id="@+id/msg_number"
|
||||
android:layout_width="8dp"
|
||||
android:layout_height="8dp"
|
||||
android:background="@drawable/shape_circle_red_small"
|
||||
android:background="@drawable/shape_red_ff7162_corner"
|
||||
android:layout_marginStart="@dimen/dp_12"
|
||||
android:gravity="center"
|
||||
android:visibility="visible"
|
||||
android:visibility="gone"
|
||||
tools:text="123"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
@@ -105,6 +105,11 @@ object HomeModel : BaseModel() {
|
||||
api.getHotRoom()
|
||||
}
|
||||
|
||||
suspend fun getPlayRoom(): List<HomeRoomInfo>? =
|
||||
launchRequest {
|
||||
api.getPlayRoom()
|
||||
}
|
||||
|
||||
suspend fun getHomeResource(): MutableList<ResourceInfo>? =
|
||||
launchRequest {
|
||||
api.getHomeResource()
|
||||
@@ -269,6 +274,16 @@ object HomeModel : BaseModel() {
|
||||
@GET("home/hotRoom")
|
||||
suspend fun getHotRoom(): ServiceResult<List<HomeRoomInfo>>
|
||||
|
||||
/**
|
||||
* 首页热门房间
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GET("home/playV2")
|
||||
suspend fun getPlayRoom(): ServiceResult<List<HomeRoomInfo>>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 首页资源位
|
||||
*
|
||||
|
Reference in New Issue
Block a user