diff --git a/app/build.gradle b/app/build.gradle index 5176d9b98..7c846496c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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/\"" diff --git a/app/src/main/java/com/nnbc123/app/avroom/activity/PrivilegeCardActivity.kt b/app/src/main/java/com/nnbc123/app/avroom/activity/PrivilegeCardActivity.kt index ba76fbe3d..b0a13d62c 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/activity/PrivilegeCardActivity.kt +++ b/app/src/main/java/com/nnbc123/app/avroom/activity/PrivilegeCardActivity.kt @@ -55,7 +55,8 @@ class PrivilegeCardActivity : BaseViewBindingActivity( 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( ) { 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()) } }, diff --git a/app/src/main/java/com/nnbc123/app/home/HomeViewModel.kt b/app/src/main/java/com/nnbc123/app/home/HomeViewModel.kt index 5efe53d93..5c7a4d69a 100644 --- a/app/src/main/java/com/nnbc123/app/home/HomeViewModel.kt +++ b/app/src/main/java/com/nnbc123/app/home/HomeViewModel.kt @@ -77,6 +77,10 @@ class HomeViewModel : BaseViewModel() { val partyRecommendRoomLiveData: LiveData> = _partyRecommendRoomLiveData + private val _partyRecommendRoomMoreLiveData = MutableLiveData>() + val partyRecommendRoomMoreLiveData: LiveData> = + _partyRecommendRoomMoreLiveData + private val _giftServiceLiveData = MutableLiveData>() val giftServiceLiveData: LiveData> = _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 = { diff --git a/app/src/main/java/com/nnbc123/app/home/adapter/PartyHotAdapter.kt b/app/src/main/java/com/nnbc123/app/home/adapter/PartyHotAdapter.kt new file mode 100644 index 000000000..9c54ad21f --- /dev/null +++ b/app/src/main/java/com/nnbc123/app/home/adapter/PartyHotAdapter.kt @@ -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(R.layout.item_party_hot) { + + override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) { + helper.apply { + getView(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 = 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) + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nnbc123/app/home/fragment/PartyRecommendFragment.kt b/app/src/main/java/com/nnbc123/app/home/fragment/PartyRecommendFragment.kt index 6f11f1284..d705aaba9 100644 --- a/app/src/main/java/com/nnbc123/app/home/fragment/PartyRecommendFragment.kt +++ b/app/src/main/java/com/nnbc123/app/home/fragment/PartyRecommendFragment.kt @@ -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() { +class PartyRecommendFragment : BaseViewBindingFragment() { companion object { fun newInstance(): PartyRecommendFragment { @@ -31,16 +34,19 @@ class PartyRecommendFragment : BaseViewBindingFragment + private lateinit var mMoreAdapter: RoomCommonAdapter + private lateinit var rvMoreDelegate: RVDelegate + private val homeViewModel: HomeViewModel by activityViewModels() override fun init() { - mAdapter = RoomCommonAdapter() + mAdapter = PartyHotAdapter() rvDelegate = RVDelegate.Builder() .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() + .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 + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_home_room_tag.xml b/app/src/main/res/drawable/shape_home_room_tag.xml index 9ea44a510..2ab340e3d 100644 --- a/app/src/main/res/drawable/shape_home_room_tag.xml +++ b/app/src/main/res/drawable/shape_home_room_tag.xml @@ -3,13 +3,13 @@ android:shape="rectangle"> + android:topRightRadius="3dp" /> diff --git a/app/src/main/res/layout/fragment_party_hot.xml b/app/src/main/res/layout/fragment_party_hot.xml new file mode 100644 index 000000000..ea74bf288 --- /dev/null +++ b/app/src/main/res/layout/fragment_party_hot.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_party_hot.xml b/app/src/main/res/layout/item_party_hot.xml new file mode 100644 index 000000000..e050c5d03 --- /dev/null +++ b/app/src/main/res/layout/item_party_hot.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/UriProvider.java b/core/src/diff_src_erban/java/com/nnbc123/core/UriProvider.java index 851cdb1f2..f2bc6b9dc 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/UriProvider.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/UriProvider.java @@ -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"); } } diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/home/model/HomeModel.kt b/core/src/diff_src_erban/java/com/nnbc123/core/home/model/HomeModel.kt index 51c2ac438..2117a832c 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/home/model/HomeModel.kt +++ b/core/src/diff_src_erban/java/com/nnbc123/core/home/model/HomeModel.kt @@ -204,6 +204,11 @@ object HomeModel : BaseModel() { api.getPartyRecommendRoomList(uid, types) } + suspend fun getPartyRecommendRoomMoreList(): List? = + launchRequest { + api.getPartyRecommendRoomMoreList() + } + suspend fun getServiceGiftRecord(): List? = launchRequest { api.getServiceGiftRecord() @@ -449,6 +454,14 @@ object HomeModel : BaseModel() { @Query("types") types: String ): ServiceResult> + /** + * 首页推荐更多房间 + * + * @return + */ + @GET("/home/hotRoom") + suspend fun getPartyRecommendRoomMoreList(): ServiceResult> + /** * 全服礼物记录 *