diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4baafce..a40b96c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -149,10 +149,10 @@
-
-
-
-
+
+
+
+
() {
+ public void drawGiftList(String giftBagId, String gift_user_ids, String roomId, String num,String heart_id) {
+ api.drawGiftList(giftBagId, gift_user_ids, roomId, num,heart_id, new BaseObserver() {
@Override
public void onSubscribe(Disposable d) {
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java b/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java
index 80ba0fc..3daedc5 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java
@@ -45,6 +45,7 @@ import com.xscm.moduleutil.bean.RoomSearchResp;
import com.xscm.moduleutil.bean.RoomSubsidy;
import com.xscm.moduleutil.bean.RoomTime;
import com.xscm.moduleutil.bean.RoomTypeModel;
+import com.xscm.moduleutil.bean.RoomUserCharmListBean;
import com.xscm.moduleutil.bean.RoonGiftModel;
import com.xscm.moduleutil.bean.SongMusicBean;
import com.xscm.moduleutil.bean.ThemeBean;
@@ -738,7 +739,7 @@ public interface ApiServer {
@FormUrlEncoded
@POST(Constants.POST_DRAW_GIFT_LIST)
- Call> drawGiftList(@Field("gift_bag_id") String gift_bag_id, @Field("gift_user_ids") String gift_user_ids,@Field("room_id")String room_id,@Field("num")String num);
+ Call> drawGiftList(@Field("gift_bag_id") String gift_bag_id, @Field("gift_user_ids") String gift_user_ids,@Field("room_id")String room_id,@Field("num")String num,@Field("heart_id") String heart_id);
@GET(Constants.GET_MY_RECORD)
Call>> getMyRecord(@Query("gift_bag_id")String gift_bag_id,@Query("page")String page,@Query("page_size")String page_size);
@@ -766,6 +767,10 @@ public interface ApiServer {
@FormUrlEncoded
@POST(Constants.POST_GIFT_ALL_CLEAR)
- Call> getGiftPack(@Field("room_id") String roomId,@Field("to_uid") String user_id);
+ Call> getGiftPack(@Field("room_id") String roomId,@Field("to_uid") String user_id,@Field("heart_id") String heart_id);
+
+ @FormUrlEncoded
+ @POST(Constants.POST_ROOM_USER_CHARM_LIST)
+ Call>> roomUserCharmList(@Field("room_id") String roomId,@Field("user_id") String user_id);
}
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java b/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java
index a6ccc1c..13de419 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java
@@ -62,6 +62,7 @@ import com.xscm.moduleutil.bean.RoomSubsidy;
import com.xscm.moduleutil.bean.RoomSubsidyDetails;
import com.xscm.moduleutil.bean.RoomTime;
import com.xscm.moduleutil.bean.RoomTypeModel;
+import com.xscm.moduleutil.bean.RoomUserCharmListBean;
import com.xscm.moduleutil.bean.RoonGiftModel;
import com.xscm.moduleutil.bean.SongMusicBean;
import com.xscm.moduleutil.bean.ThemeBean;
@@ -457,8 +458,8 @@ public class RetrofitClient {
sApiServer.giftPack().compose(new DefaultTransformer<>()).subscribe(observer);
}
- public void getGiftPack(String roomId, String userId,BaseObserver observer){
- sApiServer.getGiftPack(roomId,userId).enqueue(new Callback>() {
+ public void getGiftPack(String roomId, String userId, String heart_id,BaseObserver observer){
+ sApiServer.getGiftPack(roomId,userId,heart_id).enqueue(new Callback>() {
@Override
public void onResponse(Call> call, Response> response) {
if (response.code() == 200){
@@ -2334,8 +2335,8 @@ public class RetrofitClient {
}
///盲盒转盘抽奖
- public void drawGiftList(String giftBagId, String gift_user_ids, String roomId, String num,BaseObserver observer){
- sApiServer.drawGiftList(giftBagId, gift_user_ids, roomId, num).enqueue(new Callback>() {
+ public void drawGiftList(String giftBagId, String gift_user_ids, String roomId, String num,String heart_id,BaseObserver observer){
+ sApiServer.drawGiftList(giftBagId, gift_user_ids, roomId, num,heart_id).enqueue(new Callback>() {
@Override
public void onResponse(Call> call, Response> response) {
if (response.code() == 200) {
@@ -2441,4 +2442,25 @@ public class RetrofitClient {
});
}
+ public void roomUserCharmList(String room_id, String user_id, BaseObserver> observer){
+ sApiServer.roomUserCharmList(room_id,user_id).enqueue(new Callback>>() {
+ @Override
+ public void onResponse(Call>> call, Response>> response) {
+ if (response.code()==200){
+ BaseModel> baseModel = response.body();
+ if (baseModel.getCode()==1){
+ observer.onNext(baseModel.getData());
+ }else if (baseModel.getCode()==0){
+ observer.onNext(null);
+ }
+ }
+ }
+
+ @Override
+ public void onFailure(Call>> call, Throwable t) {
+ t.printStackTrace();
+ }
+ });
+ }
+
}
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/listener/MessageListenerSingleton.java b/moduleUtil/src/main/java/com/xscm/moduleutil/listener/MessageListenerSingleton.java
index 3f6c1e7..9a3e9ef 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/listener/MessageListenerSingleton.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/listener/MessageListenerSingleton.java
@@ -293,13 +293,13 @@ public class MessageListenerSingleton {
V2TIMManager.getInstance().quitGroup("room" + mRoomId, new V2TIMCallback() {
@Override
public void onSuccess() {
- LogUtils.d("退出群组成功");
+ LogUtils.d("@@@","退出群组成功"+mRoomId);
// removeAllListeners(); // 移除所有监听器
}
@Override
public void onError(int code, String desc) {
- LogUtils.d("退出群组失败", code, desc);
+ LogUtils.d("@@@","退出群组失败"+mRoomId, code, desc);
// removeAllListeners(); // 即使失败也移除监听器
}
});
@@ -313,6 +313,7 @@ public class MessageListenerSingleton {
isInitialized = false;
// instance = null;
quitGroup(roomId);
+ LogUtils.e("@@@","重置成功");
}
}
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/presenter/RewardGiftContacts.java b/moduleUtil/src/main/java/com/xscm/moduleutil/presenter/RewardGiftContacts.java
index 249f307..a63f5be 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/presenter/RewardGiftContacts.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/presenter/RewardGiftContacts.java
@@ -51,6 +51,6 @@ public class RewardGiftContacts {
void roomAuctionJoin(String auction_id,String user_id, String gift_id, String num,String type);
void giftPack();
- void getGiftPack(String roomId,String userId);
+ void getGiftPack(String roomId,String userId,String heart_id);
}
}
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/presenter/RewardGiftPresenter.java b/moduleUtil/src/main/java/com/xscm/moduleutil/presenter/RewardGiftPresenter.java
index 1b3efc9..baaf347 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/presenter/RewardGiftPresenter.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/presenter/RewardGiftPresenter.java
@@ -210,8 +210,8 @@ public class RewardGiftPresenter extends BasePresenter
}
@Override
- public void getGiftPack(String roomId,String userId) {
- api.getGiftPack(roomId,userId, new BaseObserver() {
+ public void getGiftPack(String roomId,String userId,String heart_id) {
+ api.getGiftPack(roomId,userId,heart_id, new BaseObserver() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java b/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java
index 5cf92b4..4e4e0db 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java
@@ -411,17 +411,19 @@ public class AgoraManager {
@SuppressLint("SuspiciousIndentation")
public void setLocalAudioEnabled(boolean enabled, String userId) {
if (rtcEngine != null) {
- if (userId.equals(SpUtil.getUserId()+"")) {
- rtcEngine.enableLocalAudio(enabled); // 启用/禁用音频采集
- }
- this.isLocalAudioEnabled = enabled;
- if (!enabled) {
- for (SoundLevelUpdateListener listener : soundLevelUpdateListeners) {
- if (listener != null) {
- ThreadUtils.runOnUiThread(() -> {
- // 远程用户音量变化
- listener.onRemoteSoundLevelUpdate(userId, 0);
- });
+ if (userId != null) {
+ if (userId.equals(SpUtil.getUserId() + "")) {
+ rtcEngine.enableLocalAudio(enabled); // 启用/禁用音频采集
+ }
+ this.isLocalAudioEnabled = enabled;
+ if (!enabled) {
+ for (SoundLevelUpdateListener listener : soundLevelUpdateListeners) {
+ if (listener != null) {
+ ThreadUtils.runOnUiThread(() -> {
+ // 远程用户音量变化
+ listener.onRemoteSoundLevelUpdate(userId, 0);
+ });
+ }
}
}
}
@@ -466,6 +468,7 @@ public class AgoraManager {
if (rtcEngine == null) {
init(CommonAppContext.getInstance().getCurrentEnvironment().getSwSdkAppId());
}
+ // 正确做法
rtcEngine.muteLocalAudioStreamEx(enabled, connection);
}
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/AvatarFrameView.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/AvatarFrameView.java
index 6abd5de..71ac7a8 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/AvatarFrameView.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/AvatarFrameView.java
@@ -248,16 +248,11 @@ public class AvatarFrameView extends FrameLayout implements IAnimListener {
private void playNextFromQueue() {
// if (isDestroyed) return;
// 确保在主线程中执行
- if (Looper.myLooper() != Looper.getMainLooper()) {
- mainHandler.post(this::playNextFromQueue);
- return;
- }
- // 再次检查内存状态
-// if (isMemoryLow()) {
-// LogUtils.w(TAG, "Low memory, clearing queue");
-// clearQueue();
+// if (Looper.myLooper() != Looper.getMainLooper()) {
+// mainHandler.post(this::playNextFromQueue);
// return;
// }
+
// 检查特效是否开启
if (SpUtil.getOpenEffect() != 1) {
clearQueue();
@@ -986,16 +981,14 @@ public class AvatarFrameView extends FrameLayout implements IAnimListener {
// }
private void clearPrevious() {
-// if (isDestroyed) return;
// 确保在主线程中执行
- if (Looper.myLooper() != Looper.getMainLooper()) {
- mainHandler.post(() -> {
-// if (!isDestroyed) {
- clearPrevious();
-// }
- });
- return;
- }
+// if (Looper.myLooper() != Looper.getMainLooper()) {
+// mainHandler.post(() -> {
+// clearPrevious();
+//// }
+// });
+// return;
+// }
try {
// 停止并清理 ExoPlayer
// if (exoPlayer != null) {
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java
index def144f..212c4cd 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java
@@ -385,6 +385,7 @@ public class Constants {
public static final String POST_XLH_ALL_RECORD = "/api/BlindBoxTurntable/get_xlh_all_record";///巡乐会榜单
public static final String GET_XLH_MY_RECORD = "/api/BlindBoxTurntable/get_xlh_my_record";///巡乐会记录
public static final String POST_GIFT_ALL_CLEAR = "/api/Room/room_gift_all_clear";///背包礼物全清
+ public static final String POST_ROOM_USER_CHARM_LIST = "/api/Room/room_user_charm_list";///房间用户当前魅力值列表
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomFriendshipWheatView.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomFriendshipWheatView.java
index d872710..bae5877 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomFriendshipWheatView.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomFriendshipWheatView.java
@@ -68,6 +68,16 @@ public class RoomFriendshipWheatView extends BaseWheatView {
}
});
}
+
+ mCharmView.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ if (mOnCharmClickListener != null && pitBean != null){
+ mOnCharmClickListener.onCharmClick(RoomFriendshipWheatView.this, pitBean);
+ }
+ }
+ });
}
@Override
@@ -303,6 +313,12 @@ public class RoomFriendshipWheatView extends BaseWheatView {
this.mOnZhulClickListener = listener;
}
+ private onCharmClickListener mOnCharmClickListener;
+
+ public void setmOnCharmClickListener(onCharmClickListener mOnCharmClickListener) {
+ this.mOnCharmClickListener = mOnCharmClickListener;
+ }
+
@Override
public void unRegister(Object obj) {
@@ -311,4 +327,8 @@ public class RoomFriendshipWheatView extends BaseWheatView {
public interface OnZhulClickListener {
void onZhulClick(RoomFriendshipWheatView view, RoomPitBean pitBean);
}
+
+ public interface onCharmClickListener{
+ void onCharmClick(RoomFriendshipWheatView view, RoomPitBean pitBean);
+ }
}
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomKtvWheatView.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomKtvWheatView.java
index 48d3e99..3a9a56d 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomKtvWheatView.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomKtvWheatView.java
@@ -36,7 +36,14 @@ public class RoomKtvWheatView extends BaseWheatView {
public RoomKtvWheatView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
+ private onCharmClickListener mOnCharmClickListener;
+ public void setmOnCharmClickListener(onCharmClickListener mOnCharmClickListener) {
+ this.mOnCharmClickListener = mOnCharmClickListener;
+ }
+ public interface onCharmClickListener{
+ void onCharmClick(RoomKtvWheatView view, RoomPitBean pitBean);
+ }
@Override
protected void initPit(Context context, AttributeSet attrs) {
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.RoomDefaultWheatView);
@@ -45,6 +52,16 @@ public class RoomKtvWheatView extends BaseWheatView {
mIvTagBoss = findViewById(R.id.iv_tag_boos);
mTvTime = findViewById(R.id.tv_time);
tv_time_pk = findViewById(R.id.tv_time_pk);
+
+ mCharmView.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ if (mOnCharmClickListener != null && pitBean != null){
+ mOnCharmClickListener.onCharmClick(RoomKtvWheatView.this, pitBean);
+ }
+ }
+ });
}
@Override
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomMakeWheatView.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomMakeWheatView.java
index 2e808d8..d271cbc 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomMakeWheatView.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/RoomMakeWheatView.java
@@ -51,8 +51,38 @@ public class RoomMakeWheatView extends BaseWheatView {
iv_tag_type=findViewById(R.id.iv_tag_type);
mCharmView = findViewById(R.id.charm_view);
mRiv.setImageResource(pitImageVId);
+
+ if (mTvTime != null) {
+ mTvTime.setOnClickListener(v -> {
+ // 处理魅力值点击
+ if (mOnCharmClickListener != null && pitBean != null) {
+ mOnCharmClickListener.onCharmClick(this, pitBean);
+ }
+ });
+ }
}
+// @Override
+// public void setOnClickListener(OnClickListener l) {
+// // 保存外部设置的点击监听器
+// this.onWholeViewClickListener = l;
+// super.setOnClickListener(l);
+// }
+
+ // 为子组件设置点击监听器时,确保不会拦截父容器的点击事件
+ public void setupChildClickListeners() {
+ if (mRiv != null) {
+ mRiv.setOnClickListener(v -> {
+ // 处理头像点击
+ if (onWholeViewClickListener != null) {
+ onWholeViewClickListener.onClick(this);
+ }
+ });
+ }
+
+
+ }
+ private OnClickListener onWholeViewClickListener;
@Override
protected int getLayoutId() {
return R.layout.room_view_make_wheat;
@@ -130,8 +160,27 @@ public class RoomMakeWheatView extends BaseWheatView {
iv_tag_type.setVisibility(GONE);
mCharmView.setVisibility(GONE);
}
- }
+// mCharmView.setOnClickListener(new OnClickListener() {
+//
+// @Override
+// public void onClick(View v) {
+// if (mOnCharmClickListener != null && pitBean != null){
+// mOnCharmClickListener.onCharmClick(RoomMakeWheatView.this, pitBean);
+// }
+// }
+// });
+
+ }
+ private onCharmClickListener mOnCharmClickListener;
+//
+ public void setmOnCharmClickListener(onCharmClickListener mOnCharmClickListener) {
+ this.mOnCharmClickListener = mOnCharmClickListener;
+ }
+//
+ public interface onCharmClickListener{
+ void onCharmClick(RoomMakeWheatView view, RoomPitBean pitBean);
+ }
public void setChe(String che){
}
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/WheatLayoutSingManager.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/WheatLayoutSingManager.java
index e082ed1..1fa87d1 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/WheatLayoutSingManager.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/WheatLayoutSingManager.java
@@ -8,6 +8,7 @@ import android.widget.LinearLayout;
import androidx.annotation.Nullable;
+import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.R;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.room.RoomPitBean;
@@ -36,6 +37,8 @@ public class WheatLayoutSingManager {
void onMakeWheatClick(RoomSingSongWheatView view, int pitNumber);
+ void onMeilingClick(RoomSingSongWheatView view, int pitNumber);
+
}
private @Nullable OnWheatClickListener wheatClickListener;
@@ -101,14 +104,28 @@ public class WheatLayoutSingManager {
params.setMargins(20, 20, 20, 20);
singleWheatView.setLayoutParams(params);
- // 添加点击事件
- singleWheatView.setOnClickListener(v -> {
+ GifAvatarOvalView avatarView = (GifAvatarOvalView) singleWheatView.mRiv;
+ avatarView.setOnClickListener(v -> {
if (wheatClickListener != null) {
wheatClickListener.onWheatClick(singleWheatView, pitNumber);
}
restoreMultiWheat();
});
+ WheatCharmView charmView = singleWheatView.mCharmView;
+ charmView.setOnClickListener(v -> {
+ if (wheatClickListener != null) {
+ wheatClickListener.onMeilingClick(singleWheatView, Integer.parseInt(singleWheatView.pitNumber));
+ }
+ });
+// // 添加点击事件
+ singleWheatView.setOnClickListener(v -> {
+ if (wheatClickListener != null) {
+ wheatClickListener.onMakeWheatClick(singleWheatView, pitNumber);
+ }
+ restoreMultiWheat();
+ });
+
container.addView(singleWheatView);
isSingleMode = true;
currentSinglePit = pitNumber;
@@ -168,9 +185,26 @@ public class WheatLayoutSingManager {
}
wheatView.setLayoutParams(params);
+
+
+ GifAvatarOvalView avatarView = (GifAvatarOvalView) wheatView.mRiv;
+ avatarView.setOnClickListener(v -> {
+ if (wheatClickListener != null) {
+ wheatClickListener.onWheatClick(wheatView, pitNumber);
+ }
+ });
+
+ WheatCharmView charmView = wheatView.mCharmView;
+ charmView.setOnClickListener(v -> {
+ if (wheatClickListener != null) {
+ ToastUtils.show("点击了麦位");
+ wheatClickListener.onMeilingClick(wheatView, pitNumber);
+ }
+ });
+
wheatView.setOnClickListener(v -> {
if (wheatClickListener != null) {
- wheatClickListener.onWheatClick(wheatView, Integer.parseInt(wheatView.pitNumber));
+ wheatClickListener.onMeilingClick(wheatView, Integer.parseInt(wheatView.pitNumber));
}
});
diff --git a/moduleUtil/src/main/res/layout/room_view_ktv_wheat.xml b/moduleUtil/src/main/res/layout/room_view_ktv_wheat.xml
index 7dda84b..315eb14 100644
--- a/moduleUtil/src/main/res/layout/room_view_ktv_wheat.xml
+++ b/moduleUtil/src/main/res/layout/room_view_ktv_wheat.xml
@@ -27,6 +27,13 @@
+
+
+
+
+
+
+
+ app:layout_constraintHeight_percent="0.52" />
+
+
-
-
-
-
list);
- void setLikeZone();
+ void setLikeZone(int type);
void setCircleDetail(CircleListBean bean);
diff --git a/modulecircle/src/main/java/com/example/modulecircle/fragment/CircleCategoryFragment.java b/modulecircle/src/main/java/com/example/modulecircle/fragment/CircleCategoryFragment.java
index 1f141d9..1f53d1b 100644
--- a/modulecircle/src/main/java/com/example/modulecircle/fragment/CircleCategoryFragment.java
+++ b/modulecircle/src/main/java/com/example/modulecircle/fragment/CircleCategoryFragment.java
@@ -240,7 +240,7 @@ public class CircleCategoryFragment extends BaseMvpFragment implemen
@Override
public void onNext(String s) {
- MvpRef.get().setLikeZone();
+ MvpRef.get().setLikeZone(2);
}
});
}
@@ -146,7 +146,7 @@ public class CirclePresenter extends BasePresenter implemen
@Override
public void onNext(String s) {
- MvpRef.get().setLikeZone();
+ MvpRef.get().setLikeZone(1);
}
});
}
diff --git a/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.java b/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.java
index d6af001..ff6a4d7 100644
--- a/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.java
+++ b/moduleroom/src/main/java/com/example/moduleroom/activity/RoomActivity.java
@@ -21,6 +21,7 @@ import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Looper;
+import android.os.StrictMode;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
@@ -57,6 +58,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
+import com.blankj.utilcode.BuildConfig;
import com.blankj.utilcode.util.GsonUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ThreadUtils;
@@ -213,7 +215,7 @@ public class RoomActivity extends BaseMvpActivity sActivityRef;
// 存储当前显示的弹框引用
private List activeDialogs = new ArrayList<>();
@@ -227,6 +229,7 @@ public class RoomActivity extends BaseMvpActivity= viewX && x <= viewX + viewWidth &&
+// y >= viewY && y <= viewY + viewHeight) {
+// // 将事件传递给该视图
+// return negativeMarginView.dispatchTouchEvent(ev);
+// }
+// }
+// }
+//
+// return super.dispatchTouchEvent(ev);
+// }
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
@@ -263,7 +297,7 @@ public class RoomActivity extends BaseMvpActivity {
// 使用Handler确保在主线程中调用
- new android.os.Handler(Looper.getMainLooper()).post(() -> {
- MvpPre.getRoomIn(roomId, password);
- MvpPre.getRoomOnline(roomId, "1", "10");
- });
+ MvpPre.getRoomIn(roomId, password);
+ MvpPre.getRoomOnline(roomId, "1", "10");
});
}
@@ -470,7 +512,7 @@ public class RoomActivity extends BaseMvpActivity() {
+ if (giftGiveEvent.auction_id != null && !giftGiveEvent.auction_id.isEmpty()) {
+ RetrofitClient.getInstance().roomAuctionJoin(giftGiveEvent.getAuction_id(), giftGiveEvent.getUserId(), giftGiveEvent.getRoonGiftModel().getGift_id(), giftGiveEvent.getNum(), "1", new BaseObserver() {
@Override
public void onSubscribe(Disposable d) {
// showGiftGiveProgress();
@@ -496,6 +538,7 @@ public class RoomActivity extends BaseMvpActivity() {
@Override
@@ -844,8 +887,20 @@ public class RoomActivity extends BaseMvpActivity pitList = mRoomInfoResp.getRoom_info().getPit_list();
if (pitList != null && !pitList.isEmpty()) {
try {
@@ -1376,11 +1433,15 @@ public class RoomActivity extends BaseMvpActivity {
if (!isFinishing() && !isDestroyed()) {
if (!pendingRoomId.equals(lastSwitchedRoomId)) {
+
MvpPre.quitRoom2(messageEvent.getRoomId(), SpUtil.getUserId() + "");
+ quit();
+ MessageListenerSingleton.reset(messageEvent.getRoomId());
+ MessageListenerSingleton.getInstance().joinGroup(pendingRoomId);
MvpPre.getRoomIn(pendingRoomId, "");
lastSwitchedRoomId = pendingRoomId;
AgoraManager.getInstance(context).setLastRoomId(messageEvent.getRoomId());
@@ -1423,6 +1484,7 @@ public class RoomActivity extends BaseMvpActivity {
@@ -51,5 +52,7 @@ public class RoomUserContacts {
void topRelationCard(String id);
void deleteRelationCard(String id);
+
+ void clearUserCharm(String roomId,String userId);
}
}
diff --git a/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomGiftDialogFragment.java b/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomGiftDialogFragment.java
index 762780d..a276590 100644
--- a/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomGiftDialogFragment.java
+++ b/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomGiftDialogFragment.java
@@ -51,6 +51,7 @@ import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.bean.room.RoomPitBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.dialog.RechargeDialogFragment;
+import com.xscm.moduleutil.dialog.WebViewDialog;
import com.xscm.moduleutil.dialog.giftLottery.GiftLotteryDialog;
import com.xscm.moduleutil.event.GiftDoubleClickEvent;
import com.xscm.moduleutil.event.GiftUserRefreshEvent;
@@ -305,7 +306,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment {
+ if (ClickUtils.isFastDoubleClick()) {
+ return;
+ }
+ if (mBinding.ivAuction1.getUserId() != null && !mBinding.ivAuction1.getUserId().equals("")) {
+ RoomUserInfoFragment.show(roomInfoResp.getRoom_info().getRoom_id(), mBinding.ivAuction1.getUserId(), mBinding.ivAuction1.pitNumber, getHostUser(), false, 1, 0, getChildFragmentManager());
+ }
+ });
+
+ mBinding.ivAuction1.setmOnCharmClickListener(new RoomMakeWheatView.onCharmClickListener() {
+
+ @Override
+ public void onCharmClick(RoomMakeWheatView view, RoomPitBean pitBean) {
+ if (ClickUtils.isFastDoubleClick()) {
+ return;
+ }
+ if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
+ RoomCharmDialog.newInstance(roomInfoResp.getRoom_info().getRoom_id(), pitBean.getUser_id()).show(getChildFragmentManager(), "RoomCharmDialog");
+ }
+ }
+ });
+
+ mBinding.ivAuction2.setOnClickListener(view -> {
+ if (ClickUtils.isFastDoubleClick()) {
+ return;
+ }
+ if (mBinding.ivAuction2.getUserId() != null && !mBinding.ivAuction2.getUserId().equals("")) {
+ RoomUserInfoFragment.show(roomInfoResp.getRoom_info().getRoom_id(), mBinding.ivAuction2.getUserId(), mBinding.ivAuction2.pitNumber, getHostUser(), false, 1, 0, getChildFragmentManager());
+ }
+ });
+ mBinding.ivAuction2.setmOnCharmClickListener(new RoomMakeWheatView.onCharmClickListener() {
+
+ @Override
+ public void onCharmClick(RoomMakeWheatView view, RoomPitBean pitBean) {
+ if (ClickUtils.isFastDoubleClick()) {
+ return;
+ }
+ if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
+ RoomCharmDialog.newInstance(roomInfoResp.getRoom_info().getRoom_id(), pitBean.getUser_id()).show(getChildFragmentManager(), "RoomCharmDialog");
+ }
+ }
+ });
+ mBinding.ivAuction3.setOnClickListener(view -> {
+ if (ClickUtils.isFastDoubleClick()) {
+ return;
+ }
+ if (mBinding.ivAuction3.getUserId() != null && !mBinding.ivAuction3.getUserId().equals("")) {
+ RoomUserInfoFragment.show(roomInfoResp.getRoom_info().getRoom_id(), mBinding.ivAuction3.getUserId(), mBinding.ivAuction3.pitNumber, getHostUser(), false, 1, 0, getChildFragmentManager());
+ }
+ });
+ mBinding.ivAuction3.setmOnCharmClickListener(new RoomMakeWheatView.onCharmClickListener() {
+
+ @Override
+ public void onCharmClick(RoomMakeWheatView view, RoomPitBean pitBean) {
+ if (ClickUtils.isFastDoubleClick()) {
+ return;
+ }
+ if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
+ RoomCharmDialog.newInstance(roomInfoResp.getRoom_info().getRoom_id(), pitBean.getUser_id()).show(getChildFragmentManager(), "RoomCharmDialog");
+ }
+ }
+ });
}
private void onChock(View view) {
+ if (ClickUtils.isFastDoubleClick()) {
+ return;
+ }
int id = view.getId();
if (id == R.id.iv_jp) {
// 添加多层空值检查
@@ -339,7 +408,7 @@ public class RoomAuctionFragment extends BaseMvpFragment 5) {
RoomUserInfoFragment.show(roomInfoResp.getRoom_info().getRoom_id(), auctionList.get(5).getUser_id(), "", getHostUser(), false, 1, 0, getChildFragmentManager());
}
+ } else if (id == R.id.tv_p_b) {
+ if (wheatView2.pitBean.getUser_id() == null || wheatView2.pitBean.getUser_id().equals("") || wheatView2.pitBean.getUser_id().equals("0")) {
+ return;
+ }
+ RoomCharmDialog.newInstance(roomInfoResp.getRoom_info().getRoom_id(), wheatView2.pitBean.getUser_id()).show(getChildFragmentManager(), "RoomCharmDialog");
}
}
@@ -861,6 +937,42 @@ public class RoomAuctionFragment extends BaseMvpFragment pitArr){
+ public void upFriendList(List pitArr) {
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
if (friendshipRoomFragment != null) {
friendshipRoomFragment.upFriendList();
@@ -477,8 +477,10 @@ public class RoomFragment extends BaseMvpFragment {
+// View muZc = view.findViewById(R.id.mu_zc);
+// ViewGroup parent = (ViewGroup) muZc.getParent();
+//
+// Rect bounds = new Rect();
+// muZc.getHitRect(bounds);
+// // 扩展点击区域
+// bounds.top -=55;
+// bounds.bottom += 50;
+// bounds.left -= 30;
+// bounds.right += 30;
+//
+// parent.setTouchDelegate(new TouchDelegate(bounds, muZc));
+// });
+ }
+
+ public View getNegativeMarginView() {
+ return mBinding.muZc;
+ }
public void upRoomInfo(RoomInfoResp roomInfoResp) {
this.roomInfoResp = roomInfoResp;
}
@@ -145,6 +175,7 @@ public class RoomKtvFragment extends BaseMvpFragment {
+// // 转发点击事件给实际的 mu_zc 视图
+// muZc.performClick();
+// });
+
}
private int isNumberWhether() {
@@ -571,6 +670,7 @@ public class RoomKtvFragment extends BaseMvpFragment0){
+ if (roomInfoResp.getUser_info().getPit_number() > 0) {
- }else {
+ } else {
// if (mBinding.muZc.pitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
// ((RoomActivity) getActivity()).setRoleType(2, -1);
// ((RoomActivity) getActivity()).switchMic(2);
// } else {
- ((RoomActivity) getActivity()).setRoleType(0, 0);
- ((RoomActivity) getActivity()).switchMic(2);
+ ((RoomActivity) getActivity()).setRoleType(0, 0);
+ ((RoomActivity) getActivity()).switchMic(2);
// }
@@ -660,7 +760,7 @@ public class RoomKtvFragment extends BaseMvpFragment pitList = new ArrayList<>();
@@ -1260,6 +1272,25 @@ public class SingSongFragment extends BaseRoomFragment implements R
if (resp.getUser_info().getPit_number()!=0){
enableJs=true;
}
-
+ LogUtils.e("token",token);
+ LogUtils.e("roomId:",roomId);
// 初始化 Agora 并加入房间
AgoraManager.getInstance(getView().getSelfActivity())
.joinRoom(token, roomId, uid, enableMic,enableJs);
diff --git a/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomUserPresenter.java b/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomUserPresenter.java
index 23e5795..fca3337 100644
--- a/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomUserPresenter.java
+++ b/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomUserPresenter.java
@@ -172,6 +172,25 @@ public class RoomUserPresenter extends BasePresenter impl
});
}
+ @Override
+ public void clearUserCharm(String roomId, String userId) {
+ api.clearUserCharm(roomId, userId, new BaseObserver() {
+
+ @Override
+ public void onSubscribe(Disposable d) {
+ addDisposable(d);
+ }
+
+ @Override
+ public void onNext(String s) {
+ if (MvpRef==null){
+ MvpRef=new WeakReference<>(mView);
+ }
+ MvpRef.get().clearUserCharm();
+ }
+ });
+ }
+
@Override
public void kickOutRoom(String roomId, String userId) {
if (api==null){
diff --git a/moduleroom/src/main/res/layout/fragment_room_ktv.xml b/moduleroom/src/main/res/layout/fragment_room_ktv.xml
index 278955d..857c73d 100644
--- a/moduleroom/src/main/res/layout/fragment_room_ktv.xml
+++ b/moduleroom/src/main/res/layout/fragment_room_ktv.xml
@@ -13,7 +13,8 @@
android:layout_height="@dimen/dp_277"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_13"
- android:layout_marginEnd="@dimen/dp_16">
+ android:layout_marginEnd="@dimen/dp_16"
+ android:clipChildren="false">
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+ app:layout_constraintTop_toTopOf="parent"
+ app:room_wheat_number="9" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app:layout_constraintTop_toBottomOf="@+id/mu_jb" />
diff --git a/moduleroom/src/main/res/layout/room_gift_dialog.xml b/moduleroom/src/main/res/layout/room_gift_dialog.xml
index 76019c7..074e111 100644
--- a/moduleroom/src/main/res/layout/room_gift_dialog.xml
+++ b/moduleroom/src/main/res/layout/room_gift_dialog.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_2"
android:layout_marginEnd="@dimen/dp_2"
- android:layout_marginBottom="@dimen/dp_12"
+ android:layout_marginBottom="@dimen/dp_5"
android:background="@mipmap/gift_mh"
android:layout_above="@+id/cl"
android:orientation="vertical"
diff --git a/moduleroom/src/main/res/layout/room_top.xml b/moduleroom/src/main/res/layout/room_top.xml
index 1a6146b..91568b2 100644
--- a/moduleroom/src/main/res/layout/room_top.xml
+++ b/moduleroom/src/main/res/layout/room_top.xml
@@ -229,7 +229,7 @@
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/rl"
- android:layout_marginTop="@dimen/dp_50"
+ android:layout_marginTop="@dimen/dp_40"
android:background="@android:color/transparent"
android:layout="@layout/top_overlay_buttons"
android:visibility="gone"
diff --git a/modulevocal/src/main/java/com/example/modulevocal/activity/SettingActivity.java b/modulevocal/src/main/java/com/example/modulevocal/activity/SettingActivity.java
index ba90551..7d035e5 100644
--- a/modulevocal/src/main/java/com/example/modulevocal/activity/SettingActivity.java
+++ b/modulevocal/src/main/java/com/example/modulevocal/activity/SettingActivity.java
@@ -115,8 +115,15 @@ public class SettingActivity extends BaseMvpActivity