diff --git a/app/src/main/java/com/yizhuan/erban/home/HomeViewModel.kt b/app/src/main/java/com/yizhuan/erban/home/HomeViewModel.kt index 2615e178f..0842438fd 100644 --- a/app/src/main/java/com/yizhuan/erban/home/HomeViewModel.kt +++ b/app/src/main/java/com/yizhuan/erban/home/HomeViewModel.kt @@ -114,9 +114,9 @@ class HomeViewModel : BaseViewModel() { ) } - fun fastPickGameRoom() { + fun fastPickGameRoom(mgId: Long? = null) { safeLaunch { - _pickRoomLiveData.value = HomeModel.fastPickGameRoom() + _pickRoomLiveData.value = HomeModel.fastPickGameRoom(mgId) } } diff --git a/app/src/main/java/com/yizhuan/erban/home/MeViewModel.kt b/app/src/main/java/com/yizhuan/erban/home/MeViewModel.kt index f2130e747..d66d347c4 100644 --- a/app/src/main/java/com/yizhuan/erban/home/MeViewModel.kt +++ b/app/src/main/java/com/yizhuan/erban/home/MeViewModel.kt @@ -39,7 +39,7 @@ class MeViewModel : BaseViewModel() { fun requestMeCenterInfoList() { safeLaunch( block = { - _meCenterInfoLiveData.value = transformList(HomeModel.requestMeCenterInfoList(), 4) + _meCenterInfoLiveData.value = transformList(HomeModel.requestMeCenterInfoList(), 8) }, onError = { _meCenterInfoLiveData.value = null diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/MeCenterAdapter.kt b/app/src/main/java/com/yizhuan/erban/home/adapter/MeCenterAdapter.kt index e6659c0a6..fa2613398 100644 --- a/app/src/main/java/com/yizhuan/erban/home/adapter/MeCenterAdapter.kt +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/MeCenterAdapter.kt @@ -4,6 +4,7 @@ import android.widget.ImageView import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.BaseViewHolder import com.yizhuan.erban.R +import com.yizhuan.erban.ui.im.RouterHandler import com.yizhuan.erban.ui.utils.load import com.yizhuan.xchat_android_core.room.bean.MeCenterInfo @@ -16,7 +17,7 @@ class MeCenterAdapter : helper.getView(R.id.iv_pic).load(item.centerPic) helper.setText(R.id.tv_name, item.centerName) helper.itemView.setOnClickListener { - + RouterHandler.handle(mContext, item.skipType, item.centerUrl) } } diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.kt index a56ccb7ee..b5e622fbd 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.kt @@ -7,20 +7,26 @@ import android.util.SparseArray import android.view.View import android.view.ViewGroup import androidx.databinding.DataBindingUtil +import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.viewpager.widget.PagerAdapter +import com.chad.library.adapter.base.BaseQuickAdapter import com.yizhuan.erban.R import com.yizhuan.erban.UIHelper +import com.yizhuan.erban.avroom.activity.AVRoomActivity import com.yizhuan.erban.base.BaseFragment import com.yizhuan.erban.databinding.FragmentMeBinding +import com.yizhuan.erban.home.HomeViewModel import com.yizhuan.erban.home.MeViewModel +import com.yizhuan.erban.home.activity.VisitorListActivity import com.yizhuan.erban.home.adapter.MeCenterAdapter import com.yizhuan.erban.home.adapter.MeGameAdapter import com.yizhuan.erban.home.helper.BannerHelper import com.yizhuan.erban.skill.activity.SkillHomeActivity import com.yizhuan.erban.skill.activity.SkillHomeActivity.Companion.start +import com.yizhuan.erban.ui.pay.ChargeActivity import com.yizhuan.erban.ui.relation.AttentionListActivity import com.yizhuan.erban.ui.relation.FansListActivity import com.yizhuan.erban.ui.utils.ImageLoadUtils @@ -35,6 +41,8 @@ import com.yizhuan.xchat_android_core.manager.IMNetEaseManager import com.yizhuan.xchat_android_core.manager.RelationShipEvent import com.yizhuan.xchat_android_core.noble.NobleProtocol import com.yizhuan.xchat_android_core.noble.NobleUtil +import com.yizhuan.xchat_android_core.pay.PayModel +import com.yizhuan.xchat_android_core.pay.event.UpdateWalletInfoEvent import com.yizhuan.xchat_android_core.room.bean.MeCenterInfo import com.yizhuan.xchat_android_core.room.game.GameInfo import com.yizhuan.xchat_android_core.statistic.StatisticManager @@ -44,6 +52,7 @@ import com.yizhuan.xchat_android_core.user.bean.UserInfo import com.yizhuan.xchat_android_core.user.event.LoginUserInfoUpdateEvent import com.yizhuan.xchat_android_core.utils.StarUtils import com.yizhuan.xchat_android_library.rxbus.RxBusHelper +import com.yizhuan.xchat_android_library.utils.FormatUtils import com.yizhuan.xchat_android_library.utils.ListUtils import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe @@ -64,6 +73,7 @@ class MeFragment : BaseFragment(), View.OnClickListener { private var mUserInfo: UserInfo? = null private lateinit var mBinding: FragmentMeBinding private val meViewModel: MeViewModel by viewModels() + private val homeViewModel: HomeViewModel by activityViewModels() override fun getRootLayoutId(): Int { return R.layout.fragment_me } @@ -101,6 +111,10 @@ class MeFragment : BaseFragment(), View.OnClickListener { } ) + val walletInfo = PayModel.get().currentWalletInfo + if (walletInfo != null) { + mBinding.tvDiamondNum.text = FormatUtils.formatBigInteger(walletInfo.diamondNum) + } meViewModel.bannerLiveData.observe(viewLifecycleOwner) { BannerHelper.setBanner(mBinding.rollView, it) } @@ -113,6 +127,12 @@ class MeFragment : BaseFragment(), View.OnClickListener { setCenterInfoData(it) } + homeViewModel.pickRoomLiveData.observe(viewLifecycleOwner) { + it?.let { + AVRoomActivity.start(mContext, it.uid) + } + } + } private fun setCenterInfoData(pagerList: List?>) { @@ -123,8 +143,10 @@ class MeFragment : BaseFragment(), View.OnClickListener { mBinding.magicIndicatorEntrance.setSelectedPage(0) mBinding.magicIndicatorEntrance.visibility = if (pagerList.size > 1) View.VISIBLE else View.INVISIBLE - val cacheItemView = SparseArray() mBinding.viewPagerEntrance.adapter = object : PagerAdapter() { + + val cacheItemView = SparseArray() + override fun getCount(): Int { return pagerList.size } @@ -198,6 +220,9 @@ class MeFragment : BaseFragment(), View.OnClickListener { ) recyclerView.layoutManager = GridLayoutManager(context, 4) giftAdapter = MeGameAdapter() + giftAdapter.setOnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int -> + homeViewModel.fastPickGameRoom(position.toLong()) + } recyclerView.adapter = giftAdapter cacheItemView.put(pagePos, recyclerView) } else { @@ -318,6 +343,12 @@ class MeFragment : BaseFragment(), View.OnClickListener { setUserData() } + @Subscribe(threadMode = ThreadMode.MAIN) + fun onWalletInfoUpdate(event: UpdateWalletInfoEvent?) { + mBinding.tvDiamondNum.text = PayModel.get().currentWalletInfo?.diamondNum?.toString() + ?: "0" + } + @SuppressLint("SetTextI18n") @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) fun onVisitorUnreadCountEvent(event: VisitorUnreadCountEvent?) { @@ -367,6 +398,8 @@ class MeFragment : BaseFragment(), View.OnClickListener { SkillHomeActivity.PAGE_TYPE_SELF, AuthModel.get().currentUid ) + R.id.tv_user_visitor -> VisitorListActivity.start(mContext) + R.id.me_item_wallet -> ChargeActivity.start(mContext) else -> {} } } diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt index ec0db4a19..ccbcad9a9 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt @@ -27,7 +27,7 @@ class RoomGameFragment : BaseViewBindingFragment() { } } - private lateinit var roomHotAdapter : RoomGameAdapter + private lateinit var roomHotAdapter: RoomGameAdapter private var page = 1 private lateinit var rvDelegate: RVDelegate private val pageSize = 20 @@ -57,11 +57,11 @@ class RoomGameFragment : BaseViewBindingFragment() { homeViewModel.fastPickGameRoom() } - homeViewModel.pickRoomLiveData.observe(this, { + homeViewModel.pickRoomLiveData.observe(this) { it?.let { AVRoomActivity.start(mContext, it.uid) } - }) + } } override fun onResume() { diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/RouterHandler.java b/app/src/main/java/com/yizhuan/erban/ui/im/RouterHandler.java index 46fb5e9ca..d621f5530 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/im/RouterHandler.java +++ b/app/src/main/java/com/yizhuan/erban/ui/im/RouterHandler.java @@ -10,26 +10,36 @@ import com.yizhuan.erban.UIHelper; import com.yizhuan.erban.audio.VoiceMatchActivity; import com.yizhuan.erban.avroom.activity.AVRoomActivity; import com.yizhuan.erban.avroom.recommendcard.MyRecommendCardActivity; +import com.yizhuan.erban.base.BaseActivity; import com.yizhuan.erban.base.DialogManagerInterface; import com.yizhuan.erban.common.widget.dialog.DialogManager; import com.yizhuan.erban.decoration.view.DecorationStoreActivity; import com.yizhuan.erban.decoration.view.MyDecorationActivity; import com.yizhuan.erban.family.view.activity.FamilyHomeActivity; +import com.yizhuan.erban.fansteam.FansTeamListActivity; +import com.yizhuan.erban.home.activity.CollectionRoomActivity; +import com.yizhuan.erban.home.activity.VisitorListActivity; +import com.yizhuan.erban.home.helper.OpenRoomHelper; import com.yizhuan.erban.miniworld.activity.MiniWorldGuestPageActivity; import com.yizhuan.erban.miniworld.activity.MiniWorldMainActivity; +import com.yizhuan.erban.module_hall.HallDataManager; +import com.yizhuan.erban.module_hall.hall.activity.ModuleClanActivity; import com.yizhuan.erban.module_hall.hall.activity.ModuleHallActivity; import com.yizhuan.erban.public_chat_hall.activity.PublicChatHallHomeActivity; import com.yizhuan.erban.radish.signin.SignInActivity; import com.yizhuan.erban.radish.task.activity.TaskCenterActivity; +import com.yizhuan.erban.relation.cp.activity.CpHomeActivity; import com.yizhuan.erban.relation.cp.activity.CpInviteRecordActivity; import com.yizhuan.erban.relation.cp.activity.CpTaskActivity; import com.yizhuan.erban.team.view.NimTeamMessageActivity; import com.yizhuan.erban.ui.login.BindPhoneActivity; import com.yizhuan.erban.ui.login.ShowBindPhoneActivity; +import com.yizhuan.erban.ui.patriarch.PatriarchModeActivity; import com.yizhuan.erban.ui.patriarch.help.LimitEnterRoomHelper; import com.yizhuan.erban.ui.pay.ChargeActivity; import com.yizhuan.erban.ui.setting.FeedbackActivity; import com.yizhuan.erban.ui.setting.ModifyPwdActivity; +import com.yizhuan.erban.ui.setting.ScheduleManageActivity; import com.yizhuan.erban.ui.user.UserInfoActivity; import com.yizhuan.erban.ui.webview.CommonWebViewActivity; import com.yizhuan.erban.ui.withdraw.BinderAlipayActivity; @@ -39,6 +49,7 @@ import com.yizhuan.xchat_android_core.DemoCache; import com.yizhuan.xchat_android_core.UriProvider; import com.yizhuan.xchat_android_core.auth.AuthModel; import com.yizhuan.xchat_android_core.community.event.SquareTaskEvent; +import com.yizhuan.xchat_android_core.home.event.VisitorUnreadCountEvent; import com.yizhuan.xchat_android_core.im.custom.bean.RouterType; import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.module_hall.hall.HallModel; @@ -296,6 +307,46 @@ public class RouterHandler { case RouterType.USER_BUBBLE: MyDecorationActivity.start(context, 4); break; + case RouterType.MY_ROOM: + //我的房间,开房 + StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_ME_INTO_MY_ROOM_CLICK, "我页_进入我的房间"); + OpenRoomHelper.openRoom((BaseActivity) context); + break; + case RouterType.COLLECTION_ROOM: + //收藏的房间 + CollectionRoomActivity.start(context); + break; + case RouterType.MODULE_CLAN: + //公会或房间主页 + if (HallDataManager.get().isHasClan()) { + ModuleClanActivity.start(context); + } else if (HallDataManager.get().hasLiveHall()) { + ModuleHallActivity.start(context); + } else { + SingleToastUtil.showToast("你还没有公会或房间!"); + } + break; + case RouterType.PATRIARCH_MODE: + //青少年模式 + PatriarchModeActivity.start(context); + break; + case RouterType.SCHEDULE_MANAGE: + //赛程管理 + ScheduleManageActivity.Companion.start(context); + break; + case RouterType.VISITOR_LIST: + //访客记录 + EventBus.getDefault().postSticky(new VisitorUnreadCountEvent(0)); + VisitorListActivity.start(context); + break; + case RouterType.CP_HOME: + //CP主页 + CpHomeActivity.Companion.start(context); + break; + case RouterType.FANS_TEAM_LIST: + //粉丝团列表 + FansTeamListActivity.start(context); + break; default: SingleToastUtil.showToast("暂不支持哟!"); return false; diff --git a/app/src/main/java/com/yizhuan/erban/ui/patriarch/PatriarchModeActivity.java b/app/src/main/java/com/yizhuan/erban/ui/patriarch/PatriarchModeActivity.java index 97a7b46b1..df09e66b7 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/patriarch/PatriarchModeActivity.java +++ b/app/src/main/java/com/yizhuan/erban/ui/patriarch/PatriarchModeActivity.java @@ -1,6 +1,9 @@ package com.yizhuan.erban.ui.patriarch; +import android.content.Context; +import android.content.Intent; import android.graphics.Paint; +import android.os.Bundle; import com.netease.nim.uikit.StatusBarUtil; import com.yizhuan.erban.R; @@ -15,6 +18,11 @@ import com.yizhuan.xchat_android_library.annatation.ActLayoutRes; @ActLayoutRes(R.layout.activity_patriarch_mode) public class PatriarchModeActivity extends BaseBindingActivity { +public static void start(Context context) { + Intent starter = new Intent(context, PatriarchModeActivity.class); + context.startActivity(starter); +} + @Override protected void init() { initWhiteTitleBar("青少年模式"); diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml index 1e0246ec4..eb9381e29 100644 --- a/app/src/main/res/layout/fragment_me.xml +++ b/app/src/main/res/layout/fragment_me.xml @@ -356,7 +356,7 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:maxLines="1" - android:text="@{String.valueOf(userInfo.fansNum)}" + android:text="@{String.valueOf(userInfo.visitNum)}" android:textColor="@color/text_normal_c6c6e9" android:textSize="@dimen/sp_20" android:textStyle="bold" @@ -388,7 +388,7 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:maxLines="1" - android:text="@{String.valueOf(userInfo.fansNum)}" + android:text="@{String.valueOf(userInfo.inRoomNum)}" android:textColor="@color/text_normal_c6c6e9" android:textSize="@dimen/sp_20" android:textStyle="bold" @@ -426,6 +426,7 @@ app:layout_constraintTop_toBottomOf="@id/ll_user_relation"> + android:layout_marginTop="10dp" + android:layout_height="150dp" /> ? = @@ -313,7 +313,7 @@ object HomeModel : BaseModel() { * @return */ @GET("home/fastPick") - suspend fun fastPickGameRoom(): ServiceResult + suspend fun fastPickGameRoom(@Query("mgId") mgId: Long?): ServiceResult /** * 首页人气主播 diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RouterType.java b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RouterType.java index 9749001f2..455e22fde 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RouterType.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/RouterType.java @@ -220,4 +220,40 @@ public class RouterType { * 65-资料卡装扮 */ public static final int USER_BUBBLE = 56; + + /** + * 64我的房间 + */ + public static final int MY_ROOM = 64; + + /** + * 66-收藏的房间 + */ + public static final int COLLECTION_ROOM = 65; + /** + * 67-我的公会 + */ + public static final int MODULE_CLAN = 67; + /** + * 68-青少年模式 + */ + public static final int PATRIARCH_MODE = 68; + /** + * 69-赛程管理 + */ + public static final int SCHEDULE_MANAGE = 69; + /** + * 70-访客记录 + */ + public static final int VISITOR_LIST = 70; + + /** + * 71-CP主页 + */ + public static final int CP_HOME = 71; + + /** + * 71-粉丝团列表 + */ + public static final int FANS_TEAM_LIST = 72; } diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java index eecb0a249..d1918d510 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java @@ -93,6 +93,14 @@ public class UserInfo implements Serializable { private long followNum; //粉丝数 private long fansNum; + //访客数量 + @Getter + @Setter + private long visitNum; + //进房历史记录数量 + @Getter + @Setter + private long inRoomNum; //人气值 private long fortune; //1普通账号,2官方账号,3机器账号 ,4公会账号