feat : 首页 第二banner
This commit is contained in:
@@ -3,7 +3,11 @@ package com.chwl.app.home
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.chwl.app.base.BaseViewModel
|
||||
import com.chwl.core.bean.response.ListResult
|
||||
import com.chwl.core.home.bean.*
|
||||
import com.chwl.core.home.bean.BannerInfo
|
||||
import com.chwl.core.home.bean.CurrentResourceInfo
|
||||
import com.chwl.core.home.bean.HomeRankBean
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.home.bean.HomeTagInfo
|
||||
import com.chwl.core.home.model.HomeModel
|
||||
import com.chwl.core.room.bean.AnchorInfo
|
||||
import com.chwl.core.utils.extension.toast
|
||||
@@ -13,6 +17,7 @@ class HomeViewModel : BaseViewModel() {
|
||||
|
||||
val tabRoomListLiveData = MutableLiveData<ListResult<HomeRoomInfo>?>()
|
||||
val bannerLiveData = MutableLiveData<List<BannerInfo>?>()
|
||||
val secondBannerLiveData = MutableLiveData<List<BannerInfo>?>()
|
||||
|
||||
val homeResourceLiveData = MutableLiveData<List<CurrentResourceInfo>?>()
|
||||
|
||||
@@ -76,6 +81,17 @@ class HomeViewModel : BaseViewModel() {
|
||||
)
|
||||
}
|
||||
|
||||
fun getSecondBannerInfo() {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
secondBannerLiveData.value = null
|
||||
},
|
||||
block = {
|
||||
secondBannerLiveData.value = HomeModel.getHomeSecondBanner("1")
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getHomeTabInfo() {
|
||||
safeLaunch {
|
||||
homeTabLiveData.value = HomeModel.getNewHomeTab()
|
||||
|
@@ -15,6 +15,8 @@ import com.chwl.app.ui.utils.ImageLoadUtils
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.app.ui.utils.loadAnim
|
||||
import com.chwl.app.ui.utils.loadFromAssets
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil
|
||||
import com.chwl.core.home.bean.BannerInfo
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.library.common.util.isVerify
|
||||
import com.chwl.library.common.util.setVis
|
||||
@@ -23,6 +25,7 @@ import com.example.lib_utils.UiUtils
|
||||
import com.opensource.svgaplayer.SVGADrawable
|
||||
import com.opensource.svgaplayer.SVGAImageView
|
||||
import com.tencent.qgame.animplayer.AnimView
|
||||
import com.zhpan.bannerview.BannerViewPager
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/11/13
|
||||
@@ -43,99 +46,124 @@ class HomeRoomAdapter : BaseMultiItemQuickAdapter<HomeRoomInfo, BaseViewHolder>
|
||||
|
||||
override fun onCreateDefViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder {
|
||||
return super.onCreateDefViewHolder(parent, viewType).apply {
|
||||
val micUserRecyclerView = this.getView<RecyclerView>(R.id.recycler_view_users)
|
||||
micUserRecyclerView.setOnTouchListener { v, event -> true }
|
||||
micUserRecyclerView.setRecycledViewPool(micUserItemViewPool)
|
||||
micUserRecyclerView.setHasFixedSize(true)
|
||||
micUserRecyclerView.layoutManager =
|
||||
LinearLayoutManager(parent.context, RecyclerView.HORIZONTAL, false).apply {
|
||||
this.recycleChildrenOnDetach = true
|
||||
this.isSmoothScrollbarEnabled
|
||||
}
|
||||
micUserRecyclerView.addItemDecoration(object : RecyclerView.ItemDecoration() {
|
||||
val offset = AppUtils.getApp().resources.getDimensionPixelOffset(R.dimen.dp_4) * -1
|
||||
override fun getItemOffsets(
|
||||
outRect: Rect,
|
||||
view: View,
|
||||
parent: RecyclerView,
|
||||
state: RecyclerView.State
|
||||
) {
|
||||
super.getItemOffsets(outRect, view, parent, state)
|
||||
val position = parent.getChildAdapterPosition(view)
|
||||
if (position != 0) {
|
||||
if (isRTL) {
|
||||
outRect.right = offset
|
||||
} else {
|
||||
outRect.left = offset
|
||||
if (viewType == HomeRoomInfo.TYPE_ROOM) {
|
||||
val micUserRecyclerView = this.getView<RecyclerView>(R.id.recycler_view_users)
|
||||
micUserRecyclerView.setOnTouchListener { v, event -> true }
|
||||
micUserRecyclerView.setRecycledViewPool(micUserItemViewPool)
|
||||
micUserRecyclerView.setHasFixedSize(true)
|
||||
micUserRecyclerView.layoutManager =
|
||||
LinearLayoutManager(parent.context, RecyclerView.HORIZONTAL, false).apply {
|
||||
this.recycleChildrenOnDetach = true
|
||||
this.isSmoothScrollbarEnabled
|
||||
}
|
||||
micUserRecyclerView.addItemDecoration(object : RecyclerView.ItemDecoration() {
|
||||
val offset =
|
||||
AppUtils.getApp().resources.getDimensionPixelOffset(R.dimen.dp_4) * -1
|
||||
|
||||
override fun getItemOffsets(
|
||||
outRect: Rect,
|
||||
view: View,
|
||||
parent: RecyclerView,
|
||||
state: RecyclerView.State
|
||||
) {
|
||||
super.getItemOffsets(outRect, view, parent, state)
|
||||
val position = parent.getChildAdapterPosition(view)
|
||||
if (position != 0) {
|
||||
if (isRTL) {
|
||||
outRect.right = offset
|
||||
} else {
|
||||
outRect.left = offset
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
micUserRecyclerView.adapter = HomeRoomUserAdapter()
|
||||
})
|
||||
micUserRecyclerView.adapter = HomeRoomUserAdapter()
|
||||
} else if(viewType == HomeRoomInfo.TYPE_BANNER) {
|
||||
val banner = this.getView<BannerViewPager<BannerInfo>>(R.id.banner_view)
|
||||
banner.adapter = HomeBannerAdapter()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
|
||||
helper.apply {
|
||||
getView<ImageView>(R.id.iv_room_image).load(item.avatar)
|
||||
setText(R.id.tv_online_number, item.onlineNum.toString())
|
||||
setText(R.id.tv_room_title, item.title)
|
||||
setText(R.id.tv_desc, item.roomDesc)
|
||||
}
|
||||
|
||||
val flag = helper.getView<ImageView>(R.id.flag)
|
||||
if (item.regionFlag.isVerify()) {
|
||||
flag.load(item.regionFlag)
|
||||
}
|
||||
flag.setVis(item.regionFlag.isVerify())
|
||||
|
||||
val micUserRecyclerView = helper.getView<RecyclerView>(R.id.recycler_view_users)
|
||||
val userAdapter = micUserRecyclerView.adapter as HomeRoomUserAdapter
|
||||
userAdapter.setNewData(item.micUsers)
|
||||
|
||||
val topView = helper.getView<ImageView>(R.id.iv_top)
|
||||
if (item.isHourTop1 == 1) {
|
||||
topView.setImageResource(R.drawable.home_room_bg_hour_top)
|
||||
topView.visibility = View.VISIBLE
|
||||
} else if (item.isWeekTop1 == 1) {
|
||||
topView.setImageResource(R.drawable.home_room_bg_week_top)
|
||||
topView.visibility = View.VISIBLE
|
||||
} else {
|
||||
topView.visibility = View.INVISIBLE
|
||||
}
|
||||
val tagPict = item.tagPict
|
||||
val tagView = helper.getView<ImageView>(R.id.iv_tag)
|
||||
if (tagPict.isNullOrEmpty()) {
|
||||
tagView.isVisible = false
|
||||
} else {
|
||||
ImageLoadUtils.loadImage(tagView, tagPict)
|
||||
tagView.isVisible = true
|
||||
}
|
||||
val pkView = helper.getView<SVGAImageView>(R.id.svga_pk)
|
||||
if (item.isCrossPking) {
|
||||
pkView.isVisible = true
|
||||
if (pkView.drawable !is SVGADrawable) {
|
||||
pkView.loadFromAssets("svga/home_pk.svga")
|
||||
if (!item.isBanner) {
|
||||
helper.apply {
|
||||
getView<ImageView>(R.id.iv_room_image).load(item.avatar)
|
||||
setText(R.id.tv_online_number, item.onlineNum.toString())
|
||||
setText(R.id.tv_room_title, item.title)
|
||||
setText(R.id.tv_desc, item.roomDesc)
|
||||
}
|
||||
pkView.startAnimation()
|
||||
} else {
|
||||
pkView.isVisible = false
|
||||
pkView.stopAnimation()
|
||||
}
|
||||
|
||||
|
||||
val boomIcon = helper.getView<ImageView>(R.id.boomIcon)
|
||||
val boomAnim = helper.getView<AnimView>(R.id.boomAnim)
|
||||
boomIcon.setVis(false)
|
||||
boomAnim.setVis(false)
|
||||
if (item.isRoomBoom) {
|
||||
if (item.roomBoomPic.isVerify()) {
|
||||
boomIcon.load(item.roomBoomPic)
|
||||
boomIcon.setVis(true)
|
||||
}else if (item.roomBoomVapUrl.isVerify()){
|
||||
boomAnim.loadAnim(item.roomBoomVapUrl)
|
||||
boomAnim.setVis(true)
|
||||
val flag = helper.getView<ImageView>(R.id.flag)
|
||||
if (item.regionFlag.isVerify()) {
|
||||
flag.load(item.regionFlag)
|
||||
}
|
||||
flag.setVis(item.regionFlag.isVerify())
|
||||
|
||||
val micUserRecyclerView = helper.getView<RecyclerView>(R.id.recycler_view_users)
|
||||
val userAdapter = micUserRecyclerView.adapter as HomeRoomUserAdapter
|
||||
userAdapter.setNewData(item.micUsers)
|
||||
|
||||
val topView = helper.getView<ImageView>(R.id.iv_top)
|
||||
if (item.isHourTop1 == 1) {
|
||||
topView.setImageResource(R.drawable.home_room_bg_hour_top)
|
||||
topView.visibility = View.VISIBLE
|
||||
} else if (item.isWeekTop1 == 1) {
|
||||
topView.setImageResource(R.drawable.home_room_bg_week_top)
|
||||
topView.visibility = View.VISIBLE
|
||||
} else {
|
||||
topView.visibility = View.INVISIBLE
|
||||
}
|
||||
val tagPict = item.tagPict
|
||||
val tagView = helper.getView<ImageView>(R.id.iv_tag)
|
||||
if (tagPict.isNullOrEmpty()) {
|
||||
tagView.isVisible = false
|
||||
} else {
|
||||
ImageLoadUtils.loadImage(tagView, tagPict)
|
||||
tagView.isVisible = true
|
||||
}
|
||||
val pkView = helper.getView<SVGAImageView>(R.id.svga_pk)
|
||||
if (item.isCrossPking) {
|
||||
pkView.isVisible = true
|
||||
if (pkView.drawable !is SVGADrawable) {
|
||||
pkView.loadFromAssets("svga/home_pk.svga")
|
||||
}
|
||||
pkView.startAnimation()
|
||||
} else {
|
||||
pkView.isVisible = false
|
||||
pkView.stopAnimation()
|
||||
}
|
||||
|
||||
|
||||
val boomIcon = helper.getView<ImageView>(R.id.boomIcon)
|
||||
val boomAnim = helper.getView<AnimView>(R.id.boomAnim)
|
||||
boomIcon.setVis(false)
|
||||
boomAnim.setVis(false)
|
||||
if (item.isRoomBoom) {
|
||||
if (item.roomBoomPic.isVerify()) {
|
||||
boomIcon.load(item.roomBoomPic)
|
||||
boomIcon.setVis(true)
|
||||
}else if (item.roomBoomVapUrl.isVerify()){
|
||||
boomAnim.loadAnim(item.roomBoomVapUrl)
|
||||
boomAnim.setVis(true)
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if (item.bannerVoList.isVerify()){
|
||||
val banner = helper.getView<BannerViewPager<BannerInfo>>(R.id.banner_view)
|
||||
banner.setPageMargin(UIUtil.dip2px(mContext, 8.0))
|
||||
.setScrollDuration(800)
|
||||
.create(item.bannerVoList)
|
||||
//
|
||||
// val clickView = helper.getView<View>(R.id.banner_view_click)
|
||||
// clickView.click {
|
||||
// val position = banner.currentItem
|
||||
// CommonJumpHelper.bannerJump(banner.context, item.bannerVoList[position])
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,15 +1,16 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.util.SparseArray
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.application.IReportConstants
|
||||
import com.chwl.app.application.ReportManager
|
||||
@@ -25,13 +26,13 @@ import com.chwl.app.ui.search.SearchActivity
|
||||
import com.chwl.app.ui.user.adapter.HomeRecommendIndicatorAdapter
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity
|
||||
import com.chwl.app.ui.widget.magicindicator.ViewPagerHelper
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
|
||||
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.library.common.util.isVerify
|
||||
import com.chwl.library.utils.ListUtils
|
||||
import com.example.lib_utils.ktx.getDrawableById
|
||||
import com.zhpan.bannerview.BannerViewPager
|
||||
@@ -45,7 +46,10 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
View.OnClickListener {
|
||||
|
||||
private val tabList = mutableListOf<HomeTagInfo>()
|
||||
private var mPosition = 0
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
private val fragmentArray = SparseArray<Fragment>()
|
||||
private var tempFragment: Fragment? = null
|
||||
|
||||
override fun init() {
|
||||
initListener()
|
||||
@@ -72,7 +76,7 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
}
|
||||
homeViewModel.getHomeRankList()
|
||||
homeViewModel.getBannerInfo()
|
||||
if (binding.viewPager.adapter?.itemCount == 0) {
|
||||
if (!tabList.isVerify()){
|
||||
homeViewModel.getHomeTabInfo()
|
||||
}
|
||||
}
|
||||
@@ -133,8 +137,7 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
}
|
||||
|
||||
private fun initBanner() {
|
||||
val bannerView: BannerViewPager<BannerInfo?> =
|
||||
binding.bannerView as BannerViewPager<BannerInfo?>
|
||||
val bannerView: BannerViewPager<BannerInfo?> = binding.bannerView as BannerViewPager<BannerInfo?>
|
||||
homeViewModel.bannerLiveData.observe(this) {
|
||||
it?.let {
|
||||
if (ListUtils.isListEmpty(it)) {
|
||||
@@ -185,28 +188,7 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
}
|
||||
|
||||
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 HomeTabRoomFragment.newInstance(itemId.toInt()).apply {
|
||||
this.autoRefreshOnVisible = true
|
||||
}
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int {
|
||||
return tabList.size
|
||||
}
|
||||
}
|
||||
ViewPagerHelper.bind(binding.magicIndicator, binding.viewPager)
|
||||
homeViewModel.homeTabLiveData.observe(this) {
|
||||
loadTabList(transformTabList(it))
|
||||
}
|
||||
@@ -222,7 +204,10 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
list
|
||||
)
|
||||
magicIndicatorAdapter.setOnItemSelectListener { position, _ ->
|
||||
binding.viewPager.currentItem = position
|
||||
// ToastUtils.show("选择 ${tabList.get(position).name}")
|
||||
binding.magicIndicator.onPageSelected(position)
|
||||
mPosition = position
|
||||
changePage()
|
||||
}
|
||||
commonNavigator.adapter = magicIndicatorAdapter
|
||||
binding.magicIndicator.navigator = commonNavigator
|
||||
@@ -230,7 +215,8 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
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)
|
||||
changePage()
|
||||
// binding.magicIndicator.onPageSelected(binding.viewPager.currentItem)
|
||||
}
|
||||
|
||||
private fun transformTabList(list: List<HomeTagInfo>): List<HomeTagInfo> {
|
||||
@@ -249,10 +235,36 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
}
|
||||
tabList.clear()
|
||||
tabList.addAll(newList)
|
||||
binding.viewPager.adapter?.notifyDataSetChanged()
|
||||
fragmentArray.clear()
|
||||
if (tabList.isVerify()) {
|
||||
tabList.forEach {
|
||||
fragmentArray.put(it.id,HomeTabRoomFragment.newInstance(it.id))
|
||||
}
|
||||
}
|
||||
|
||||
// binding.viewPager.adapter?.notifyDataSetChanged()
|
||||
|
||||
resetTabIndicator(tabList.map { it.name })
|
||||
}
|
||||
|
||||
private fun changePage() {
|
||||
val showFragment = fragmentArray.get(tabList.get(mPosition).id)
|
||||
if (showFragment === tempFragment) return
|
||||
|
||||
val transaction: FragmentTransaction = childFragmentManager.beginTransaction()
|
||||
if (!showFragment.isAdded) {
|
||||
transaction.add(R.id.view_pager, showFragment, null)
|
||||
}
|
||||
transaction.show(showFragment)
|
||||
if (tempFragment != null) {
|
||||
transaction.hide(tempFragment!!)
|
||||
}
|
||||
tempFragment = showFragment
|
||||
if (!isDetached) {
|
||||
transaction.commitNowAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
tabList.clear()
|
||||
|
@@ -16,6 +16,8 @@ import com.chwl.app.home.adapter.HomeRoomAdapter
|
||||
import com.chwl.app.support.FragmentVisibleStateHelper
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.library.common.util.isVerify
|
||||
import com.chwl.library.utils.ListUtils
|
||||
|
||||
/**
|
||||
* 首页-房间列表
|
||||
@@ -30,6 +32,7 @@ class HomeTabRoomFragment : BaseViewBindingFragment<HomeTabRoomFragmentBinding>(
|
||||
private val homeViewModel: HomeViewModel by viewModels()
|
||||
|
||||
var autoRefreshOnVisible = false
|
||||
var isLoadBanner = false
|
||||
|
||||
private var pageNum = 1
|
||||
private val pageSize = 50
|
||||
@@ -87,9 +90,42 @@ class HomeTabRoomFragment : BaseViewBindingFragment<HomeTabRoomFragmentBinding>(
|
||||
loadData(false)
|
||||
}, binding.mRecyclerRoom)
|
||||
|
||||
|
||||
homeViewModel.tabRoomListLiveData.observe(this) {
|
||||
if (pageNum == 1){
|
||||
isLoadBanner = true
|
||||
homeViewModel.getSecondBannerInfo()
|
||||
}
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
|
||||
|
||||
homeViewModel.secondBannerLiveData.observe(this){
|
||||
it?.let {
|
||||
if (ListUtils.isListEmpty(it)) {
|
||||
isLoadBanner = false
|
||||
return@let
|
||||
}
|
||||
val newData = adapter.data.toMutableList()
|
||||
if (newData.isVerify()) {
|
||||
|
||||
val homeRoomInfo = HomeRoomInfo().apply {
|
||||
isBanner = true
|
||||
bannerVoList = it
|
||||
}
|
||||
|
||||
if (newData.size >= 6) {
|
||||
newData.add(5,homeRoomInfo)
|
||||
} else {
|
||||
newData.add(homeRoomInfo)
|
||||
}
|
||||
adapter.setNewData(newData)
|
||||
}
|
||||
isLoadBanner = false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun onLazyLoad() {
|
||||
@@ -98,6 +134,7 @@ class HomeTabRoomFragment : BaseViewBindingFragment<HomeTabRoomFragmentBinding>(
|
||||
}
|
||||
|
||||
private fun loadData(isRefresh: Boolean) {
|
||||
if (isLoadBanner) return
|
||||
if (isRefresh) {
|
||||
pageNum = 1
|
||||
} else {
|
||||
|
@@ -115,7 +115,7 @@
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:layout_marginEnd="@dimen/dp_12" />
|
||||
|
||||
<androidx.viewpager2.widget.ViewPager2
|
||||
<FrameLayout
|
||||
android:id="@+id/view_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
@@ -1,24 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.zhpan.bannerview.BannerViewPager
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:id="@+id/banner_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginHorizontal="@dimen/dp_14"
|
||||
android:layout_height="@dimen/dp_118"
|
||||
android:layout_marginHorizontal="@dimen/dp_15"
|
||||
android:layout_marginTop="@dimen/dp_9"
|
||||
android:background="@drawable/base_shape_negative_5dp"
|
||||
app:bvp_auto_play="true"
|
||||
app:bvp_can_loop="true"
|
||||
android:nestedScrollingEnabled="false"
|
||||
app:bvp_indicator_checked_color="@color/color_9168FA"
|
||||
app:bvp_indicator_normal_color="@color/color_B3B3C3"
|
||||
app:bvp_indicator_radius="@dimen/dp_4"
|
||||
app:bvp_indicator_visibility="visible"
|
||||
app:bvp_page_style="multi_page_scale"
|
||||
app:layout_constraintDimensionRatio="351:80"/>
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!-- <View-->
|
||||
<!-- android:id="@+id/banner_view_click"-->
|
||||
<!-- app:layout_constraintStart_toStartOf="@+id/banner_view"-->
|
||||
<!-- app:layout_constraintEnd_toEndOf="@+id/banner_view"-->
|
||||
<!-- app:layout_constraintTop_toTopOf="@+id/banner_view"-->
|
||||
<!-- app:layout_constraintBottom_toBottomOf="@+id/banner_view"-->
|
||||
<!-- android:layout_width="0dp"-->
|
||||
<!-- android:layout_height="0dp"/>-->
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -1,13 +1,11 @@
|
||||
package com.chwl.core.home.model
|
||||
|
||||
import com.chwl.core.R
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.base.BaseModel
|
||||
import com.chwl.core.bean.response.ServiceResult
|
||||
import com.chwl.core.community.CommunityConstant
|
||||
import com.chwl.core.community.bean.UnReadCountInfo
|
||||
import com.chwl.core.home.bean.*
|
||||
import com.chwl.core.room.bean.AnchorInfo
|
||||
import com.chwl.core.room.bean.MeCenterInfo
|
||||
import com.chwl.core.user.bean.DiamondGiveHistoryInfo
|
||||
import com.chwl.core.user.bean.SearchUserInfo
|
||||
@@ -15,7 +13,6 @@ import com.chwl.core.user.bean.UserInfo
|
||||
import com.chwl.core.utils.net.RxHelper
|
||||
import com.chwl.core.utils.net.launchRequest
|
||||
import com.chwl.library.net.rxnet.RxNet
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import io.reactivex.Single
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
@@ -75,6 +72,15 @@ object HomeModel : BaseModel() {
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun getHomeSecondBanner(type: String): List<BannerInfo>? =
|
||||
launchRequest {
|
||||
api.apiHomeSecondBanner(
|
||||
type, AuthModel.get().currentUid.toString(),
|
||||
CommunityConstant.VERSION_VALID_TYPE,
|
||||
AuthModel.get().ticket
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun getCommonRoom(tabId: Int, pageNum: Int, pageSize: Int): List<HomeRoomInfo>? =
|
||||
launchRequest {
|
||||
api.getCommonRoom(tabId, pageNum, pageSize)
|
||||
@@ -286,6 +292,14 @@ object HomeModel : BaseModel() {
|
||||
@Query("ticket") ticket: String
|
||||
): ServiceResult<List<BannerInfo>>
|
||||
|
||||
@GET("/home/second/banner")
|
||||
suspend fun apiHomeSecondBanner(
|
||||
@Query("type") type: String,
|
||||
@Query("uid") uid: String,
|
||||
@Query("types") types: String,
|
||||
@Query("ticket") ticket: String
|
||||
): ServiceResult<List<BannerInfo>>
|
||||
|
||||
/**
|
||||
* 首页热门房间
|
||||
*
|
||||
|
Reference in New Issue
Block a user