feat:调整首页相关类命名

This commit is contained in:
Max
2023-12-22 10:08:38 +08:00
parent a58165213d
commit c7dd6ec61c
17 changed files with 94 additions and 915 deletions

View File

@@ -53,7 +53,6 @@ import com.nnbc123.app.home.HomeViewModel;
import com.nnbc123.app.home.dialog.NewUserHelloDialog;
import com.nnbc123.app.home.dialog.ProtocolUpdateDialog;
import com.nnbc123.app.home.fragment.HomeFragment;
import com.nnbc123.app.home.fragment.HomeFragment2;
import com.nnbc123.app.home.fragment.MeFragment;
import com.nnbc123.app.home.fragment.MsgFragment;
import com.nnbc123.app.home.fragment.PartyFragment;
@@ -178,7 +177,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
{
fragmentArray.put(MainTabType.TAB_TYPE_PARTY, new PartyFragment());
fragmentArray.put(MainTabType.TAB_TYPE_HOME, new HomeFragment2());
fragmentArray.put(MainTabType.TAB_TYPE_HOME, new HomeFragment());
fragmentArray.put(MainTabType.TAB_TYPE_MSG, new MsgFragment());
fragmentArray.put(MainTabType.TAB_TYPE_SQUARE, new SquareFragment());
fragmentArray.put(MainTabType.TAB_TYPE_ME, new MeFragment());

View File

@@ -3,15 +3,14 @@ package com.nnbc123.app.home.adapter
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.nnbc123.app.R
import com.nnbc123.core.home.bean.HomeRoomInfo
import com.nnbc123.core.user.bean.UserInfo
/**
* Created by Max on 2023/12/18 18:33
* Desc:
**/
class MakeFriendsUserAdapter :
BaseQuickAdapter<UserInfo, BaseViewHolder>(R.layout.home_make_friends_list_item) {
class HomeFriendsUserAdapter :
BaseQuickAdapter<UserInfo, BaseViewHolder>(R.layout.home_friends_list_item) {
override fun convert(helper: BaseViewHolder, item: UserInfo) {
helper.setText(R.id.tv_name, item.nick)
}

View File

@@ -1,8 +1,5 @@
package com.nnbc123.app.home.adapter
import android.util.Log
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import com.nnbc123.app.R
import com.nnbc123.app.ui.utils.load
@@ -16,7 +13,7 @@ import com.zhpan.bannerview.BaseViewHolder
* Created by Max on 2023/12/18 19:02
* Desc:
**/
class PartyHotMessageAdapter : BaseBannerAdapter<GiftServiceMsgVo>() {
class HomePartyMessageAdapter : BaseBannerAdapter<GiftServiceMsgVo>() {
override fun bindData(
holder: BaseViewHolder<GiftServiceMsgVo>,
item: GiftServiceMsgVo,
@@ -33,7 +30,7 @@ class PartyHotMessageAdapter : BaseBannerAdapter<GiftServiceMsgVo>() {
}
override fun getLayoutId(viewType: Int): Int {
return R.layout.home_party_item_hot_message
return R.layout.home_party_item_message
}
fun getItem(position: Int): GiftServiceMsgVo? {

View File

@@ -12,7 +12,7 @@ import com.nnbc123.core.home.bean.HomeRoomInfo
* Created by Max on 2023/12/18 18:33
* Desc:
**/
class PartyRoomAdapter :
class HomePartyRoomAdapter :
BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layout.home_party_room_item) {
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
helper.apply {

View File

@@ -1,65 +1,86 @@
package com.nnbc123.app.home.fragment
import android.annotation.SuppressLint
import android.view.View
import androidx.databinding.DataBindingUtil
import com.nnbc123.core.DemoCache
import com.nnbc123.core.UriProvider
import com.nnbc123.core.statistic.StatisticManager
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
import android.graphics.Color
import android.view.Gravity
import android.widget.LinearLayout
import com.chuhai.utils.ktx.singleClick
import com.gyf.immersionbar.ImmersionBar
import com.nnbc123.app.R
import com.nnbc123.app.base.BaseFragment
import com.nnbc123.app.databinding.FragmentHomeBinding
import com.nnbc123.app.avroom.adapter.RoomVPAdapter
import com.nnbc123.app.base.BaseBindingFragment
import com.nnbc123.app.databinding.HomeFragmentBinding
import com.nnbc123.app.home.adapter.HomeMagicIndicatorAdapter
import com.nnbc123.app.home.helper.OpenRoomHelper
import com.nnbc123.app.ui.search.SearchActivity
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.DemoCache
import com.nnbc123.core.UriProvider
import com.nnbc123.core.initial.InitialModel
import com.nnbc123.core.statistic.StatisticManager
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
import com.nnbc123.library.annatation.ActLayoutRes
/**
* 音萌首页
*/
class HomeFragment : BaseFragment(), View.OnClickListener {
private lateinit var mBinding: FragmentHomeBinding
override fun onClick(v: View) {
when (v.id) {
R.id.tv_search -> {
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_SEARCH, "进入搜索页")
SearchActivity.start(activity)
//为啥触发条件这么恶心 我也不知道啊
if (DemoCache.readAnchorCardView() == 0) {
DemoCache.saveAnchorCardView(1)
}
}
R.id.iv_ranking -> {
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_HOME_RANK_CLICK, "首页_榜单")
CommonWebViewActivity.start(mContext, UriProvider.getRanking())
}
R.id.iv_my_room -> {
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_HOME_MY_ROOM_CLICK, "首页_我的房间")
OpenRoomHelper.openRoom(baseActivity)
* Created by Max on 2023/12/18 17:51
* Desc:首页
**/
@ActLayoutRes(R.layout.home_fragment)
class HomeFragment : BaseBindingFragment<HomeFragmentBinding>() {
override fun initiate() {
ImmersionBar.with(this).titleBarMarginTop(mBinding.magicIndicator).init()
initTab()
initEvent()
}
private fun initEvent() {
mBinding.ivMyRoom.singleClick {
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_HOME_MY_ROOM_CLICK, "首页_我的房间")
OpenRoomHelper.openRoom(baseActivity)
}
mBinding.ivRanking.singleClick {
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_HOME_RANK_CLICK, "首页_榜单")
CommonWebViewActivity.start(mContext, UriProvider.getRanking())
}
mBinding.tvSearch.singleClick {
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_SEARCH, "进入搜索页")
SearchActivity.start(activity)
//为啥触发条件这么恶心 我也不知道啊
if (DemoCache.readAnchorCardView() == 0) {
DemoCache.saveAnchorCardView(1)
}
}
}
override fun getRootLayoutId(): Int {
return R.layout.fragment_home
private fun initTab() {
val tagList = arrayListOf("派对", "交友")
val fragmentList = listOf(HomePartyFragment(), HomeFriendsFragment())
val commonNavigator = CommonNavigator(context)
commonNavigator.setTitleWrapContent(true)
commonNavigator.setTitleGravity(Gravity.CENTER_VERTICAL)
val magicIndicatorAdapter = HomeMagicIndicatorAdapter(context, tagList)
magicIndicatorAdapter.setOnItemSelectListener { position, view ->
mBinding.viewPager.currentItem = position
}
magicIndicatorAdapter.normalColor = Color.parseColor("#696D7A")
magicIndicatorAdapter.selectedColor = Color.parseColor("#2B2D33")
commonNavigator.adapter = magicIndicatorAdapter
mBinding.magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
mBinding.viewPager.offscreenPageLimit = 5
mBinding.viewPager.adapter =
RoomVPAdapter(childFragmentManager, fragmentList)
ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager)
InitialModel.get().cacheInitInfo?.defaultTab?.let {
val tab = it - 1
if (it >= 0 && it < tagList.size) {
mBinding.viewPager.currentItem = tab
}
}
}
override fun onFindViews() {
mBinding = DataBindingUtil.bind(mView)!!
}
override fun onSetListener() {
mBinding.click = this
}
@SuppressLint("CheckResult")
override fun initiate() {
requireActivity().supportFragmentManager
.beginTransaction()
.replace(R.id.fragment_container_view, RecommendFragment.newInstance())
.commitAllowingStateLoss()
}
}

View File

@@ -1,86 +0,0 @@
package com.nnbc123.app.home.fragment
import android.graphics.Color
import android.view.Gravity
import android.widget.LinearLayout
import com.chuhai.utils.ktx.singleClick
import com.gyf.immersionbar.ImmersionBar
import com.nnbc123.app.R
import com.nnbc123.app.avroom.adapter.RoomVPAdapter
import com.nnbc123.app.base.BaseBindingFragment
import com.nnbc123.app.databinding.HomeFragmentBinding
import com.nnbc123.app.home.adapter.HomeMagicIndicatorAdapter
import com.nnbc123.app.home.helper.OpenRoomHelper
import com.nnbc123.app.ui.search.SearchActivity
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.DemoCache
import com.nnbc123.core.UriProvider
import com.nnbc123.core.initial.InitialModel
import com.nnbc123.core.statistic.StatisticManager
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
import com.nnbc123.library.annatation.ActLayoutRes
/**
* Created by Max on 2023/12/18 17:51
* Desc:
**/
@ActLayoutRes(R.layout.home_fragment)
class HomeFragment2 : BaseBindingFragment<HomeFragmentBinding>() {
override fun initiate() {
ImmersionBar.with(this).titleBarMarginTop(mBinding.magicIndicator).init()
initTab()
initEvent()
}
private fun initEvent() {
mBinding.ivMyRoom.singleClick {
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_HOME_MY_ROOM_CLICK, "首页_我的房间")
OpenRoomHelper.openRoom(baseActivity)
}
mBinding.ivRanking.singleClick {
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_HOME_RANK_CLICK, "首页_榜单")
CommonWebViewActivity.start(mContext, UriProvider.getRanking())
}
mBinding.tvSearch.singleClick {
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_SEARCH, "进入搜索页")
SearchActivity.start(activity)
//为啥触发条件这么恶心 我也不知道啊
if (DemoCache.readAnchorCardView() == 0) {
DemoCache.saveAnchorCardView(1)
}
}
}
private fun initTab() {
val tagList = arrayListOf("派对", "交友")
val fragmentList = listOf(PartyFragment2(), MakeFriendsFragment())
val commonNavigator = CommonNavigator(context)
commonNavigator.setTitleWrapContent(true)
commonNavigator.setTitleGravity(Gravity.CENTER_VERTICAL)
val magicIndicatorAdapter = HomeMagicIndicatorAdapter(context, tagList)
magicIndicatorAdapter.setOnItemSelectListener { position, view ->
mBinding.viewPager.currentItem = position
}
magicIndicatorAdapter.normalColor = Color.parseColor("#696D7A")
magicIndicatorAdapter.selectedColor = Color.parseColor("#2B2D33")
commonNavigator.adapter = magicIndicatorAdapter
mBinding.magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
mBinding.viewPager.offscreenPageLimit = 5
mBinding.viewPager.adapter =
RoomVPAdapter(childFragmentManager, fragmentList)
ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager)
InitialModel.get().cacheInitInfo?.defaultTab?.let {
val tab = it - 1
if (it >= 0 && it < tagList.size) {
mBinding.viewPager.currentItem = tab
}
}
}
}

View File

@@ -2,8 +2,7 @@ package com.nnbc123.app.home.fragment
import com.nnbc123.app.R
import com.nnbc123.app.base.BaseBindingFragment
import com.nnbc123.app.databinding.HomeMakeFriendsFragmentBinding
import com.nnbc123.app.home.adapter.PartyRoomAdapter
import com.nnbc123.app.databinding.HomeFriendsFragmentBinding
import com.nnbc123.library.annatation.ActLayoutRes
/**
@@ -11,12 +10,12 @@ import com.nnbc123.library.annatation.ActLayoutRes
* Desc:交友
**/
@ActLayoutRes(R.layout.home_make_friends_fragment)
class MakeFriendsFragment : BaseBindingFragment<HomeMakeFriendsFragmentBinding>() {
@ActLayoutRes(R.layout.home_friends_fragment)
class HomeFriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
override fun initiate() {
childFragmentManager
.beginTransaction()
.replace(R.id.fragment_container_view, MakeFriendsListFragment())
.replace(R.id.fragment_container_view, HomeFriendsListFragment())
.commitAllowingStateLoss()
}
}

View File

@@ -5,9 +5,9 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.nnbc123.app.R
import com.nnbc123.app.base.BaseBindingFragment
import com.nnbc123.app.common.EmptyViewHelper
import com.nnbc123.app.databinding.HomeMakeFriendsListFragmentBinding
import com.nnbc123.app.databinding.HomeFriendsListFragmentBinding
import com.nnbc123.app.home.HomeViewModel
import com.nnbc123.app.home.adapter.MakeFriendsUserAdapter
import com.nnbc123.app.home.adapter.HomeFriendsUserAdapter
import com.nnbc123.app.ui.utils.RVDelegate
import com.nnbc123.core.user.bean.UserInfo
import com.nnbc123.library.annatation.ActLayoutRes
@@ -16,9 +16,9 @@ import com.nnbc123.library.annatation.ActLayoutRes
* Created by Max on 2023/12/18 19:35
* Desc:
**/
@ActLayoutRes(R.layout.home_make_friends_list_fragment)
class MakeFriendsListFragment : BaseBindingFragment<HomeMakeFriendsListFragmentBinding>() {
private val adapter = MakeFriendsUserAdapter()
@ActLayoutRes(R.layout.home_friends_list_fragment)
class HomeFriendsListFragment : BaseBindingFragment<HomeFriendsListFragmentBinding>() {
private val adapter = HomeFriendsUserAdapter()
private val homeViewModel: HomeViewModel by activityViewModels()
override fun initiate() {
val rvDelegate = RVDelegate.Builder<UserInfo>()

View File

@@ -11,14 +11,12 @@ import com.nnbc123.app.base.BaseBindingFragment
import com.nnbc123.app.databinding.HomePartyFragmentBinding
import com.nnbc123.app.home.HomeViewModel
import com.nnbc123.app.home.activity.MoreRoomActivity
import com.nnbc123.app.home.adapter.PartyHotMessageAdapter
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.ui.utils.load
import com.nnbc123.app.ui.webview.CommonWebViewActivity
import com.nnbc123.core.auth.AuthModel
import com.nnbc123.core.home.bean.GiftServiceMsgVo
import com.nnbc123.core.home.event.RefreshHomeDataEvent
import com.nnbc123.core.statistic.StatisticManager
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
@@ -32,7 +30,7 @@ import org.greenrobot.eventbus.ThreadMode
* Desc:派对
**/
@ActLayoutRes(R.layout.home_party_fragment)
class PartyFragment2 : BaseBindingFragment<HomePartyFragmentBinding>() {
class HomePartyFragment : BaseBindingFragment<HomePartyFragmentBinding>() {
private val homeViewModel: HomeViewModel by activityViewModels()
@@ -52,7 +50,7 @@ class PartyFragment2 : BaseBindingFragment<HomePartyFragmentBinding>() {
}
childFragmentManager
.beginTransaction()
.replace(R.id.fragment_container_view, PartyHotRoomFragment())
.replace(R.id.fragment_container_view, HomePartyHotRoomFragment())
.commitAllowingStateLoss()
}
@@ -75,7 +73,7 @@ class PartyFragment2 : BaseBindingFragment<HomePartyFragmentBinding>() {
}
private fun initHotMessage() {
val adapter = PartyHotMessageAdapter()
val adapter = HomePartyMessageAdapter()
mBinding.hotMessage.apply {
setOrientation(ViewPager2.ORIENTATION_VERTICAL)
setAdapter(adapter)

View File

@@ -10,7 +10,7 @@ import com.nnbc123.app.base.BaseBindingFragment
import com.nnbc123.app.common.EmptyViewHelper
import com.nnbc123.app.databinding.HomePartyRoomFragmentBinding
import com.nnbc123.app.home.HomeViewModel
import com.nnbc123.app.home.adapter.PartyRoomAdapter
import com.nnbc123.app.home.adapter.HomePartyRoomAdapter
import com.nnbc123.app.ui.utils.RVDelegate
import com.nnbc123.core.home.bean.HomeRoomInfo
import com.nnbc123.core.home.event.RefreshHomeDataEvent
@@ -26,8 +26,8 @@ import org.greenrobot.eventbus.ThreadMode
* Desc:
**/
@ActLayoutRes(R.layout.home_party_room_fragment)
class PartyHotRoomFragment : BaseBindingFragment<HomePartyRoomFragmentBinding>() {
private val adapter = PartyRoomAdapter()
class HomePartyHotRoomFragment : BaseBindingFragment<HomePartyRoomFragmentBinding>() {
private val adapter = HomePartyRoomAdapter()
private val homeViewModel: HomeViewModel by activityViewModels()
override fun initiate() {
val rvDelegate = RVDelegate.Builder<HomeRoomInfo>()

View File

@@ -1,345 +0,0 @@
package com.nnbc123.app.home.fragment
import android.annotation.SuppressLint
import android.graphics.Color
import android.os.Bundle
import android.view.Gravity
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.viewpager.widget.ViewPager
import com.nnbc123.app.R
import com.nnbc123.app.avroom.activity.AVRoomActivity
import com.nnbc123.app.avroom.adapter.RoomVPAdapter
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.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.im.avtivity.NimP2PMessageActivity
import com.nnbc123.app.ui.utils.RVDelegate
import com.nnbc123.app.ui.utils.load
import com.nnbc123.app.ui.webview.CommonWebViewActivity
import com.nnbc123.app.ui.widget.NewFriendsFilterWindow
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.event.RefreshHomeDataEvent
import com.nnbc123.core.statistic.StatisticManager
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
import com.scwang.smartrefresh.layout.internal.ProgressDrawable
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
import java.util.concurrent.TimeUnit
/**
* 音萌首页
*/
class RecommendFragment : BaseFragment(),
MainMagicIndicatorAdapter.OnItemSelectListener {
private lateinit var mBinding: FragmentRecommendBinding
private var mFragmentsBottom: MutableList<Fragment> = ArrayList()
private lateinit var singleAnchorAdapter: HomeSingleAnchorAdapter
private lateinit var giftServiceAdapter: GiftServiceAdapter
private lateinit var rvDelegate: RVDelegate<GiftServiceMsgVo>
private var disposable: Disposable? = null
private val homeViewModel: HomeViewModel by activityViewModels()
private var currGender: Int? = null
//仅埋点使用,不影响业务逻辑
private val abcArray = arrayOf("A", "B", "C", "D")
private var currMatchClick = abcArray[0]
companion object {
fun newInstance(): RecommendFragment {
val args = Bundle()
val fragment = RecommendFragment()
fragment.arguments = args
return fragment
}
}
override fun getRootLayoutId(): Int {
return R.layout.fragment_recommend
}
override fun onFindViews() {
mBinding = DataBindingUtil.bind(mView)!!
}
override fun onResume() {
super.onResume()
loadData()
homeViewModel.getServiceGiftRecord()
}
@SuppressLint("SetTextI18n")
override fun initiate() {
initRefreshView()
initTitleTab()
//initSingleAnchor()
giftServiceAdapter = GiftServiceAdapter()
giftServiceAdapter.setOnItemClickListener { _, _, position ->
giftServiceAdapter.getItem(position)?.let {
AVRoomActivity.start(mContext, it.roomUid)
}
}
rvDelegate = RVDelegate.Builder<GiftServiceMsgVo>()
.setAdapter(giftServiceAdapter)
.setRecyclerView(mBinding.rvGiftService)
.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 != 4) {
mBinding.llResource.isGone = true
return@observe
}
mBinding.llResource.isGone = false
val resourceViews = arrayOf(
mBinding.ivResource0,
mBinding.ivResource1,
mBinding.ivResource2,
mBinding.ivResource3
)
for (i in resourceViews.indices) {
resourceViews[i].load(it[i].icon)
if (it[i].resourceType == 8) {
mBinding.tvOnlineNum.text = "${it[i].resourceContent}人组队中"
}
resourceViews[i].setOnClickListener { _ ->
currMatchClick = abcArray[i]
StatisticManager.Instance().onEvent(
"${currMatchClick}_match_click",
"资源位点击",
mapOf("user_id" to AuthModel.get().currentUid.toString())
)
when {
it[i].resourceType == 5 -> {
CommonWebViewActivity.start(context, it[i].resourceContent)
}
i == 3 -> {
dialogManager.showProgressDialog(mContext)
homeViewModel.getHomeChatPick()
}
else -> {
dialogManager.showProgressDialog(mContext)
homeViewModel.getResourceJumpInfo(it[i].id)
}
}
}
}
}
homeViewModel.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)
}
}
}
homeViewModel.homeChatPickLiveData.observe(viewLifecycleOwner) {
dialogManager.dismissDialog()
it?.let {
if (it.isNotEmpty()) {
NimP2PMessageActivity.start(context, it)
}
}
}
homeViewModel.giftServiceLiveData.observe(viewLifecycleOwner) {
rvDelegate.loadData(it)
}
mBinding.rvGiftService.setOnTouchListener { _, _ -> true }
disposable = Observable.intervalRange(0, Int.MAX_VALUE.toLong(), 0, 5, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
.filter { rvDelegate.adapter.itemCount > 0 && isResumed }
.subscribe {
val index = (it % rvDelegate.adapter.itemCount).toInt()
if (index == 0) {
mBinding.rvGiftService.scrollToPosition(index)
} else {
mBinding.rvGiftService.smoothScrollToPosition(index)
}
}
mBinding.tvNewRefresh.setOnClickListener {
homeViewModel.getNewFriendList(currGender)
}
mBinding.tvNewFilter.setOnClickListener {
val popup = NewFriendsFilterWindow(
mContext,
mBinding.tvNewFilter.text.toString()
)
popup.setOnClickListener {
popup.dismiss()
when (it.id) {
R.id.tv_all -> {
homeViewModel.getNewFriendList()
mBinding.tvNewFilter.text = "全部"
currGender = null
}
R.id.tv_man -> {
homeViewModel.getNewFriendList(1)
mBinding.tvNewFilter.text = "男生"
currGender = 1
}
R.id.tv_woman -> {
homeViewModel.getNewFriendList(2)
mBinding.tvNewFilter.text = "女生"
currGender = 2
}
}
}
popup.show(mBinding.tvNewFilter, Gravity.BOTTOM)
}
}
private fun initRefreshView() {
mBinding.refreshLayout.setOnRefreshListener {
mBinding.refreshLayout.finishRefresh()
EventBus.getDefault().post(RefreshHomeDataEvent())
}
mBinding.refreshLayout.isEnableLoadmore = false
mBinding.refreshLayout.isEnableOverScrollBounce = false
val themeColor = requireContext().resources.getColor(R.color.color_666666)
mBinding.refreshHeader.lastUpdateText.setTextColor(themeColor)
mBinding.refreshHeader.titleText.setTextColor(themeColor)
mBinding.refreshHeader.setBackgroundColor(Color.TRANSPARENT)
val progressDrawable = ProgressDrawable()
progressDrawable.setColor(themeColor)
mBinding.refreshHeader.progressView.setImageDrawable(progressDrawable)
}
private fun initTitleTab() {
val tagList = arrayListOf("发现新朋友", "组队开黑")
mFragmentsBottom.add(RoomNewFriendsFragment.newInstance())
mFragmentsBottom.add(HomePlayFragment.newInstance())
val commonNavigator = CommonNavigator(context)
commonNavigator.setTitleWrapContent(true)
val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList)
magicIndicatorAdapter.setResId(R.drawable.ic_home_indicator_center)
magicIndicatorAdapter.textSize = 16
magicIndicatorAdapter.minScale = 0.85f
magicIndicatorAdapter.setOnItemSelectListener(this)
commonNavigator.adapter = magicIndicatorAdapter
mBinding.magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
mBinding.viewPager.offscreenPageLimit = 5
mBinding.viewPager.adapter =
RoomVPAdapter(childFragmentManager, mFragmentsBottom)
ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager)
mBinding.viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int,
positionOffset: Float,
positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
mBinding.tvNewRefresh.isVisible = position == 0
mBinding.tvNewFilter.isVisible = position == 0
}
override fun onPageScrollStateChanged(state: Int) {
}
})
}
private fun initSingleAnchor() {
singleAnchorAdapter = HomeSingleAnchorAdapter()
mBinding.rvSingleAnchor.adapter = singleAnchorAdapter
val layoutManager =
GridLayoutManager(requireContext(), 4, LinearLayoutManager.VERTICAL, false)
mBinding.rvSingleAnchor.layoutManager = layoutManager
homeViewModel.singleAnchorHomeLiveData.observe(this) {
if (it.data.isNullOrEmpty()) {
mBinding.llSingleAnchor.visibility = View.GONE
mBinding.rvSingleAnchor.visibility = View.GONE
} else {
mBinding.llSingleAnchor.visibility = View.VISIBLE
mBinding.rvSingleAnchor.visibility = View.VISIBLE
}
singleAnchorAdapter.setNewData(it.data)
}
}
override fun onItemSelect(position: Int, view: TextView?) {
if (mFragmentsBottom.isEmpty()) {
return
}
mBinding.tvNewRefresh.isVisible = position == 0
mBinding.tvNewFilter.isVisible = position == 0
mBinding.viewPager.currentItem = position
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_TJ_TABEXCHANGE, "用户切换tab次数,热门房间or组队开黑")
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
if (isResumed) {
loadData()
}
}
private fun loadData() {
homeViewModel.getHomeResource()
homeViewModel.getBannerInfo()
//homeViewModel.getHomeSingleAnchorList()
}
override fun onDestroyView() {
super.onDestroyView()
disposable?.dispose()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
EventBus.getDefault().register(this)
}
override fun onDestroy() {
super.onDestroy()
EventBus.getDefault().unregister(this)
}
}

