feat:初步完善【首页-派对】数据与UI对接
This commit is contained in:
@@ -2,16 +2,10 @@ package com.nnbc123.app.home.activity
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import com.nnbc123.app.R
|
||||
import com.nnbc123.app.base.BaseActivity
|
||||
import com.nnbc123.app.home.fragment.PartyFragment
|
||||
import com.netease.nim.uikit.StatusBarUtil
|
||||
import com.nnbc123.app.base.BaseBindingActivity
|
||||
import com.nnbc123.app.base.BaseViewBindingActivity
|
||||
import com.nnbc123.app.databinding.ActivityMoreRoomBinding
|
||||
import com.nnbc123.library.annatation.ActLayoutRes
|
||||
|
||||
@ActLayoutRes(R.layout.activity_more_room)
|
||||
class MoreRoomActivity : BaseBindingActivity<ActivityMoreRoomBinding>() {
|
||||
|
||||
|
@@ -47,8 +47,8 @@ public class HomeMagicIndicatorAdapter extends CommonNavigatorAdapter {
|
||||
scaleTransitionPagerTitleView.setMinScale(minScale);
|
||||
scaleTransitionPagerTitleView.setTextSize(textSize);
|
||||
scaleTransitionPagerTitleView.setAutoResetPivot(true);
|
||||
// int padding = UIUtil.dip2px(context, 5);
|
||||
// scaleTransitionPagerTitleView.setPadding(padding, 0, padding, 0);
|
||||
int padding = UIUtil.dip2px(context, 6);
|
||||
scaleTransitionPagerTitleView.setPadding(padding, 0, padding, 0);
|
||||
scaleTransitionPagerTitleView.setText(mTitleList.get(i));
|
||||
scaleTransitionPagerTitleView.setOnClickListener(view -> {
|
||||
if (mOnItemSelectListener != null) {
|
||||
|
@@ -1,6 +1,14 @@
|
||||
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
|
||||
import com.nnbc123.app.ui.utils.loadAvatar
|
||||
import com.nnbc123.core.home.bean.GiftServiceMsgVo
|
||||
import com.nnbc123.core.utils.subAndReplaceDot2
|
||||
import com.zhpan.bannerview.BaseBannerAdapter
|
||||
import com.zhpan.bannerview.BaseViewHolder
|
||||
|
||||
@@ -8,17 +16,27 @@ import com.zhpan.bannerview.BaseViewHolder
|
||||
* Created by Max on 2023/12/18 19:02
|
||||
* Desc:
|
||||
**/
|
||||
class PartyHotMessageAdapter : BaseBannerAdapter<String>() {
|
||||
class PartyHotMessageAdapter : BaseBannerAdapter<GiftServiceMsgVo>() {
|
||||
override fun bindData(
|
||||
holder: BaseViewHolder<String>?,
|
||||
data: String,
|
||||
holder: BaseViewHolder<GiftServiceMsgVo>,
|
||||
item: GiftServiceMsgVo,
|
||||
position: Int,
|
||||
pageSize: Int
|
||||
) {
|
||||
holder?.setText(R.id.tv_name, data)
|
||||
holder.setText(R.id.tv_nick_send, item.senderNick.subAndReplaceDot2(4))
|
||||
holder.setText(R.id.tv_nick_receiver, item.receiverNick.subAndReplaceDot2(4))
|
||||
holder.setText(R.id.tv_gift_name, item.giftName.subAndReplaceDot2(4))
|
||||
holder.setText(R.id.tv_gift_num, "x${item.giftNum}")
|
||||
holder.findViewById<ImageView>(R.id.iv_avatar_send).loadAvatar(item.senderAvatar)
|
||||
holder.findViewById<ImageView>(R.id.iv_avatar_receiver).loadAvatar(item.receiverAvatar)
|
||||
holder.findViewById<ImageView>(R.id.iv_gift).load(item.giftPicUrl)
|
||||
}
|
||||
|
||||
override fun getLayoutId(viewType: Int): Int {
|
||||
return R.layout.home_party_item_hot_message
|
||||
}
|
||||
|
||||
fun getItem(position: Int): GiftServiceMsgVo? {
|
||||
return mList.getOrNull(position)
|
||||
}
|
||||
}
|
@@ -1,8 +1,11 @@
|
||||
package com.nnbc123.app.home.adapter
|
||||
|
||||
import android.widget.ImageView
|
||||
import androidx.core.view.isGone
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.nnbc123.app.R
|
||||
import com.nnbc123.app.ui.utils.load
|
||||
import com.nnbc123.core.home.bean.HomeRoomInfo
|
||||
|
||||
/**
|
||||
@@ -12,6 +15,27 @@ import com.nnbc123.core.home.bean.HomeRoomInfo
|
||||
class PartyRoomAdapter :
|
||||
BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layout.home_party_room_item) {
|
||||
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
|
||||
helper.setText(R.id.tv_name, item.roomName)
|
||||
helper.apply {
|
||||
getView<ImageView>(R.id.iv_cover).load(item.avatar)
|
||||
setText(R.id.tv_online_number, "${item.onlineNum}")
|
||||
setText(R.id.tv_name, item.title)
|
||||
setGone(R.id.iv_tag, !item.tagPict.isNullOrEmpty())
|
||||
getView<ImageView>(R.id.iv_tag).load(item.tagPict)
|
||||
setGone(R.id.iv_pk, item.isCrossPking)
|
||||
setGone(R.id.iv_cover_foreground, !item.backgroundPic.isNullOrEmpty())
|
||||
getView<ImageView>(R.id.iv_cover_foreground).load(item.backgroundPic, defaultRes = R.color.transparent)
|
||||
}
|
||||
val avatars: Array<ImageView> = arrayOf(
|
||||
helper.getView(R.id.iv_avatar_0),
|
||||
helper.getView(R.id.iv_avatar_1),
|
||||
helper.getView(R.id.iv_avatar_2),
|
||||
helper.getView(R.id.iv_avatar_3),
|
||||
helper.getView(R.id.iv_avatar_4)
|
||||
)
|
||||
for (i in avatars.indices) {
|
||||
val avatarUrl = item.micUsers?.getOrNull(i)?.avatar
|
||||
avatars[i].isGone = avatarUrl.isNullOrBlank()
|
||||
avatars[i].load(avatarUrl)
|
||||
}
|
||||
}
|
||||
}
|
@@ -12,8 +12,15 @@ import com.nnbc123.app.base.BaseBindingFragment
|
||||
import com.nnbc123.app.databinding.HomeFragmentBinding
|
||||
import com.nnbc123.app.home.activity.MoreRoomActivity
|
||||
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.statistic.StatisticManager
|
||||
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
|
||||
import com.nnbc123.library.annatation.ActLayoutRes
|
||||
|
||||
/**
|
||||
@@ -30,14 +37,24 @@ class HomeFragment2 : BaseBindingFragment<HomeFragmentBinding>() {
|
||||
|
||||
private fun initEvent() {
|
||||
mBinding.ivMyRoom.singleClick {
|
||||
StatisticManager.Instance()
|
||||
.onEvent(StatisticsProtocol.EVENT_HOME_MY_ROOM_CLICK, "首页_我的房间")
|
||||
OpenRoomHelper.openRoom(baseActivity)
|
||||
}
|
||||
|
||||
mBinding.ivRanking.singleClick {
|
||||
MoreRoomActivity.start(requireContext())
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -12,9 +12,9 @@ import com.nnbc123.library.annatation.ActLayoutRes
|
||||
**/
|
||||
|
||||
@ActLayoutRes(R.layout.home_make_friends_fragment)
|
||||
class MakeFriendsFragment : BaseBindingFragment<HomeMakeFriendsFragmentBinding>(){
|
||||
class MakeFriendsFragment : BaseBindingFragment<HomeMakeFriendsFragmentBinding>() {
|
||||
override fun initiate() {
|
||||
requireActivity().supportFragmentManager
|
||||
childFragmentManager
|
||||
.beginTransaction()
|
||||
.replace(R.id.fragment_container_view, MakeFriendsListFragment())
|
||||
.commitAllowingStateLoss()
|
||||
|
@@ -1,22 +1,31 @@
|
||||
package com.nnbc123.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.activityViewModels
|
||||
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.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.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
|
||||
import com.nnbc123.library.annatation.ActLayoutRes
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/12/18 17:58
|
||||
@@ -35,34 +44,71 @@ class PartyFragment2 : BaseBindingFragment<HomePartyFragmentBinding>() {
|
||||
initResource()
|
||||
initHotMessage()
|
||||
initBanner()
|
||||
requireActivity().supportFragmentManager
|
||||
mBinding.refreshLayout.isEnableLoadmore = false
|
||||
mBinding.refreshLayout.isEnableOverScrollBounce = false
|
||||
mBinding.refreshLayout.setOnRefreshListener {
|
||||
mBinding.refreshLayout.finishRefresh()
|
||||
EventBus.getDefault().post(RefreshHomeDataEvent())
|
||||
}
|
||||
childFragmentManager
|
||||
.beginTransaction()
|
||||
.replace(R.id.fragment_container_view, PartyRoomFragment())
|
||||
.replace(R.id.fragment_container_view, PartyHotRoomFragment())
|
||||
.commitAllowingStateLoss()
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) {
|
||||
loadData()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
loadData()
|
||||
}
|
||||
|
||||
private fun loadData() {
|
||||
homeViewModel.getHomeResource()
|
||||
homeViewModel.getBannerInfo()
|
||||
homeViewModel.getServiceGiftRecord()
|
||||
}
|
||||
|
||||
private fun initHotMessage() {
|
||||
val adapter = PartyHotMessageAdapter()
|
||||
mBinding.hotMessage.apply {
|
||||
setOrientation(ViewPager2.ORIENTATION_VERTICAL)
|
||||
setAdapter(PartyHotMessageAdapter())
|
||||
setLifecycleRegistry(lifecycle)
|
||||
}.create()
|
||||
mBinding.hotMessage.refreshData(ArrayList<String>().apply {
|
||||
repeat(3) {
|
||||
add(it.toString())
|
||||
setAdapter(adapter)
|
||||
registerLifecycleObserver(lifecycle)
|
||||
setUserInputEnabled(false)
|
||||
setOnPageClickListener { clickedView, position ->
|
||||
adapter.getItem(position)?.let {
|
||||
AVRoomActivity.start(mContext, it.roomUid)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
mBinding.hotMessage.isVisible = true
|
||||
}.create()
|
||||
homeViewModel.giftServiceLiveData.observe(viewLifecycleOwner) {
|
||||
if (it.isSuccess && !it.data.isNullOrEmpty()) {
|
||||
mBinding.hotMessage.isVisible = true
|
||||
mBinding.hotMessage.refreshData(it.data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun initResource(){
|
||||
private fun initResource() {
|
||||
mBinding.ivResourceMore.singleClick {
|
||||
MoreRoomActivity.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
|
||||
@@ -84,24 +130,14 @@ class PartyFragment2 : BaseBindingFragment<HomePartyFragmentBinding>() {
|
||||
"资源位点击",
|
||||
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)
|
||||
}
|
||||
}
|
||||
dialogManager.showProgressDialog(mContext)
|
||||
homeViewModel.getResourceJumpInfo(it[i].id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
homeViewModel.resourceJumpLiveData.observe(this) {
|
||||
homeViewModel.resourceJumpLiveData.observe(this)
|
||||
{
|
||||
dialogManager.dismissDialog()
|
||||
it?.let {
|
||||
if (it.isPick) {
|
||||
@@ -126,4 +162,14 @@ class PartyFragment2 : BaseBindingFragment<HomePartyFragmentBinding>() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
}
|
@@ -0,0 +1,75 @@
|
||||
package com.nnbc123.app.home.fragment
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.nnbc123.app.R
|
||||
import com.nnbc123.app.avroom.activity.AVRoomActivity
|
||||
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.ui.utils.RVDelegate
|
||||
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.nnbc123.library.annatation.ActLayoutRes
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/12/18 19:35
|
||||
* Desc:
|
||||
**/
|
||||
@ActLayoutRes(R.layout.home_party_room_fragment)
|
||||
class PartyHotRoomFragment : BaseBindingFragment<HomePartyRoomFragmentBinding>() {
|
||||
private val adapter = PartyRoomAdapter()
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
override fun initiate() {
|
||||
val rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(adapter)
|
||||
.setRecyclerView(mBinding.recyclerView)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无数据"))
|
||||
.setLayoutManager(GridLayoutManager(context, 2))
|
||||
.build()
|
||||
adapter.setOnItemClickListener { _, _, position ->
|
||||
adapter.getItem(position)?.let {
|
||||
AVRoomActivity.start(context, it.roomUid)
|
||||
StatisticManager.Instance()
|
||||
.onEvent(StatisticsProtocol.EVENT_COMMON_TAB_ROOM_SUCCESS, "派对-热门进入房间成功")
|
||||
}
|
||||
}
|
||||
homeViewModel.hotRoomLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
fun loadData(isRefresh: Boolean) {
|
||||
homeViewModel.getHotRoom(1, Int.MAX_VALUE)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
}
|
@@ -1,35 +0,0 @@
|
||||
package com.nnbc123.app.home.fragment
|
||||
|
||||
import androidx.fragment.app.activityViewModels
|
||||
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.HomePartyRoomFragmentBinding
|
||||
import com.nnbc123.app.home.HomeViewModel
|
||||
import com.nnbc123.app.home.adapter.PartyRoomAdapter
|
||||
import com.nnbc123.app.ui.utils.RVDelegate
|
||||
import com.nnbc123.core.home.bean.HomeRoomInfo
|
||||
import com.nnbc123.library.annatation.ActLayoutRes
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/12/18 19:35
|
||||
* Desc:
|
||||
**/
|
||||
@ActLayoutRes(R.layout.home_party_room_fragment)
|
||||
class PartyRoomFragment : BaseBindingFragment<HomePartyRoomFragmentBinding>() {
|
||||
private val adapter = PartyRoomAdapter()
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
override fun initiate() {
|
||||
val rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(adapter)
|
||||
.setRecyclerView(mBinding.recyclerView)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无数据"))
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.build()
|
||||
homeViewModel.getPartyRecommendRoomList()
|
||||
homeViewModel.partyRecommendRoomLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,24 @@
|
||||
package com.nnbc123.app.home.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import com.zhpan.bannerview.BannerViewPager
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/12/21 17:52
|
||||
* Desc:修复BannerViewPager高度模式为MeasureSpec.UNSPECIFIED,导致的未复用问题
|
||||
**/
|
||||
class HomeBannerViewPager<T> : BannerViewPager<T> {
|
||||
constructor(context: Context?) : super(context)
|
||||
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
|
||||
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
||||
context,
|
||||
attrs,
|
||||
defStyleAttr
|
||||
)
|
||||
|
||||
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
|
||||
val hSize = MeasureSpec.getSize(heightMeasureSpec)
|
||||
super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(hSize, MeasureSpec.EXACTLY))
|
||||
}
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 397 B |
Binary file not shown.
Before Width: | Height: | Size: 650 B |
BIN
app/src/main/res/drawable-xxhdpi/home_bg_message.webp
Normal file
BIN
app/src/main/res/drawable-xxhdpi/home_bg_message.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 49 KiB |
BIN
app/src/main/res/drawable-xxhdpi/home_ic_pk.webp
Normal file
BIN
app/src/main/res/drawable-xxhdpi/home_ic_pk.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
BIN
app/src/main/res/drawable-xxhdpi/ic_home_hot_hot.webp
Normal file
BIN
app/src/main/res/drawable-xxhdpi/ic_home_hot_hot.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
14
app/src/main/res/drawable/home_bg_room_item.xml
Normal file
14
app/src/main/res/drawable/home_bg_room_item.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient
|
||||
android:angle="270"
|
||||
android:endColor="#99000000"
|
||||
android:startColor="#00000000"
|
||||
android:type="linear" />
|
||||
<corners
|
||||
android:bottomLeftRadius="@dimen/dp_12"
|
||||
android:bottomRightRadius="@dimen/dp_12"
|
||||
android:topLeftRadius="0dp"
|
||||
android:topRightRadius="0dp" />
|
||||
</shape>
|
12
app/src/main/res/drawable/home_ic_hot_message_arrow.xml
Normal file
12
app/src/main/res/drawable/home_ic_hot_message_arrow.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="12dp"
|
||||
android:height="12dp"
|
||||
android:viewportWidth="12"
|
||||
android:viewportHeight="12">
|
||||
<path
|
||||
android:pathData="M5.58,0.78C5.34,1.02 5.34,1.41 5.58,1.65L9.919,6L5.58,10.35C5.34,10.59 5.34,10.98 5.58,11.22C5.819,11.46 6.208,11.46 6.448,11.22L11.22,6.435C11.46,6.195 11.46,5.805 11.22,5.565L6.448,0.78C6.208,0.54 5.819,0.54 5.58,0.78Z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#B3B3C3"
|
||||
android:fillType="evenOdd"
|
||||
android:strokeColor="#00000000"/>
|
||||
</vector>
|
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout>
|
||||
<layout xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
|
@@ -4,7 +4,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="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:background="#F5F5F7">
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
@@ -36,13 +37,12 @@
|
||||
android:layout_height="@dimen/dp_26"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/shape_white_16dp_round"
|
||||
android:drawableStart="@drawable/home_ic_search"
|
||||
android:drawablePadding="@dimen/dp_7"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingStart="@dimen/dp_9"
|
||||
android:paddingEnd="@dimen/dp_32"
|
||||
android:paddingEnd="@dimen/dp_20"
|
||||
android:text="搜索ID、房间"
|
||||
android:textColor="#B8B7C7"
|
||||
android:textSize="@dimen/dp_12" />
|
||||
@@ -54,9 +54,7 @@
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/home_ic_my_room"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
android:src="@drawable/home_ic_my_room" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_ranking"
|
||||
|
@@ -83,16 +83,16 @@
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_cover"
|
||||
app:layout_constraintDimensionRatio="113:48"
|
||||
app:layout_constraintEnd_toStartOf="@id/iv_resource_4"
|
||||
app:layout_constraintEnd_toStartOf="@id/iv_resource_more"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_resource_2"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_resource_2" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_resource_4"
|
||||
android:id="@+id/iv_resource_more"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_cover"
|
||||
android:src="@drawable/home_ic_resource_more"
|
||||
app:layout_constraintDimensionRatio="113:48"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_resource_1"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_resource_3"
|
||||
@@ -103,21 +103,24 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:constraint_referenced_ids="iv_resource_0,iv_resource_1,iv_resource_2,iv_resource_3,iv_resource_4"
|
||||
app:constraint_referenced_ids="iv_resource_0,iv_resource_1,iv_resource_2,iv_resource_3,iv_resource_more"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.zhpan.bannerview.BannerViewPager
|
||||
<com.nnbc123.app.home.widget.HomeBannerViewPager
|
||||
android:id="@+id/hot_message"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginHorizontal="@dimen/dp_15"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:background="@drawable/home_bg_message"
|
||||
android:visibility="gone"
|
||||
app:bvp_auto_play="true"
|
||||
app:bvp_can_loop="true"
|
||||
app:bvp_indicator_visibility="gone"
|
||||
app:bvp_interval="3000"
|
||||
app:bvp_scroll_duration="500"
|
||||
app:bvp_interval="5000"
|
||||
app:bvp_scroll_duration="800"
|
||||
app:layout_constraintDimensionRatio="345:42"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_resource_2"
|
||||
tools:background="@drawable/default_banner"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.nnbc123.app.ui.widget.rollviewpager.RollPagerView
|
||||
@@ -135,22 +138,23 @@
|
||||
app:rollviewpager_hint_paddingBottom="8dp"
|
||||
tools:background="@drawable/default_banner"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_19"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:paddingBottom="@dimen/dp_4"
|
||||
android:text="热门推荐"
|
||||
android:textColor="#2B2D33"
|
||||
android:textSize="@dimen/dp_16"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/roll_view" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_19"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:paddingBottom="@dimen/dp_4"
|
||||
android:text="热门推荐"
|
||||
android:textColor="#2B2D33"
|
||||
android:textSize="@dimen/dp_16"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/roll_view" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
|
@@ -1,15 +1,119 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_send"
|
||||
android:layout_width="@dimen/dp_22"
|
||||
android:layout_height="@dimen/dp_22"
|
||||
android:layout_marginStart="@dimen/dp_12"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="2px"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:src="@drawable/default_avatar" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="5dp"
|
||||
android:background="@color/color_999999"
|
||||
android:gravity="center"
|
||||
android:textSize="20sp" />
|
||||
android:id="@+id/tv_nick_send"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_4"
|
||||
android:lines="1"
|
||||
android:textColor="#2B2D33"
|
||||
android:textSize="@dimen/dp_12"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_avatar_send"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="小半" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_send"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_4"
|
||||
android:lines="1"
|
||||
android:text="赠送"
|
||||
android:textColor="#992B2D33"
|
||||
android:textSize="@dimen/dp_12"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/tv_nick_send"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_receiver"
|
||||
android:layout_width="@dimen/dp_22"
|
||||
android:layout_height="@dimen/dp_22"
|
||||
android:layout_marginStart="@dimen/dp_4"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="2px"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/tv_send"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:src="@drawable/default_avatar" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_nick_receiver"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_4"
|
||||
android:lines="1"
|
||||
android:textColor="#2B2D33"
|
||||
android:textSize="@dimen/dp_12"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_avatar_receiver"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="小半" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_gift_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_4"
|
||||
android:lines="1"
|
||||
android:textColor="#FF9D24"
|
||||
android:textSize="@dimen/dp_12"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/tv_nick_receiver"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="星语心愿" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_gift"
|
||||
android:layout_width="@dimen/dp_28"
|
||||
android:layout_height="@dimen/dp_28"
|
||||
android:layout_marginStart="@dimen/dp_4"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/tv_gift_name"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:src="@drawable/default_cover" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_gift_num"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="#2B2D33"
|
||||
android:textSize="@dimen/dp_14"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/iv_arrow"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_gift"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="x11" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_arrow"
|
||||
android:layout_width="@dimen/dp_12"
|
||||
android:layout_height="@dimen/dp_12"
|
||||
android:layout_marginEnd="@dimen/dp_12"
|
||||
android:src="@drawable/home_ic_hot_message_arrow"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -6,7 +6,7 @@
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:layout_marginHorizontal="@dimen/dp_9"
|
||||
android:orientation="vertical"
|
||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||
app:spanCount="2" />
|
||||
|
@@ -1,15 +1,157 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="100dp">
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/dp_4"
|
||||
android:layout_marginVertical="@dimen/dp_3">
|
||||
|
||||
<com.nnbc123.app.common.widget.RectRoundImageView
|
||||
android:id="@+id/iv_cover"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:scaleType="centerCrop"
|
||||
app:borderRadius="@dimen/dp_12"
|
||||
app:layout_constraintDimensionRatio="168:164"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:type="round"
|
||||
tools:src="@drawable/default_cover" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_content_background"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:src="@drawable/home_bg_room_item"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_cover"
|
||||
app:layout_constraintDimensionRatio="168:72"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_cover"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_cover" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_cover_foreground"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_cover"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_cover"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_cover"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_cover" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_18"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_cover"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_cover"
|
||||
tools:src="@drawable/default_cover" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layout_avatar"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:layout_marginBottom="@dimen/dp_8"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_cover"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_cover">
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_0"
|
||||
android:layout_width="@dimen/dp_18"
|
||||
android:layout_height="@dimen/dp_18"
|
||||
android:src="@drawable/default_avatar"
|
||||
android:translationZ="4px"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_1"
|
||||
android:layout_width="@dimen/dp_18"
|
||||
android:layout_height="@dimen/dp_18"
|
||||
android:layout_marginStart="-6dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
android:translationZ="3px"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_2"
|
||||
android:layout_width="@dimen/dp_18"
|
||||
android:layout_height="@dimen/dp_18"
|
||||
android:layout_marginStart="-6dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
android:translationZ="2px"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_3"
|
||||
android:layout_width="@dimen/dp_18"
|
||||
android:layout_height="@dimen/dp_18"
|
||||
android:layout_marginStart="-6dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
android:translationZ="1px"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_4"
|
||||
android:layout_width="@dimen/dp_18"
|
||||
android:layout_height="@dimen/dp_18"
|
||||
android:layout_marginStart="-6dp"
|
||||
android:alpha="0.5"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:textSize="20sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/dp_8"
|
||||
android:layout_marginBottom="@dimen/dp_4"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_14"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toTopOf="@id/layout_avatar"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_cover"
|
||||
tools:text="Name" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_pk"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/dp_4"
|
||||
android:src="@drawable/home_ic_pk"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toTopOf="@id/tv_name"
|
||||
app:layout_constraintStart_toStartOf="@id/tv_name"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_online_number"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
android:layout_marginBottom="@dimen/dp_8"
|
||||
android:drawableStart="@drawable/ic_home_hot_hot"
|
||||
android:drawablePadding="1dp"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_vertical"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_11"
|
||||
android:textStyle="bold"
|
||||
app:layout_constrainedWidth="true"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_cover"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_cover"
|
||||
app:layout_constraintHorizontal_bias="1"
|
||||
app:layout_constraintStart_toEndOf="@id/layout_avatar"
|
||||
tools:text="999" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -86,6 +86,6 @@
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_gift_service_arrow" />
|
||||
android:src="@drawable/home_ic_hot_message_arrow" />
|
||||
|
||||
</LinearLayout>
|
@@ -44,6 +44,15 @@ public class HomeRoomInfo implements MultiItemEntity, Serializable {
|
||||
private boolean isChecked;
|
||||
|
||||
private String iconContent;
|
||||
private String backgroundPic;
|
||||
|
||||
public String getBackgroundPic() {
|
||||
return backgroundPic;
|
||||
}
|
||||
|
||||
public void setBackgroundPic(String backgroundPic) {
|
||||
this.backgroundPic = backgroundPic;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemType() {
|
||||
|
@@ -1,5 +1,7 @@
|
||||
package com.nnbc123.core.home.model
|
||||
|
||||
import com.google.gson.Gson
|
||||
import com.nnbc123.core.DemoCache
|
||||
import com.nnbc123.core.auth.AuthModel
|
||||
import com.nnbc123.core.base.BaseModel
|
||||
import com.nnbc123.core.bean.response.ServiceResult
|
||||
@@ -13,10 +15,16 @@ import com.nnbc123.core.room.bean.SingleRoomSortInfo
|
||||
import com.nnbc123.core.room.game.GameInfo
|
||||
import com.nnbc123.core.user.bean.AnchorGradeInfo
|
||||
import com.nnbc123.core.user.bean.UserInfo
|
||||
import com.nnbc123.core.utils.SharedPreferenceUtils
|
||||
import com.nnbc123.core.utils.net.RxHelper
|
||||
import com.nnbc123.core.utils.net.launchRequest
|
||||
import com.nnbc123.library.net.rxnet.RxNet
|
||||
import io.reactivex.Single
|
||||
import io.reactivex.disposables.Disposable
|
||||
import io.reactivex.disposables.Disposables
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.DisposableHandle
|
||||
import kotlinx.coroutines.withContext
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Query
|
||||
@@ -109,10 +117,20 @@ object HomeModel : BaseModel() {
|
||||
launchRequest {
|
||||
api.getPlayRoom()
|
||||
}
|
||||
|
||||
fun getHomeResourceByLocal(): MutableList<ResourceInfo>? {
|
||||
return DemoCache.readHomeResourceList()
|
||||
}
|
||||
|
||||
suspend fun getHomeResource(): MutableList<ResourceInfo>? =
|
||||
launchRequest {
|
||||
api.getHomeResource()
|
||||
val result = api.getHomeResource()
|
||||
if (result.isSuccess) {
|
||||
withContext(Dispatchers.Main) {
|
||||
DemoCache.saveHomeResourceList(result.data)
|
||||
}
|
||||
}
|
||||
result
|
||||
}
|
||||
|
||||
suspend fun getResourceJumpInfo(id: Int): HomeRoomInfo? =
|
||||
|
@@ -7,6 +7,7 @@ import androidx.annotation.Nullable;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.netease.nimlib.sdk.StatusBarNotificationConfig;
|
||||
import com.nnbc123.core.home.bean.ResourceInfo;
|
||||
import com.nnbc123.xchat_android_constants.XChatConstants;
|
||||
import com.nnbc123.core.auth.AuthModel;
|
||||
import com.nnbc123.core.auth.entity.AccountInfo;
|
||||
@@ -64,6 +65,7 @@ public class DemoCache {
|
||||
private static final String KEY_SHOW_RADISH_TIP = "key_show_radish_tip";
|
||||
private static final String KEY_NEW_GIFT_TYPE_TIP = "key_new_gift_type_tip";
|
||||
private static final String KEY_NEW_GIFT_TYPE_TIP_INDICATOR = "key_new_gift_type_tip_indicator";
|
||||
private static final String KEY_HOME_RESOURCE_LIST = "key_home_resource_list";
|
||||
|
||||
private static StatusBarNotificationConfig notificationConfig;
|
||||
|
||||
@@ -385,4 +387,20 @@ public class DemoCache {
|
||||
return SettingsPref.instance().getBoolean(KEY_NEW_GIFT_TYPE_TIP_INDICATOR, true);
|
||||
}
|
||||
|
||||
|
||||
public static void saveHomeResourceList(List<ResourceInfo> value) {
|
||||
SharedPreferenceUtils.put(KEY_HOME_RESOURCE_LIST, new Gson().toJson(value));
|
||||
}
|
||||
|
||||
public static List<ResourceInfo> readHomeResourceList() {
|
||||
try {
|
||||
String jsonString = String.valueOf(SharedPreferenceUtils.get(KEY_HOME_RESOURCE_LIST, ""));
|
||||
if (TextUtils.isEmpty(jsonString)) return null;
|
||||
return new Gson().fromJson(jsonString,
|
||||
new TypeToken<List<ResourceInfo>>() {
|
||||
}.getType());
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -5,8 +5,12 @@ import com.nnbc123.library.utils.SingleToastUtil
|
||||
|
||||
|
||||
fun String?.subAndReplaceDot(maxLength: Int = 6): String {
|
||||
return subAndReplaceDot2(maxLength, "...")
|
||||
}
|
||||
|
||||
fun String?.subAndReplaceDot2(maxLength: Int = 6, suffix: String = ".."): String {
|
||||
if (this == null) return ""
|
||||
return if (this.length > maxLength) this.substring(0, maxLength) + "..." else this
|
||||
return if (this.length > maxLength) this.substring(0, maxLength) + suffix else this
|
||||
}
|
||||
|
||||
fun String?.sub(maxLength: Int = 6): String {
|
||||
|
@@ -134,7 +134,7 @@ dependencies {
|
||||
|
||||
api "jp.wasabeef:glide-transformations:${GlideTransformationsVersion}"
|
||||
|
||||
api 'com.github.zhpanvip:BannerViewPager:3.5.6'
|
||||
api 'com.github.zhpanvip:BannerViewPager:3.5.12'
|
||||
|
||||
api 'com.google.android.exoplayer:exoplayer:2.18.1'
|
||||
|
||||
|
Reference in New Issue
Block a user