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" />
+
+