[Modify]热门房间tab调整
This commit is contained in:
@@ -149,7 +149,7 @@ android {
|
||||
|
||||
debug {
|
||||
buildConfigField "String", "BASE_URL", "\"http://beta.api.nnbc123.cn/\""
|
||||
buildConfigField "String", "WEB_URL", "\"http://h5dev.yinmeng.zhongjialx.com/\""
|
||||
buildConfigField "String", "WEB_URL", "\"http://beta.api.nnbc123.cn\""
|
||||
buildConfigField "String", "BASE_URL_DEBUG", "BASE_URL"
|
||||
buildConfigField "String", "BASE_URL_STAGING", "\"https://api.nnbc123.cn/\""
|
||||
buildConfigField "String", "BASE_URL_RELEASE", "\"https://api.nnbc123.cn/\""
|
||||
|
@@ -55,7 +55,8 @@ class PrivilegeCardActivity : BaseViewBindingActivity<ActivityPrivilegeBinding>(
|
||||
|
||||
private fun initProtocol() {
|
||||
val privilegeCardTip = getString(R.string.privilege_card_detail)
|
||||
val privilegeCardDescTip = getString(R.string.Read_and_agree_to_the_privilege_card, privilegeCardTip)
|
||||
val privilegeCardDescTip =
|
||||
getString(R.string.Read_and_agree_to_the_privilege_card, privilegeCardTip)
|
||||
val ss = SpannableString(privilegeCardDescTip)
|
||||
val privilegeCardTipIndex = privilegeCardDescTip.indexOf(privilegeCardTip)
|
||||
|
||||
@@ -68,7 +69,10 @@ class PrivilegeCardActivity : BaseViewBindingActivity<ActivityPrivilegeBinding>(
|
||||
) {
|
||||
override fun onClick(widget: View) {
|
||||
if (widget is TextView) widget.highlightColor =
|
||||
ContextCompat.getColor(this@PrivilegeCardActivity, android.R.color.transparent)
|
||||
ContextCompat.getColor(
|
||||
this@PrivilegeCardActivity,
|
||||
android.R.color.transparent
|
||||
)
|
||||
CommonWebViewActivity.start(context, UriProvider.getPrivilegeInstructions())
|
||||
}
|
||||
},
|
||||
|
@@ -77,6 +77,10 @@ class HomeViewModel : BaseViewModel() {
|
||||
val partyRecommendRoomLiveData: LiveData<ListResult<HomeRoomInfo>> =
|
||||
_partyRecommendRoomLiveData
|
||||
|
||||
private val _partyRecommendRoomMoreLiveData = MutableLiveData<ListResult<HomeRoomInfo>>()
|
||||
val partyRecommendRoomMoreLiveData: LiveData<ListResult<HomeRoomInfo>> =
|
||||
_partyRecommendRoomMoreLiveData
|
||||
|
||||
private val _giftServiceLiveData = MutableLiveData<ListResult<GiftServiceMsgVo>>()
|
||||
val giftServiceLiveData: LiveData<ListResult<GiftServiceMsgVo>> = _giftServiceLiveData
|
||||
|
||||
@@ -307,6 +311,18 @@ class HomeViewModel : BaseViewModel() {
|
||||
)
|
||||
}
|
||||
|
||||
fun getPartyRecommendRoomMoreList() {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
_partyRecommendRoomMoreLiveData.value = ListResult.failed(1)
|
||||
},
|
||||
block = {
|
||||
val result = HomeModel.getPartyRecommendRoomMoreList()
|
||||
_partyRecommendRoomMoreLiveData.value = ListResult.success(result, 1)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getServiceGiftRecord() {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
|
@@ -0,0 +1,43 @@
|
||||
package com.nnbc123.app.home.adapter
|
||||
|
||||
import android.text.TextUtils
|
||||
import android.view.View
|
||||
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
|
||||
|
||||
class PartyHotAdapter :
|
||||
BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layout.item_party_hot) {
|
||||
|
||||
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}")
|
||||
setText(R.id.tv_room_title, item.title)
|
||||
}
|
||||
helper.setGone(R.id.tv_in_pk, item.isCrossPking)
|
||||
|
||||
helper.setGone(R.id.tv_tag_content, !TextUtils.isEmpty(item.iconContent))
|
||||
.setText(R.id.tv_tag_content, item.iconContent)
|
||||
|
||||
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),
|
||||
helper.getView(R.id.iv_avatar_5)
|
||||
)
|
||||
|
||||
for (i in avatars.indices) {
|
||||
val avatarUrl = item.micUsers?.getOrNull(i)?.avatar
|
||||
avatars[i].isGone = avatarUrl.isNullOrBlank()
|
||||
avatars[i].load(avatarUrl)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -3,6 +3,7 @@ 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 androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.nnbc123.core.home.bean.HomeRoomInfo
|
||||
import com.nnbc123.core.home.event.RefreshHomeDataEvent
|
||||
@@ -11,15 +12,17 @@ import com.nnbc123.core.statistic.protocol.StatisticsProtocol
|
||||
import com.nnbc123.app.avroom.activity.AVRoomActivity
|
||||
import com.nnbc123.app.base.BaseViewBindingFragment
|
||||
import com.nnbc123.app.common.EmptyViewHelper
|
||||
import com.nnbc123.app.databinding.FragmentPartyHotBinding
|
||||
import com.nnbc123.app.databinding.FragmentRoomCommonBinding
|
||||
import com.nnbc123.app.home.HomeViewModel
|
||||
import com.nnbc123.app.home.adapter.PartyHotAdapter
|
||||
import com.nnbc123.app.home.adapter.RoomCommonAdapter
|
||||
import com.nnbc123.app.ui.utils.RVDelegate
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
class PartyRecommendFragment : BaseViewBindingFragment<FragmentRoomCommonBinding>() {
|
||||
class PartyRecommendFragment : BaseViewBindingFragment<FragmentPartyHotBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(): PartyRecommendFragment {
|
||||
@@ -31,16 +34,19 @@ class PartyRecommendFragment : BaseViewBindingFragment<FragmentRoomCommonBinding
|
||||
}
|
||||
|
||||
|
||||
private lateinit var mAdapter: RoomCommonAdapter
|
||||
private lateinit var mAdapter: PartyHotAdapter
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private lateinit var mMoreAdapter: RoomCommonAdapter
|
||||
private lateinit var rvMoreDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
|
||||
override fun init() {
|
||||
mAdapter = RoomCommonAdapter()
|
||||
mAdapter = PartyHotAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(mAdapter)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.setLayoutManager(GridLayoutManager(mContext, 2, GridLayoutManager.VERTICAL, false))
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(mContext, "暂无房间"))
|
||||
.setRefreshLayout(binding.refreshLayout)
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
@@ -52,13 +58,30 @@ class PartyRecommendFragment : BaseViewBindingFragment<FragmentRoomCommonBinding
|
||||
.onEvent(StatisticsProtocol.EVENT_COMMON_TAB_ROOM_SUCCESS, "通用tab进入房间成功")
|
||||
}
|
||||
}
|
||||
mMoreAdapter = RoomCommonAdapter()
|
||||
rvMoreDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(mAdapter)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(mContext, "暂无房间"))
|
||||
.setRefreshLayout(binding.refreshLayout)
|
||||
.setRecyclerView(binding.recyclerMoreView)
|
||||
.build()
|
||||
mMoreAdapter.setOnItemClickListener { _, _, position ->
|
||||
mAdapter.getItem(position)?.let {
|
||||
AVRoomActivity.start(context, it.roomUid)
|
||||
StatisticManager.Instance()
|
||||
.onEvent(StatisticsProtocol.EVENT_COMMON_TAB_ROOM_SUCCESS, "通用tab进入房间成功")
|
||||
}
|
||||
}
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
loadData(true)
|
||||
}
|
||||
homeViewModel.partyRecommendRoomLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
|
||||
homeViewModel.partyRecommendRoomMoreLiveData.observe(this) {
|
||||
rvMoreDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
@@ -70,6 +93,7 @@ class PartyRecommendFragment : BaseViewBindingFragment<FragmentRoomCommonBinding
|
||||
fun loadData(isRefresh: Boolean) {
|
||||
binding.refreshLayout.isRefreshing = isRefresh
|
||||
homeViewModel.getPartyRecommendRoomList()
|
||||
homeViewModel.getPartyRecommendRoomMoreList()
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
|
8
app/src/main/res/drawable/bg_hot.xml
Normal file
8
app/src/main/res/drawable/bg_hot.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="@color/black_transparent_40" />
|
||||
<corners android:radius="@dimen/dp_8" />
|
||||
|
||||
</shape>
|
@@ -3,13 +3,13 @@
|
||||
android:shape="rectangle">
|
||||
<gradient
|
||||
android:angle="180"
|
||||
android:endColor="#FF95BA"
|
||||
android:startColor="#ffff879e"
|
||||
android:endColor="#ffa8c8"
|
||||
android:startColor="#ff9e9e"
|
||||
android:type="linear"
|
||||
android:useLevel="true" />
|
||||
<corners
|
||||
android:bottomLeftRadius="2dp"
|
||||
android:bottomLeftRadius="3dp"
|
||||
android:bottomRightRadius="8dp"
|
||||
android:topLeftRadius="8dp"
|
||||
android:topRightRadius="2dp" />
|
||||
android:topRightRadius="3dp" />
|
||||
</shape>
|
||||
|
37
app/src/main/res/layout/fragment_party_hot.xml
Normal file
37
app/src/main/res/layout/fragment_party_hot.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/refresh_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clipToPadding="false" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:text="更多房间"
|
||||
android:textSize="@dimen/sp_16"
|
||||
android:textColor="@color/color_2B2D33"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginStart="@dimen/dp_28"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_more_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clipToPadding="false" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
164
app/src/main/res/layout/item_party_hot.xml
Normal file
164
app/src/main/res/layout/item_party_hot.xml
Normal file
@@ -0,0 +1,164 @@
|
||||
<?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="148dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_marginBottom="4dp">
|
||||
|
||||
<com.makeramen.roundedimageview.RoundedImageView
|
||||
android:id="@+id/iv_room_image"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_cover"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:riv_corner_radius="@dimen/dp_16" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_in_pk"
|
||||
android:layout_width="44dp"
|
||||
android:layout_height="16dp"
|
||||
android:background="@drawable/bg_common_pk"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:text="PK中"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:visibility="gone"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_room_image"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_room_image"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_tag_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="16dp"
|
||||
android:background="@drawable/shape_home_room_tag"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:maxLength="5"
|
||||
android:paddingStart="6dp"
|
||||
android:paddingEnd="6dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_10"
|
||||
android:visibility="gone"
|
||||
tools:text="心情树洞"
|
||||
tools:visibility="visible"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_online_number"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:paddingStart="@dimen/dp_6"
|
||||
android:paddingEnd="@dimen/dp_8"
|
||||
android:paddingTop="@dimen/dp_2"
|
||||
android:paddingBottom="@dimen/dp_2"
|
||||
android:drawablePadding="2dp"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="@color/color_white"
|
||||
android:textSize="@dimen/sp_11"
|
||||
android:textStyle="bold"
|
||||
android:background="@drawable/bg_hot"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="266"
|
||||
app:drawableStartCompat="@drawable/ic_home_hot_hot" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_avatar"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:layout_marginBottom="@dimen/dp_2"
|
||||
app:layout_constraintBottom_toTopOf="@+id/tv_room_title"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_0"
|
||||
android:layout_width="22dp"
|
||||
android:layout_height="22dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_1"
|
||||
android:layout_width="22dp"
|
||||
android:layout_height="22dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_2"
|
||||
android:layout_width="22dp"
|
||||
android:layout_height="22dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_3"
|
||||
android:layout_width="22dp"
|
||||
android:layout_height="22dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_4"
|
||||
android:layout_width="22dp"
|
||||
android:layout_height="22dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.nnbc123.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_5"
|
||||
android:layout_width="22dp"
|
||||
android:layout_height="22dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_room_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/color_white"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:layout_marginBottom="@dimen/dp_6"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
tools:text="余生点唱歌曲交友房间" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -508,7 +508,7 @@ public class UriProvider {
|
||||
* 用户特权卡使用说明
|
||||
*/
|
||||
public static String getPrivilegeInstructions() {
|
||||
return WEB_URL.concat("/yinmeng/modules/privilegeCardRule/index.html");
|
||||
return WEB_URL.concat("/yinmeng/modules/rule/privilegeCardRule.html");
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -204,6 +204,11 @@ object HomeModel : BaseModel() {
|
||||
api.getPartyRecommendRoomList(uid, types)
|
||||
}
|
||||
|
||||
suspend fun getPartyRecommendRoomMoreList(): List<HomeRoomInfo>? =
|
||||
launchRequest {
|
||||
api.getPartyRecommendRoomMoreList()
|
||||
}
|
||||
|
||||
suspend fun getServiceGiftRecord(): List<GiftServiceMsgVo>? =
|
||||
launchRequest {
|
||||
api.getServiceGiftRecord()
|
||||
@@ -449,6 +454,14 @@ object HomeModel : BaseModel() {
|
||||
@Query("types") types: String
|
||||
): ServiceResult<List<HomeRoomInfo>>
|
||||
|
||||
/**
|
||||
* 首页推荐更多房间
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GET("/home/hotRoom")
|
||||
suspend fun getPartyRecommendRoomMoreList(): ServiceResult<List<HomeRoomInfo>>
|
||||
|
||||
/**
|
||||
* 全服礼物记录
|
||||
*
|
||||
|
Reference in New Issue
Block a user