diff --git a/app/src/main/assets/svga/home_avatar_online.svga b/app/src/main/assets/svga/home_avatar_online.svga new file mode 100644 index 000000000..3e1eba2b4 Binary files /dev/null and b/app/src/main/assets/svga/home_avatar_online.svga differ diff --git a/app/src/main/assets/svga/home_living.svga b/app/src/main/assets/svga/home_living.svga new file mode 100644 index 000000000..b02c6d92e Binary files /dev/null and b/app/src/main/assets/svga/home_living.svga differ diff --git a/app/src/main/java/com/nnbc123/app/avroom/dialog/RoomPlayDialog.java b/app/src/main/java/com/nnbc123/app/avroom/dialog/RoomPlayDialog.java index 5ff38d739..b32d3d685 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/dialog/RoomPlayDialog.java +++ b/app/src/main/java/com/nnbc123/app/avroom/dialog/RoomPlayDialog.java @@ -51,7 +51,10 @@ public class RoomPlayDialog extends BottomSheetDialog { private void init() { binding.llRadish.setVisibility(GoldBoxHelper.isShowRadish() ? View.VISIBLE : View.GONE); - binding.llRadish.setOnClickListener(v -> PullRadishActivity.start(context)); + binding.llRadish.setOnClickListener(v -> { + PullRadishActivity.start(context); + dismiss(); + }); } } 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 4e971451b..4eb612db3 100644 --- a/app/src/main/java/com/nnbc123/app/home/HomeViewModel.kt +++ b/app/src/main/java/com/nnbc123/app/home/HomeViewModel.kt @@ -14,6 +14,7 @@ import com.nnbc123.core.statistic.StatisticManager import com.nnbc123.core.statistic.protocol.StatisticsProtocol import com.nnbc123.core.utils.toast import com.nnbc123.app.base.BaseViewModel +import com.nnbc123.core.user.bean.UserInfo import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async @@ -28,11 +29,11 @@ class HomeViewModel : BaseViewModel() { private val _gameRoomLiveData = MutableLiveData>() val gameRoomLiveData: LiveData> = _gameRoomLiveData - private val _pickRoomLiveData = MutableLiveData() - val pickRoomLiveData: LiveData = _pickRoomLiveData + private val _pickRoomLiveData = MutableLiveData() + val pickRoomLiveData: LiveData = _pickRoomLiveData - private val _openGameRoomLiveData = MutableLiveData() - val openGameRoomLiveData: LiveData = _openGameRoomLiveData + private val _openGameRoomLiveData = MutableLiveData() + val openGameRoomLiveData: LiveData = _openGameRoomLiveData private val _concernsLiveData = MutableLiveData>() val concernsLiveData: LiveData> = _concernsLiveData @@ -49,8 +50,8 @@ class HomeViewModel : BaseViewModel() { private val _resourceLiveData = MutableLiveData>() val resourceLiveData: LiveData> = _resourceLiveData - private val _resourceJumpLiveData = MutableLiveData() - val resourceJumpLiveData: LiveData = _resourceJumpLiveData + private val _resourceJumpLiveData = MutableLiveData() + val resourceJumpLiveData: LiveData = _resourceJumpLiveData private val _singleAnchorHomeLiveData = MutableLiveData>() val singleAnchorHomeLiveData: LiveData> = _singleAnchorHomeLiveData @@ -60,16 +61,22 @@ class HomeViewModel : BaseViewModel() { val singleRoomSortInfoLiveData: LiveData> = _singleRoomSortInfoLiveData - private val _homeLiveTopInfoLiveData = MutableLiveData() - val homeLiveTopInfoLiveData: LiveData = _homeLiveTopInfoLiveData + private val _homeLiveTopInfoLiveData = MutableLiveData() + val homeLiveTopInfoLiveData: LiveData = _homeLiveTopInfoLiveData - private val _anchorInfoLiveData = MutableLiveData() - val anchorInfoLiveData: LiveData = _anchorInfoLiveData + private val _anchorInfoLiveData = MutableLiveData() + val anchorInfoLiveData: LiveData = _anchorInfoLiveData private val _partyRecommendRoomLiveData = MutableLiveData>() val partyRecommendRoomLiveData: LiveData> = _partyRecommendRoomLiveData + private val _giftServiceLiveData = MutableLiveData>() + val giftServiceLiveData: LiveData> = _giftServiceLiveData + + private val _newFriendLiveData = MutableLiveData>() + val newFriendLiveData: LiveData> = _newFriendLiveData + fun getBannerInfo() { safeLaunch { _bannerLiveData.value = HomeModel.getHomeBanner("9") @@ -261,5 +268,27 @@ class HomeViewModel : BaseViewModel() { ) } + fun getServiceGiftRecord() { + safeLaunch( + onError = { + _giftServiceLiveData.value = ListResult.failed(1) + }, + block = { + val result = HomeModel.getServiceGiftRecord() + _giftServiceLiveData.value = ListResult.success(result, 1) + } + ) + } + fun getNewFriendList() { + safeLaunch( + onError = { + _newFriendLiveData.value = ListResult.failed(1) + }, + block = { + val result = HomeModel.getNewFriendList() + _newFriendLiveData.value = ListResult.success(result, 1) + } + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/nnbc123/app/home/adapter/GiftServiceAdapter.kt b/app/src/main/java/com/nnbc123/app/home/adapter/GiftServiceAdapter.kt new file mode 100644 index 000000000..4fc616eb8 --- /dev/null +++ b/app/src/main/java/com/nnbc123/app/home/adapter/GiftServiceAdapter.kt @@ -0,0 +1,26 @@ +package com.nnbc123.app.home.adapter + +import android.widget.ImageView +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.app.ui.utils.loadAvatar +import com.nnbc123.core.home.bean.GiftServiceMsgVo +import com.nnbc123.core.utils.sub + +class GiftServiceAdapter : + BaseQuickAdapter(R.layout.item_gift_service) { + + override fun convert(helper: BaseViewHolder, item: GiftServiceMsgVo) { + helper.setText(R.id.tv_nick_send, item.senderNick.sub(4)) + .setText(R.id.tv_nick_receiver, item.receiverNick.sub(4)) + .setText(R.id.tv_gift_name, item.giftName) + .setText(R.id.tv_gift_num, "x${item.giftNum}") + + helper.getView(R.id.iv_avatar_send).loadAvatar(item.senderAvatar) + helper.getView(R.id.iv_avatar_receiver).loadAvatar(item.receiverAvatar) + helper.getView(R.id.iv_gift).load(item.giftPicUrl) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nnbc123/app/home/adapter/RoomNewFriendsAdapter.kt b/app/src/main/java/com/nnbc123/app/home/adapter/RoomNewFriendsAdapter.kt new file mode 100644 index 000000000..068961e74 --- /dev/null +++ b/app/src/main/java/com/nnbc123/app/home/adapter/RoomNewFriendsAdapter.kt @@ -0,0 +1,52 @@ +package com.nnbc123.app.home.adapter + +import android.view.View +import android.widget.ImageView +import android.widget.TextView +import androidx.core.view.isVisible +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.loadAvatar +import com.nnbc123.app.ui.utils.loadFromAssets +import com.nnbc123.app.vip.VipHelper +import com.nnbc123.core.user.bean.UserInfo +import com.opensource.svgaplayer.SVGAImageView + + +class RoomNewFriendsAdapter : + BaseQuickAdapter(R.layout.item_room_new_friends) { + + + override fun convert(helper: BaseViewHolder, item: UserInfo) { + helper.getView(R.id.iv_avatar).loadAvatar(item.avatar) + helper.setText(R.id.tv_desc, item.userDesc) + + val tvOnlineText = helper.getView(R.id.tv_online_text) + val svgaLiving = helper.getView(R.id.svga_living) + val llOnline = helper.getView(R.id.ll_online) + val viewOnline = helper.getView(R.id.view_online) + + if (item.isBanAccount) { + viewOnline.isVisible = true + tvOnlineText.text = "直播中" + svgaLiving.loadFromAssets("svag/home_living.svga") + llOnline.setOnClickListener { + + } + } else { + viewOnline.isVisible = false + svgaLiving.setImageResource(R.drawable.ic_new_friends_msg) + tvOnlineText.text = "和TA聊" + llOnline.setOnClickListener { + + } + } + + val tvNickname = helper.getView(R.id.tv_nickname) + tvNickname.text = item.nick + VipHelper.loadVipNickColor(tvNickname, item.userVipInfoVO, "#282828") + VipHelper.loadVipIcon(helper.getView(R.id.iv_vip_icon), item.userVipInfoVO) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt b/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt index ba3ffdf75..838a96c1f 100644 --- a/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt +++ b/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt @@ -171,7 +171,7 @@ class MeFragment : BaseFragment(), View.OnClickListener { mBinding.magicIndicatorEntrance.initIndicator(pagerList.size) mBinding.magicIndicatorEntrance.setSelectedPage(centerIndex) mBinding.magicIndicatorEntrance.visibility = - if (pagerList.size > 1) View.VISIBLE else View.INVISIBLE + if (pagerList.size > 1) View.VISIBLE else View.GONE mBinding.viewPagerEntrance.adapter = object : PagerAdapter() { val cacheItemView = SparseArray() diff --git a/app/src/main/java/com/nnbc123/app/home/fragment/RecommendFragment.kt b/app/src/main/java/com/nnbc123/app/home/fragment/RecommendFragment.kt index a0a159631..f5f25265c 100644 --- a/app/src/main/java/com/nnbc123/app/home/fragment/RecommendFragment.kt +++ b/app/src/main/java/com/nnbc123/app/home/fragment/RecommendFragment.kt @@ -20,18 +20,26 @@ 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.HomeSingleAnchorAdapter -import com.nnbc123.app.home.adapter.MainMagicIndicatorAdapter +import com.nnbc123.app.home.adapter.* import com.nnbc123.app.home.dialog.RecommendRoomDialog +import com.nnbc123.app.ui.utils.RVDelegate 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.home.bean.GiftServiceMsgVo +import com.nnbc123.core.home.bean.HomeRoomInfo import com.scwang.smartrefresh.layout.internal.ProgressDrawable +import com.yinyuan.doudou.pay.adapter.GiveSearchAdapter +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 /** * 音萌首页 @@ -42,6 +50,10 @@ class RecommendFragment : BaseFragment(), private var mFragmentsBottom: MutableList = ArrayList() private lateinit var singleAnchorAdapter: HomeSingleAnchorAdapter + private lateinit var giftServiceAdapter: GiftServiceAdapter + private lateinit var rvDelegate: RVDelegate + private var disposable: Disposable? = null + private val homeViewModel: HomeViewModel by activityViewModels() //仅埋点使用,不影响业务逻辑 @@ -69,13 +81,20 @@ class RecommendFragment : BaseFragment(), override fun onResume() { super.onResume() loadData() + homeViewModel.getServiceGiftRecord() } override fun initiate() { initRefreshView() initTitleTab() - initSingleAnchor() - + //initSingleAnchor() + giftServiceAdapter = GiftServiceAdapter() + rvDelegate = RVDelegate.Builder() + .setAdapter(giftServiceAdapter) + .setRecyclerView(mBinding.rvGiftService) + .setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无房间")) + .setLayoutManager(LinearLayoutManager(mContext)) + .build() homeViewModel.resourceLiveData.observe(this) { if (it.isNullOrEmpty() || it.size != 3) { mBinding.llResource.isGone = true @@ -122,6 +141,21 @@ class RecommendFragment : BaseFragment(), } } } + + homeViewModel.giftServiceLiveData.observe(viewLifecycleOwner) { + rvDelegate.loadData(it) + } + 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) + } + } } private fun initRefreshView() { @@ -141,14 +175,9 @@ class RecommendFragment : BaseFragment(), } private fun initTitleTab() { - val tagList = InitialModel.get().cacheInitInfo?.homeTabList.let { - if (it?.size == 2) it else arrayListOf("热门房间", "组队开黑") - } + val tagList = arrayListOf("发现新朋友", "组队开黑") + mFragmentsBottom.add(RoomNewFriendsFragment.newInstance()) mFragmentsBottom.add(HomePlayFragment.newInstance()) - mFragmentsBottom.add(RoomHotFragment.newInstance()) - if (tagList[0] != "组队开黑") { - mFragmentsBottom.reverse() - } val commonNavigator = CommonNavigator(context) commonNavigator.setTitleWrapContent(true) val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList) @@ -201,7 +230,12 @@ class RecommendFragment : BaseFragment(), private fun loadData() { homeViewModel.getHomeResource() - homeViewModel.getHomeSingleAnchorList() + //homeViewModel.getHomeSingleAnchorList() + } + + override fun onDestroyView() { + super.onDestroyView() + disposable?.dispose() } diff --git a/app/src/main/java/com/nnbc123/app/home/fragment/RoomNewFriendsFragment.kt b/app/src/main/java/com/nnbc123/app/home/fragment/RoomNewFriendsFragment.kt new file mode 100644 index 000000000..324a0298f --- /dev/null +++ b/app/src/main/java/com/nnbc123/app/home/fragment/RoomNewFriendsFragment.kt @@ -0,0 +1,77 @@ +package com.nnbc123.app.home.fragment + +import android.os.Bundle +import androidx.fragment.app.activityViewModels +import androidx.recyclerview.widget.LinearLayoutManager +import com.nnbc123.app.base.BaseViewBindingFragment +import com.nnbc123.app.common.EmptyViewHelper +import com.nnbc123.app.databinding.FragmentRoomHotBinding +import com.nnbc123.app.home.HomeViewModel +import com.nnbc123.app.home.adapter.RoomHotAdapter +import com.nnbc123.app.home.adapter.RoomNewFriendsAdapter +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.user.bean.UserInfo +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode + + +class RoomNewFriendsFragment : BaseViewBindingFragment() { + + companion object { + fun newInstance(): RoomNewFriendsFragment { + val args = Bundle() + val fragment = RoomNewFriendsFragment() + fragment.arguments = args + return fragment + } + } + + private lateinit var roomHotAdapter : RoomNewFriendsAdapter + private lateinit var rvDelegate: RVDelegate + + private var page = 1 + private val pageSize = Int.MAX_VALUE + private val homeViewModel: HomeViewModel by activityViewModels() + + override fun init() { + roomHotAdapter = RoomNewFriendsAdapter() + rvDelegate = RVDelegate.Builder() + .setAdapter(roomHotAdapter) + .setRecyclerView(binding.recyclerView) + .setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无新朋友")) + .setLayoutManager(LinearLayoutManager(mContext)) + .setPageSize(pageSize) + .build() + + homeViewModel.newFriendLiveData.observe(this) { + rvDelegate.loadData(it) + } + } + + override fun onResume() { + super.onResume() + loadData(true) + } + + private fun loadData(isRefresh: Boolean) { + homeViewModel.getNewFriendList() + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + EventBus.getDefault().register(this) + } + + override fun onDestroy() { + super.onDestroy() + EventBus.getDefault().unregister(this) + } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) { + if (isResumed) loadData(true) + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/bg_gift_service.png b/app/src/main/res/drawable-xhdpi/bg_gift_service.png new file mode 100644 index 000000000..7ebc939aa Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_gift_service.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_gift_service_arrow.png b/app/src/main/res/drawable-xhdpi/ic_gift_service_arrow.png new file mode 100644 index 000000000..386f5b21c Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_gift_service_arrow.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_home_man.png b/app/src/main/res/drawable-xhdpi/ic_home_man.png new file mode 100644 index 000000000..f36dd458f Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_home_man.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_home_rank.png b/app/src/main/res/drawable-xhdpi/ic_home_rank.png index d1fce4046..f526406bc 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_home_rank.png and b/app/src/main/res/drawable-xhdpi/ic_home_rank.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_home_woman.png b/app/src/main/res/drawable-xhdpi/ic_home_woman.png new file mode 100644 index 000000000..67cd840e5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_home_woman.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_new_friends_msg.png b/app/src/main/res/drawable-xhdpi/ic_new_friends_msg.png new file mode 100644 index 000000000..1a646a17b Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_new_friends_msg.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_resource_0.png b/app/src/main/res/drawable-xhdpi/ic_resource_0.png index 936699fa3..8fabd61f7 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_resource_0.png and b/app/src/main/res/drawable-xhdpi/ic_resource_0.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_resource_1.png b/app/src/main/res/drawable-xhdpi/ic_resource_1.png index 93010932c..39d5f74a6 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_resource_1.png and b/app/src/main/res/drawable-xhdpi/ic_resource_1.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_resource_2.png b/app/src/main/res/drawable-xhdpi/ic_resource_2.png index 37f935c42..fbea760dc 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_resource_2.png and b/app/src/main/res/drawable-xhdpi/ic_resource_2.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_resource_3.png b/app/src/main/res/drawable-xhdpi/ic_resource_3.png new file mode 100644 index 000000000..1f9d39a2e Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_resource_3.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_room_main_entrance_close.png b/app/src/main/res/drawable-xhdpi/ic_room_main_entrance_close.png index 673701087..9f245860c 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_room_main_entrance_close.png and b/app/src/main/res/drawable-xhdpi/ic_room_main_entrance_close.png differ diff --git a/app/src/main/res/drawable/shape_65d3f7_corner.xml b/app/src/main/res/drawable/shape_65d3f7_corner.xml new file mode 100644 index 000000000..1f6b23c6e --- /dev/null +++ b/app/src/main/res/drawable/shape_65d3f7_corner.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_f6f7f9_corner.xml b/app/src/main/res/drawable/shape_f6f7f9_corner.xml new file mode 100644 index 000000000..cdbd03fce --- /dev/null +++ b/app/src/main/res/drawable/shape_f6f7f9_corner.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_ff9cce_corner.xml b/app/src/main/res/drawable/shape_ff9cce_corner.xml new file mode 100644 index 000000000..b3768be5d --- /dev/null +++ b/app/src/main/res/drawable/shape_ff9cce_corner.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_home_online.xml b/app/src/main/res/drawable/shape_home_online.xml new file mode 100644 index 000000000..fe3f4b7f9 --- /dev/null +++ b/app/src/main/res/drawable/shape_home_online.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/app/src/main/res/drawable/shape_room_new_friends_bg.xml b/app/src/main/res/drawable/shape_room_new_friends_bg.xml new file mode 100644 index 000000000..a6612f428 --- /dev/null +++ b/app/src/main/res/drawable/shape_room_new_friends_bg.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/app/src/main/res/drawable/shape_room_temp.xml b/app/src/main/res/drawable/shape_room_temp.xml index 0cde78408..2c0e00701 100644 --- a/app/src/main/res/drawable/shape_room_temp.xml +++ b/app/src/main/res/drawable/shape_room_temp.xml @@ -1,10 +1,10 @@ - + - + android:color="@color/white" + android:width="1dp" /> + - + android:layout_marginStart="12.5dp"> + @@ -102,6 +101,7 @@ android:textColor="@color/white" android:textSize="@dimen/dp_10" tools:text="ID:666" /> + + android:src="@drawable/ic_vip_room_bottom" + android:visibility="gone" /> diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 51281726a..d923aaf02 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -44,10 +44,10 @@ - + android:src="@drawable/ic_home_my_room" + android:visibility="gone" /> diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml index 054b1d5de..2ec8dc778 100644 --- a/app/src/main/res/layout/fragment_me.xml +++ b/app/src/main/res/layout/fragment_me.xml @@ -482,7 +482,7 @@ android:layout_height="0dp" android:layout_marginStart="13dp" android:layout_marginTop="2dp" - android:background="@drawable/bg_me_wallet_entrance" + android:background="@drawable/bg_me_level_entrance" android:gravity="center" android:onClick="@{click}" android:paddingTop="17dp" @@ -515,7 +515,6 @@ app:layout_constraintStart_toEndOf="@id/me_item_level" app:layout_constraintTop_toTopOf="@id/me_item_level" /> - diff --git a/app/src/main/res/layout/fragment_recommend.xml b/app/src/main/res/layout/fragment_recommend.xml index c1566ebd2..d0ecb4ba1 100644 --- a/app/src/main/res/layout/fragment_recommend.xml +++ b/app/src/main/res/layout/fragment_recommend.xml @@ -47,41 +47,92 @@ android:layout_height="wrap_content" android:orientation="vertical"> - + android:layout_height="0dp" + android:src="@drawable/ic_resource_0" + app:layout_constraintDimensionRatio="94:120" + app:layout_constraintEnd_toStartOf="@id/iv_resource_1" + app:layout_constraintHorizontal_chainStyle="packed" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintWidth_percent="0.25" /> + android:layout_height="0dp" + android:layout_marginStart="8dp" + android:src="@drawable/ic_resource_1" + app:layout_constraintDimensionRatio="120:56" + app:layout_constraintEnd_toStartOf="@id/iv_resource_2" + app:layout_constraintStart_toEndOf="@id/iv_resource_0" + app:layout_constraintTop_toTopOf="@id/iv_resource_0" + app:layout_constraintWidth_percent="0.32" /> + 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_constraintStart_toEndOf="@id/iv_resource_1" + app:layout_constraintTop_toTopOf="@id/iv_resource_0" + app:layout_constraintWidth_percent="0.32" /> + + + + + + + + + + + + + - + tools:visibility="gone"> + tools:visibility="gone" /> diff --git a/app/src/main/res/layout/item_gift_service.xml b/app/src/main/res/layout/item_gift_service.xml new file mode 100644 index 000000000..10cb8c340 --- /dev/null +++ b/app/src/main/res/layout/item_gift_service.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_room_new_friends.xml b/app/src/main/res/layout/item_room_new_friends.xml new file mode 100644 index 000000000..43e73c0b1 --- /dev/null +++ b/app/src/main/res/layout/item_room_new_friends.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xhdpi/ic_search_main.png b/app/src/main/res/mipmap-xhdpi/ic_search_main.png index 3d6ff6edf..c1ac6d950 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_search_main.png and b/app/src/main/res/mipmap-xhdpi/ic_search_main.png differ diff --git a/app/src/module_treasure_box/res/layout/activity_pull_radish.xml b/app/src/module_treasure_box/res/layout/activity_pull_radish.xml index 796fdb97b..9c9da4feb 100644 --- a/app/src/module_treasure_box/res/layout/activity_pull_radish.xml +++ b/app/src/module_treasure_box/res/layout/activity_pull_radish.xml @@ -47,10 +47,12 @@ android:onClick="@{click}" app:autoPlay="false" app:fillMode="Clear" - app:layout_constraintBottom_toBottomOf="@id/iv_ship" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintDimensionRatio="750:725" - app:layout_constraintEnd_toEndOf="@id/iv_ship" - app:layout_constraintStart_toStartOf="@id/iv_ship" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.7" app:loopCount="1" app:source="svga/pull_radish_bg.svga" /> diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/home/bean/GiftServiceMsgVo.java b/core/src/diff_src_erban/java/com/nnbc123/core/home/bean/GiftServiceMsgVo.java new file mode 100644 index 000000000..d2297a603 --- /dev/null +++ b/core/src/diff_src_erban/java/com/nnbc123/core/home/bean/GiftServiceMsgVo.java @@ -0,0 +1,121 @@ +package com.nnbc123.core.home.bean; + +public class GiftServiceMsgVo { + private long roomUid; + private String roomTitle; + private long senderUid; + private long senderErbanNo; + private String senderAvatar; + private String senderNick; + private long receiverUid; + private long receiverErbanNo; + private String receiverAvatar; + private String receiverNick; + private String giftName; + private int giftNum; + private String giftPicUrl; + + public long getRoomUid() { + return roomUid; + } + + public void setRoomUid(long roomUid) { + this.roomUid = roomUid; + } + + public String getRoomTitle() { + return roomTitle; + } + + public void setRoomTitle(String roomTitle) { + this.roomTitle = roomTitle; + } + + public long getSenderUid() { + return senderUid; + } + + public void setSenderUid(long senderUid) { + this.senderUid = senderUid; + } + + public long getSenderErbanNo() { + return senderErbanNo; + } + + public void setSenderErbanNo(long senderErbanNo) { + this.senderErbanNo = senderErbanNo; + } + + public String getSenderAvatar() { + return senderAvatar; + } + + public void setSenderAvatar(String senderAvatar) { + this.senderAvatar = senderAvatar; + } + + public String getSenderNick() { + return senderNick; + } + + public void setSenderNick(String senderNick) { + this.senderNick = senderNick; + } + + public long getReceiverUid() { + return receiverUid; + } + + public void setReceiverUid(long receiverUid) { + this.receiverUid = receiverUid; + } + + public long getReceiverErbanNo() { + return receiverErbanNo; + } + + public void setReceiverErbanNo(long receiverErbanNo) { + this.receiverErbanNo = receiverErbanNo; + } + + public String getReceiverAvatar() { + return receiverAvatar; + } + + public void setReceiverAvatar(String receiverAvatar) { + this.receiverAvatar = receiverAvatar; + } + + public String getReceiverNick() { + return receiverNick; + } + + public void setReceiverNick(String receiverNick) { + this.receiverNick = receiverNick; + } + + public String getGiftName() { + return giftName; + } + + public void setGiftName(String giftName) { + this.giftName = giftName; + } + + public int getGiftNum() { + return giftNum; + } + + public void setGiftNum(int giftNum) { + this.giftNum = giftNum; + } + + public String getGiftPicUrl() { + return giftPicUrl; + } + + public void setGiftPicUrl(String giftPicUrl) { + this.giftPicUrl = giftPicUrl; + } +} \ No newline at end of file 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 9f41f76d5..9935a7468 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 @@ -194,6 +194,15 @@ object HomeModel : BaseModel() { api.getPartyRecommendRoomList(uid, types) } + suspend fun getServiceGiftRecord(): List? = + launchRequest { + api.getServiceGiftRecord() + } + + suspend fun getNewFriendList(): List? = + launchRequest { + api.getNewFriendList() + } private interface Api { /** @@ -412,6 +421,22 @@ object HomeModel : BaseModel() { @Query("uid") uid: String, @Query("types") types: String ): ServiceResult> + + /** + * 全服礼物记录 + * + * @return + */ + @GET("/home/service/gift/record") + suspend fun getServiceGiftRecord(): ServiceResult> + + /** + * 发现新朋友 + * + * @return + */ + @GET("/home/newFriend") + suspend fun getNewFriendList(): ServiceResult> } } \ No newline at end of file