View File

@@ -1,95 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="click"
type="android.view.View.OnClickListener" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_normal_1c1b22">
<View
android:id="@+id/view_bg"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/bg_me_page"
app:layout_constraintDimensionRatio="750:250"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/title_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom"
android:paddingTop="50dp"
android:paddingBottom="@dimen/dp_10"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_search"
android:layout_width="0dp"
android:layout_height="32dp"
android:layout_gravity="end"
android:layout_marginStart="15dp"
android:layout_marginEnd="23dp"
android:layout_weight="1"
android:background="@drawable/shape_room_temp"
android:drawableStart="@mipmap/ic_search_main"
android:drawablePadding="6dp"
android:gravity="center_vertical"
android:onClick="@{click}"
android:paddingStart="13dp"
android:text="搜索房间/昵称/ID"
android:textColor="#9EB5C5"
android:textSize="12sp" />
<ImageView
android:id="@+id/iv_ranking"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="23dp"
android:layout_marginBottom="4dp"
android:onClick="@{click}"
android:scaleType="center"
android:src="@drawable/home_ic_rank" />
<ImageView
android:id="@+id/iv_my_room"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="2dp"
android:adjustViewBounds="true"
android:onClick="@{click}"
android:scaleType="center"
android:src="@drawable/home_ic_my_room"
android:visibility="gone" />
</LinearLayout>
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment_container_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,308 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="click"
type="android.view.View.OnClickListener" />
</data>
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.scwang.smartrefresh.layout.header.ClassicsHeader
android:id="@+id/refresh_header"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
app:elevation="0dp"
app:layout_behavior="com.nnbc123.app.ui.widget.AppBarLayoutBehavior">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="@color/transparent"
app:layout_scrollFlags="scroll|enterAlwaysCollapsed">
<LinearLayout
android:layout_width="match_parent"
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"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="15dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_resource_0"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@drawable/ic_resource_0"
app:layout_constraintDimensionRatio="94:120"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.274" />
<ImageView
android:id="@+id/iv_resource_1"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@drawable/ic_resource_1"
app:layout_constraintDimensionRatio="120:56"
app:layout_constraintEnd_toStartOf="@id/iv_resource_2"
app:layout_constraintTop_toTopOf="@id/iv_resource_0"
app:layout_constraintWidth_percent="0.355" />
<ImageView
android:id="@+id/iv_resource_2"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="3dp"
android:src="@drawable/ic_resource_2"
app:layout_constraintDimensionRatio="120:56"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/iv_resource_0"
app:layout_constraintWidth_percent="0.355" />
<ImageView
android:id="@+id/iv_resource_3"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@drawable/ic_resource_3"
app:layout_constraintBottom_toBottomOf="@id/iv_resource_0"
app:layout_constraintDimensionRatio="243:56"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintWidth_percent="0.705" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="11dp"
android:layout_marginBottom="10dp"
android:gravity="bottom"
app:layout_constraintBottom_toBottomOf="@id/iv_resource_3"
app:layout_constraintEnd_toEndOf="@id/iv_resource_3">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:src="@drawable/ic_home_pick_avatar0" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:src="@drawable/ic_home_pick_avatar1" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_home_pick_avatar2" />
</LinearLayout>
<TextView
android:id="@+id/tv_online_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginBottom="10dp"
android:drawableStart="@drawable/shape_circle_82fbff_small"
android:drawablePadding="5dp"
android:textColor="@color/white"
android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="@id/iv_resource_3"
app:layout_constraintStart_toStartOf="@id/iv_resource_3"
tools:text="999人组队中" />
<FrameLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="20dp"
android:background="@drawable/bg_gift_service"
app:layout_constraintDimensionRatio="694:148"
app:layout_constraintEnd_toEndOf="@id/iv_resource_3"
app:layout_constraintStart_toStartOf="@id/iv_resource_0"
app:layout_constraintTop_toBottomOf="@id/iv_resource_0">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="21dp"
android:layout_marginTop="7dp"
android:src="@drawable/ic_home_hot" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_gift_service"
android:layout_width="match_parent"
android:layout_height="24dp"
android:layout_gravity="bottom"
android:layout_marginStart="15dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="11dp" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout
android:id="@+id/ll_single_anchor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:paddingTop="8dp"
android:visibility="gone"
tools:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="人气主播"
android:textColor="@color/color_333333"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="15dp"
android:drawableRight="@drawable/arrow_right"
android:drawablePadding="@dimen/dp_3"
android:text="更多"
android:textColor="#8A8CAB"
android:textSize="12sp" />
</FrameLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_single_anchor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="@dimen/dp_12"
android:layout_marginEnd="12dp"
android:layout_marginBottom="@dimen/dp_8"
android:background="@drawable/shape_room_single_bg"
android:overScrollMode="never"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:scrollbars="none"
android:visibility="gone"
tools:visibility="gone" />
</LinearLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout>
<FrameLayout
android:id="@+id/fl_indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:paddingBottom="5dp">
<com.nnbc123.app.ui.widget.magicindicator.MagicIndicator
android:id="@+id/magic_indicator"
android:layout_width="wrap_content"
android:layout_height="31dp"
android:paddingLeft="13dp"
android:paddingRight="10dp" />
<com.nnbc123.library.widget.DrawableCenterTextView
android:id="@+id/tv_new_refresh"
android:layout_width="65dp"
android:layout_height="23dp"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="74dp"
android:background="@drawable/shape_white_round_23dp"
android:drawableEnd="@drawable/ic_home_refresh_new"
android:drawablePadding="3dp"
android:gravity="center_vertical"
android:text="换一换"
android:textColor="#ff878b9c"
android:textSize="11sp" />
<com.nnbc123.library.widget.DrawableCenterTextView
android:id="@+id/tv_new_filter"
android:layout_width="53dp"
android:layout_height="23dp"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="15dp"
android:background="@drawable/shape_white_round_23dp"
android:drawableEnd="@drawable/ic_home_arrow_new"
android:drawablePadding="3dp"
android:gravity="center_vertical"
android:text="全部"
android:textColor="#ff878b9c"
android:textSize="11sp" />
</FrameLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</layout>