我的页面增加点击事件处理

This commit is contained in:
huangjian
2022-07-25 11:28:34 +08:00
parent 9fecbd6dd0
commit e221fcdb05
12 changed files with 154 additions and 15 deletions

View File

@@ -114,9 +114,9 @@ class HomeViewModel : BaseViewModel() {
)
}
fun fastPickGameRoom() {
fun fastPickGameRoom(mgId: Long? = null) {
safeLaunch {
_pickRoomLiveData.value = HomeModel.fastPickGameRoom()
_pickRoomLiveData.value = HomeModel.fastPickGameRoom(mgId)
}
}

View File

@@ -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

View File

@@ -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<ImageView>(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)
}
}

View File

@@ -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<List<MeCenterInfo>?>) {
@@ -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<RecyclerView>()
mBinding.viewPagerEntrance.adapter = object : PagerAdapter() {
val cacheItemView = SparseArray<RecyclerView>()
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 -> {}
}
}

View File

@@ -27,7 +27,7 @@ class RoomGameFragment : BaseViewBindingFragment<FragmentRoomGameBinding>() {
}
}
private lateinit var roomHotAdapter : RoomGameAdapter
private lateinit var roomHotAdapter: RoomGameAdapter
private var page = 1
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
private val pageSize = 20
@@ -57,11 +57,11 @@ class RoomGameFragment : BaseViewBindingFragment<FragmentRoomGameBinding>() {
homeViewModel.fastPickGameRoom()
}
homeViewModel.pickRoomLiveData.observe(this, {
homeViewModel.pickRoomLiveData.observe(this) {
it?.let {
AVRoomActivity.start(mContext, it.uid)
}
})
}
}
override fun onResume() {

View File

@@ -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;

View File

@@ -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<ActivityPatriarchModeBinding> {
public static void start(Context context) {
Intent starter = new Intent(context, PatriarchModeActivity.class);
context.startActivity(starter);
}
@Override
protected void init() {
initWhiteTitleBar("青少年模式");

View File

@@ -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">
<TextView
android:id="@+id/tv_diamond_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
@@ -505,7 +506,8 @@
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager_entrance"
android:layout_width="match_parent"
android:layout_height="130dp" />
android:layout_marginTop="10dp"
android:layout_height="150dp" />
<com.yizhuan.erban.home.widget.MePageIndicatorView
android:id="@+id/magic_indicator_entrance"

View File

@@ -22,7 +22,7 @@
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:layout_marginTop="4dp"
android:ellipsize="end"
android:gravity="center"
android:includeFontPadding="false"

View File

@@ -139,9 +139,9 @@ object HomeModel : BaseModel() {
api.getCollectRoom(AuthModel.get().currentUid, pageNum, pageSize)
}
suspend fun fastPickGameRoom(): HomeRoomInfo? =
suspend fun fastPickGameRoom(mgId:Long?): HomeRoomInfo? =
launchRequest {
api.fastPickGameRoom()
api.fastPickGameRoom(mgId)
}
suspend fun getHomeSingleAnchorList(): List<HomeRoomInfo>? =
@@ -313,7 +313,7 @@ object HomeModel : BaseModel() {
* @return
*/
@GET("home/fastPick")
suspend fun fastPickGameRoom(): ServiceResult<HomeRoomInfo>
suspend fun fastPickGameRoom(@Query("mgId") mgId: Long?): ServiceResult<HomeRoomInfo>
/**
* 首页人气主播

View File

@@ -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;
}

View File

@@ -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公会账号