From a22cade574976dad125571aef484ec2c58e3ea44 Mon Sep 17 00:00:00 2001 From: lzl <1239365383@qq.com> Date: Fri, 28 Nov 2025 10:43:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=BE=E7=BA=A6=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xscm/moduleutil/bean/SignInfo.kt | 21 +++++ .../xscm/moduleutil/bean/room/RoomBean.java | 2 +- .../moduleutil/bean/room/RoomInfoResp.java | 3 +- .../xscm/moduleutil/widget/BaseWheatView.java | 84 ++++++++++--------- .../room/fragment/RoomMentorShipFragment.kt | 13 ++- .../widget/RoomMentorShipWheatView.kt | 24 ++++-- .../main/res/layout/fragment_mentor_ship.xml | 16 +++- .../layout/layout_room_mentorship_wheat.xml | 5 +- 8 files changed, 114 insertions(+), 54 deletions(-) create mode 100644 BaseModule/src/main/java/com/xscm/moduleutil/bean/SignInfo.kt diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/SignInfo.kt b/BaseModule/src/main/java/com/xscm/moduleutil/bean/SignInfo.kt new file mode 100644 index 00000000..c6ba1089 --- /dev/null +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/SignInfo.kt @@ -0,0 +1,21 @@ +package com.xscm.moduleutil.bean + +import java.io.Serializable + +class SignInfo : Serializable { +/* sign_id + // 0 未开始 1进行中 + sign_status; +// 签约天数 + sign_day; +// 当前身价 + current_body_value; +// 倒计时 时间戳 + end_time;*/ + + var sign_id: Int = 0 + var sign_status: Int = 0 + var sign_day: Int = 0 + var current_body_value: Int = 0 + var end_time: Long = 0 +} \ No newline at end of file diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomBean.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomBean.java index 29335ce2..0fb65997 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomBean.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomBean.java @@ -75,7 +75,7 @@ public class RoomBean implements Serializable { private String room_name;//房间名称 private String room_cover;//房间封面 private String room_intro;//房间公告 - private String type_id;//房间类型 1:点唱(pk) 2:拍卖(真爱拍小黑屋) 3/4:交友 6:小黑屋 7:互娱 8:交友 + private String type_id;//房间类型 1:点唱(pk) 2:拍卖(真爱拍小黑屋) 3/4:交友 6:小黑屋 7:互娱 8:交友 10:签约 private String type_name;//房间类型名称 private String user_id;//房主id private String label_id;//类型id 2:ktv type:1/3/4/8 diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomInfoResp.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomInfoResp.java index 05b3c5af..bb84c244 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomInfoResp.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomInfoResp.java @@ -6,6 +6,7 @@ import java.io.Serializable; import java.util.List; import com.xscm.moduleutil.bean.NobilitDeatils; +import com.xscm.moduleutil.bean.SignInfo; import com.xscm.moduleutil.bean.SingerInfo; import lombok.Data; @@ -37,7 +38,7 @@ public class RoomInfoResp implements Serializable { private NobilitDeatils.NobilityInfo nobility_info; private SingerInfo singer_info; - + private SignInfo sign_info; //弹出麦位操作弹出 public boolean isWheatManager() { diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/widget/BaseWheatView.java b/BaseModule/src/main/java/com/xscm/moduleutil/widget/BaseWheatView.java index c74e5579..ed5f25a6 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/widget/BaseWheatView.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/widget/BaseWheatView.java @@ -92,6 +92,7 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe private final SVGAParser parser = new SVGAParser(CommonAppContext.getInstance()); + public boolean isMentorShip = false; public BaseWheatView(Context context) { this(context, null, 0); @@ -158,6 +159,9 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe } } + public void isMentorShip(boolean isMentorShip) { + this.isMentorShip = isMentorShip; + } /** * 设置麦位数据 @@ -201,52 +205,56 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe setPitData(bean); - //心动值 - //显示心动 - if ("1".equals(pitBean.getShutup())) { - mIvShutup.setVisibility(VISIBLE); - } else { - mIvShutup.setVisibility(GONE); - } - //自动调节麦位波纹 if (mIvRipple != null) { mIvRipple.setScaleX(1.1f); mIvRipple.setScaleY(1.1f); } - if (pitNumber.equals("9")) { - iv_tag_type.setImageResource(R.mipmap.zc); - if (mRiv.getLayoutParams() instanceof ConstraintLayout.LayoutParams) { - ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mRiv.getLayoutParams(); - params.matchConstraintPercentWidth = 0.66f; // 设置为 52% - params.width = 0; // 必须设为 0dp(MATCH_CONSTRAINT) - mRiv.setLayoutParams(params); + if (!isMentorShip){ + + //心动值 + //显示心动 + if ("1".equals(pitBean.getShutup())) { + mIvShutup.setVisibility(VISIBLE); + } else { + mIvShutup.setVisibility(GONE); } - } else if (pitNumber.equals("10")) { - iv_tag_type.setImageResource(R.mipmap.jb); - if (mRiv.getLayoutParams() instanceof ConstraintLayout.LayoutParams) { - ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mRiv.getLayoutParams(); - params.matchConstraintPercentWidth = 0.66f; // 设置为 52% - params.width = 0; // 必须设为 0dp(MATCH_CONSTRAINT) - mRiv.setLayoutParams(params); + + if (pitNumber.equals("9")) { + iv_tag_type.setImageResource(R.mipmap.zc); + if (mRiv.getLayoutParams() instanceof ConstraintLayout.LayoutParams) { + ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mRiv.getLayoutParams(); + params.matchConstraintPercentWidth = 0.66f; // 设置为 52% + params.width = 0; // 必须设为 0dp(MATCH_CONSTRAINT) + mRiv.setLayoutParams(params); + } + } else if (pitNumber.equals("10")) { + iv_tag_type.setImageResource(R.mipmap.jb); + if (mRiv.getLayoutParams() instanceof ConstraintLayout.LayoutParams) { + ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mRiv.getLayoutParams(); + params.matchConstraintPercentWidth = 0.66f; // 设置为 52% + params.width = 0; // 必须设为 0dp(MATCH_CONSTRAINT) + mRiv.setLayoutParams(params); + } + } else if (pitNumber.equals("-1")) { + iv_tag_type.setImageResource(R.mipmap.mu_yc); + if (mRiv.getLayoutParams() instanceof ConstraintLayout.LayoutParams) { + ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mRiv.getLayoutParams(); + params.matchConstraintPercentWidth = 0.66f; // 设置为 52% + params.width = 0; // 必须设为 0dp(MATCH_CONSTRAINT) + mRiv.setLayoutParams(params); + } + } else if (pitNumber.equals("0")) { + iv_tag_type.setVisibility(GONE); + mIvShutup.setVisibility(VISIBLE); + } else if (pitNumber.equals("888")) { + iv_tag_type.setVisibility(GONE); + mIvShutup.setVisibility(GONE); + } else { + iv_tag_type.setVisibility(GONE); } - } else if (pitNumber.equals("-1")) { - iv_tag_type.setImageResource(R.mipmap.mu_yc); - if (mRiv.getLayoutParams() instanceof ConstraintLayout.LayoutParams) { - ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mRiv.getLayoutParams(); - params.matchConstraintPercentWidth = 0.66f; // 设置为 52% - params.width = 0; // 必须设为 0dp(MATCH_CONSTRAINT) - mRiv.setLayoutParams(params); - } - } else if (pitNumber.equals("0")) { - iv_tag_type.setVisibility(GONE); - mIvShutup.setVisibility(VISIBLE); - } else if (pitNumber.equals("888")) { - iv_tag_type.setVisibility(GONE); - mIvShutup.setVisibility(GONE); - } else { - iv_tag_type.setVisibility(GONE); } + AgoraManager.getInstance().addSoundLevelListener(new SoundLevelUpdateListener() { @Override public void onRemoteSoundLevelUpdate(String userId, int soundLevel) { diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomMentorShipFragment.kt b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomMentorShipFragment.kt index f04e4213..b561f1c5 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomMentorShipFragment.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomMentorShipFragment.kt @@ -73,6 +73,10 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) : for ((idx, view) in viewList.withIndex()) { if (mRoomInfo?.room_info?.pit_list!!.size > indexList[idx].toInt() - 1) { view.setRoomWheatNumber(indexList[idx]) + if (idx == 0) { + view.setHostTv(mBinding.tvHostName) + } + view.isMentorShip(true) view.setData(mRoomInfo?.room_info?.pit_list!![indexList[idx].toInt() - 1]) view.setOnClickListener { v -> if (ClickUtils.isFastDoubleClick(v)) { @@ -107,7 +111,14 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) : pitBean = mRoomInfo?.room_info?.pit_list!![indexList[idx].toInt() - 1] - showPopupMenu(view) + // 处理抱麦逻辑 + RoomOnlineDialogFragment.show( + roomId, + pitBean?.pit_number, + mRoomInfo?.user_info, + mRoomInfo, + childFragmentManager + ) } } } diff --git a/MainModule/src/main/java/com/xscm/modulemain/widget/RoomMentorShipWheatView.kt b/MainModule/src/main/java/com/xscm/modulemain/widget/RoomMentorShipWheatView.kt index 29d1908d..68576912 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/widget/RoomMentorShipWheatView.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/widget/RoomMentorShipWheatView.kt @@ -5,14 +5,13 @@ import android.content.res.TypedArray import android.text.TextUtils import android.util.AttributeSet import android.widget.ImageView +import android.widget.TextView import com.xscm.modulemain.R import com.xscm.moduleutil.bean.room.RoomPitBean import com.xscm.moduleutil.utils.ImageUtils import com.xscm.moduleutil.widget.BaseWheatView class RoomMentorShipWheatView : BaseWheatView { - private var iv_tag_type: ImageView? = null - constructor(context: Context?) : super(context) constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) @@ -24,6 +23,10 @@ class RoomMentorShipWheatView : BaseWheatView { defStyleAttr ) + + private var iv_tag_type: ImageView? = null + private var hostTv:TextView? = null + override fun initPit(context: Context, attrs: AttributeSet) { var typedArray: TypedArray? = null try { @@ -54,14 +57,25 @@ class RoomMentorShipWheatView : BaseWheatView { this.pitNumber = number } + fun setHostTv(hostTv:TextView){ + this.hostTv = hostTv + } + public override fun setPitData(bean: RoomPitBean) { pitBean = bean // 统一使用参数 bean stopAndClearAnimation() // 清理之前的动画资源 - if (pitBean.pit_number == "9" || pitBean.pit_number == "1") { + if ((pitBean.pit_number == "9" || pitBean.pit_number == "1") && bean.user_id != "0") { mCharmView.visibility = VISIBLE + if (pitBean.pit_number == "9") { + mTvName.visibility = GONE + hostTv?.visibility = VISIBLE + hostTv?.text = bean.nickname + } }else{ + mTvName.visibility = VISIBLE mCharmView.visibility = INVISIBLE + hostTv?.visibility = GONE } if (isOn) { @@ -70,8 +84,7 @@ class RoomMentorShipWheatView : BaseWheatView { handleOffState(bean) } - iv_tag_type!!.visibility = if (bean.isImageType) VISIBLE else GONE - iv_tag_type!!.setImageResource(com.xscm.moduleutil.R.mipmap.mu_yc) + iv_tag_type!!.visibility = GONE } fun setSex(value: String?, format: Boolean) { @@ -86,7 +99,6 @@ class RoomMentorShipWheatView : BaseWheatView { private fun handleOnState(bean: RoomPitBean) { mIvRipple.visibility = VISIBLE - mTvName.visibility = VISIBLE mTvName.text = bean.nickname ImageUtils.loadHeadCC(bean.avatar, mRiv) mCharmView.visibility = VISIBLE diff --git a/MainModule/src/main/res/layout/fragment_mentor_ship.xml b/MainModule/src/main/res/layout/fragment_mentor_ship.xml index 7421d722..b3449674 100644 --- a/MainModule/src/main/res/layout/fragment_mentor_ship.xml +++ b/MainModule/src/main/res/layout/fragment_mentor_ship.xml @@ -89,7 +89,7 @@ android:layout_width="@dimen/dp_36" android:layout_height="0dp" android:layout_marginStart="@dimen/dp_10" - app:layout_constraintDimensionRatio="1:1.4" + app:layout_constraintDimensionRatio="1:1.2" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/gl_top" /> @@ -97,12 +97,22 @@ android:id="@+id/iv_host_bg" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/dp_35" - android:layout_marginTop="@dimen/dp_5" + android:layout_marginStart="@dimen/dp_40" android:src="@mipmap/icon_host_top_tips_bg" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + +