1:修改时间选择框,根据需要,展示时分秒和不显示时分秒
2:修改展示设备id,在头部信息中,使用第三方的获取设备唯一id 3:优化群聊成员列表展示 4:修改房间封面,上传图片的时候,需要裁剪 5:添加营业时间展示 6:pk修改开始的时候,选择时间去掉1分钟 7:修改声网,添加声卡开关
This commit is contained in:
@@ -2,12 +2,16 @@ package com.xscm.modulemain.activity
|
||||
|
||||
import android.content.Intent
|
||||
import android.view.View
|
||||
import android.widget.CompoundButton
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.blankj.utilcode.util.LogUtils
|
||||
import com.blankj.utilcode.util.ToastUtils
|
||||
import com.tencent.imsdk.v2.V2TIMCallback
|
||||
import com.tencent.imsdk.v2.V2TIMConversation
|
||||
import com.tencent.imsdk.v2.V2TIMGroupInfoResult
|
||||
import com.tencent.imsdk.v2.V2TIMGroupManager
|
||||
import com.tencent.imsdk.v2.V2TIMManager
|
||||
import com.tencent.imsdk.v2.V2TIMMessage
|
||||
import com.tencent.imsdk.v2.V2TIMValueCallback
|
||||
import com.xscm.modulemain.BaseMvpActivity
|
||||
import com.xscm.modulemain.R
|
||||
import com.xscm.modulemain.activity.msg.NewsContacts
|
||||
@@ -19,6 +23,7 @@ import com.xscm.moduleutil.bean.GroupUserListBean
|
||||
import com.xscm.moduleutil.bean.NewsMessageList
|
||||
import com.xscm.moduleutil.utils.ImageUtils
|
||||
|
||||
|
||||
/**
|
||||
* @Author
|
||||
* @Time 2026/1/2 14:57
|
||||
@@ -31,7 +36,7 @@ class GroupChatSettingsActivity :
|
||||
var groupAdapter: GroupAdapter? = GroupAdapter()
|
||||
val v2TIMGroupManager: V2TIMGroupManager?= V2TIMManager.getGroupManager()
|
||||
var groupId: String = ""
|
||||
var isOwner : Boolean = false
|
||||
var isOwner : Int = 0
|
||||
|
||||
var groupBean : GroupBean= GroupBean()
|
||||
|
||||
@@ -88,6 +93,45 @@ class GroupChatSettingsActivity :
|
||||
})
|
||||
}
|
||||
|
||||
mBinding?.switDoNotDisturb?.setOnCheckedChangeListener { compoundButton, b ->
|
||||
V2TIMManager.getMessageManager().setGroupReceiveMessageOpt(
|
||||
groupId,
|
||||
if (b) V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE else V2TIMMessage.V2TIM_RECEIVE_MESSAGE,
|
||||
object : V2TIMCallback {
|
||||
override fun onSuccess() {
|
||||
// 修改群消息接收选项成功
|
||||
ToastUtils.showLong(if (b) "已开启消息免打扰" else "已关闭消息免打扰")
|
||||
}
|
||||
|
||||
override fun onError(code: Int, desc: String?) {
|
||||
// 修改群消息接收选项失败
|
||||
ToastUtils.showLong("免打扰功能开启失败",code,desc)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
val groupIDs: MutableList<String?> = ArrayList<String?>()
|
||||
groupIDs.add(groupId)
|
||||
V2TIMManager.getGroupManager().getGroupsInfo(
|
||||
groupIDs,
|
||||
object : V2TIMValueCallback<MutableList<V2TIMGroupInfoResult?>?> {
|
||||
|
||||
override fun onSuccess(t: MutableList<V2TIMGroupInfoResult?>?) {
|
||||
|
||||
if (t != null && !t.isEmpty()) {
|
||||
val result = t[0]
|
||||
if (result?.resultCode == 0) {
|
||||
val groupInfo = result.groupInfo
|
||||
mBinding?.switDoNotDisturb?.isChecked = groupInfo.recvOpt == V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError(code: Int, desc: String?) {
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
@@ -111,18 +155,18 @@ class GroupChatSettingsActivity :
|
||||
this.groupBean=groupBean
|
||||
mBinding?.groupName?.text = groupBean.name
|
||||
ImageUtils.loadHead(groupBean.guild_cover, mBinding?.imGroup)
|
||||
if (groupBean.is_deacon == 1) {
|
||||
isOwner=true
|
||||
if (groupBean.is_deacon == 1 || groupBean.is_deacon == 2) {
|
||||
mBinding?.llGroup?.visibility = View.VISIBLE
|
||||
mBinding?.switJy?.isChecked = groupBean.mute_all_member == 1
|
||||
mBinding?.etG?.isEnabled = true
|
||||
mBinding?.evGroupName?.isEnabled = true
|
||||
} else {
|
||||
isOwner=false
|
||||
}
|
||||
else {
|
||||
mBinding?.llGroup?.visibility = View.GONE
|
||||
mBinding?.etG?.isEnabled = false
|
||||
mBinding?.evGroupName?.isEnabled = false
|
||||
}
|
||||
isOwner=groupBean.is_deacon
|
||||
mBinding?.etG?.text?.append(groupBean.notification)
|
||||
mBinding?.evGroupName?.text?.append(groupBean.name)
|
||||
|
||||
@@ -143,4 +187,5 @@ class GroupChatSettingsActivity :
|
||||
super.doDone()
|
||||
groupId = intent.getStringExtra("groupId").toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,12 +5,14 @@ import android.view.ViewGroup
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.blankj.utilcode.util.LogUtils
|
||||
import com.blankj.utilcode.util.ToastUtils
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener
|
||||
import com.tencent.imsdk.v2.V2TIMCallback
|
||||
import com.tencent.imsdk.v2.V2TIMGroupManager
|
||||
import com.tencent.imsdk.v2.V2TIMGroupMemberFullInfo
|
||||
import com.tencent.imsdk.v2.V2TIMManager
|
||||
import com.xscm.modulemain.BaseMvpActivity
|
||||
import com.xscm.modulemain.R
|
||||
@@ -37,7 +39,7 @@ class GroupUserListActivity : BaseMvpActivity<NewsPresenter, ActivityGroupUserLi
|
||||
val v2TIMGroupManager: V2TIMGroupManager? = V2TIMManager.getGroupManager()
|
||||
|
||||
var groupId: String? = null
|
||||
var isOwner: Boolean = false
|
||||
var isOwner: Int = 0
|
||||
var page: Int = 1
|
||||
var search: String = ""
|
||||
var groupUserBean: List<GroupBean.GroupUserBean> = ArrayList()
|
||||
@@ -50,7 +52,7 @@ class GroupUserListActivity : BaseMvpActivity<NewsPresenter, ActivityGroupUserLi
|
||||
override fun doDone() {
|
||||
super.doDone()
|
||||
groupId = intent.getStringExtra("groupId").toString()
|
||||
isOwner = intent.getBooleanExtra("isOwner", false)
|
||||
isOwner = intent.getIntExtra("isOwner", 0)
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
@@ -76,16 +78,46 @@ class GroupUserListActivity : BaseMvpActivity<NewsPresenter, ActivityGroupUserLi
|
||||
item?.is_mute = 1
|
||||
}
|
||||
groupUserListAdapter.notifyDataSetChanged()
|
||||
ToastUtils.showLong("操作成功")
|
||||
}
|
||||
|
||||
override fun onError(code: Int, desc: String?) {
|
||||
ToastUtils.showLong(desc)
|
||||
LogUtils.e("禁言失败:$code $desc")
|
||||
}
|
||||
})
|
||||
} else {
|
||||
onCommentLongClick(item)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onItemGroupMemberClick(
|
||||
item: GroupBean.GroupUserBean?,
|
||||
b: Boolean
|
||||
) {
|
||||
if (item?.group_role == 4){
|
||||
ToastUtils.showLong("当前用户数据错误,请联系管理员")
|
||||
return
|
||||
}
|
||||
v2TIMGroupManager?.setGroupMemberRole(
|
||||
groupId,
|
||||
"u" + item?.user_id.toString(),
|
||||
if (b) V2TIMGroupMemberFullInfo.V2TIM_GROUP_MEMBER_ROLE_MEMBER else V2TIMGroupMemberFullInfo.V2TIM_GROUP_MEMBER_ROLE_ADMIN,
|
||||
object : V2TIMCallback {
|
||||
override fun onSuccess() {
|
||||
if (b) {
|
||||
item?.group_role = 2 //管理员
|
||||
} else {
|
||||
item?.group_role = 3 //普通成员
|
||||
}
|
||||
groupUserListAdapter.notifyDataSetChanged()
|
||||
LogUtils.e("群成员设置角色成功")
|
||||
}
|
||||
|
||||
override fun onError(code: Int, desc: String?) {
|
||||
LogUtils.e("群成员设置角色失败:$code $desc")
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
mBinding.tvCancel.setOnClickListener { view ->
|
||||
@@ -107,7 +139,7 @@ class GroupUserListActivity : BaseMvpActivity<NewsPresenter, ActivityGroupUserLi
|
||||
}
|
||||
})
|
||||
|
||||
if (isOwner) {
|
||||
if (isOwner == 1 || isOwner == 2) {
|
||||
mBinding.llSearch.visibility = View.VISIBLE
|
||||
} else {
|
||||
mBinding.llSearch.visibility = View.GONE
|
||||
@@ -218,10 +250,11 @@ class GroupUserListActivity : BaseMvpActivity<NewsPresenter, ActivityGroupUserLi
|
||||
item?.is_mute = 1
|
||||
}
|
||||
groupUserListAdapter.notifyDataSetChanged()
|
||||
ToastUtils.showLong("操作成功")
|
||||
}
|
||||
|
||||
override fun onError(code: Int, desc: String?) {
|
||||
ToastUtils.showLong(desc)
|
||||
LogUtils.e("muteGroupMember", "muteGroupMember code=$code desc=$desc")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -631,7 +631,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
mBinding!!.roomTop.root.isClickable = false
|
||||
setView(mRoomInfoResp)
|
||||
|
||||
MvpPre?.getRoomOnline(roomId, "1", "10")
|
||||
// MvpPre?.getRoomOnline(roomId, "1", "10")
|
||||
}
|
||||
|
||||
private var bgEffectView: View? = null
|
||||
@@ -3076,6 +3076,21 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
AgoraManager.getInstance().muteLocalAudioStream(false)
|
||||
AgoraManager.getInstance().ClientRole(true)
|
||||
CommonAppContext.getInstance().isMai = true
|
||||
var userId : String =""
|
||||
mRoomInfoResp?.room_info?.pit_list?.size?.let {
|
||||
if (it < 9) {
|
||||
return
|
||||
}
|
||||
userId = mRoomInfoResp?.room_info?.pit_list!![8].user_id
|
||||
}
|
||||
// 方案1:使用安全调用和let操作符
|
||||
mRoomInfoResp?.pk_info?.close_users?.let { users ->
|
||||
if (users.contains(userId)) {
|
||||
AgoraManagerEx.getInstance().muteLocalAudioStreamEx(true)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
mBinding!!.ivMic.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone_off)
|
||||
AgoraManager.getInstance()
|
||||
|
||||
@@ -29,5 +29,7 @@ public class RoomSettingContacts {
|
||||
void agreeSong(String roomId, String type);
|
||||
|
||||
void blindBoxStatus();
|
||||
|
||||
void setRoomBusinessTime(String roomId,String startTime,String endTime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@ public class SingSongContacts {
|
||||
void userOnlineStatus(List<UserOnlineStatusBean> list);
|
||||
|
||||
void postAgora(PkSwTokenBean pkSwTokenBean);
|
||||
|
||||
void closePkMic();
|
||||
}
|
||||
|
||||
public interface IEmotionRoomPre extends IPresenter {
|
||||
@@ -39,5 +41,7 @@ public class SingSongContacts {
|
||||
void endPk(String pk_id,String type,String user_id);
|
||||
void userOnlineStatus(String userId, String roomid);
|
||||
|
||||
void closePkMic(String pk_id,String type,String user_id);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,12 +281,12 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
||||
}
|
||||
}
|
||||
|
||||
if (userIds.length() > 0 && roomId != null) {
|
||||
if (MvpPre == null) {
|
||||
MvpPre = new FriendshipRoomPresenter(this, getActivity());
|
||||
}
|
||||
MvpPre.userOnlineStatus(userIds.toString(), roomId);
|
||||
}
|
||||
// if (userIds.length() > 0 && roomId != null) {
|
||||
// if (MvpPre == null) {
|
||||
// MvpPre = new FriendshipRoomPresenter(this, getActivity());
|
||||
// }
|
||||
// MvpPre.userOnlineStatus(userIds.toString(), roomId);
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -286,9 +286,9 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
|
||||
userIds.append(auctionUserBean.getUser_id());
|
||||
}
|
||||
|
||||
if (userIds.length() > 0 && roomInfoResp.getRoom_info().getRoom_id() != null) {
|
||||
MvpPre.userOnlineStatus(userIds.toString(), roomInfoResp.getRoom_info().getRoom_id());
|
||||
}
|
||||
// if (userIds.length() > 0 && roomInfoResp.getRoom_info().getRoom_id() != null) {
|
||||
// MvpPre.userOnlineStatus(userIds.toString(), roomInfoResp.getRoom_info().getRoom_id());
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -267,9 +267,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
userIds.append(roomPitBean.getUser_id());
|
||||
}
|
||||
|
||||
if (userIds.length() > 0 && roomInfoResp.getRoom_info().getRoom_id() != null) {
|
||||
MvpPre.userOnlineStatus(userIds.toString(), roomInfoResp.getRoom_info().getRoom_id());
|
||||
}
|
||||
// if (userIds.length() > 0 && roomInfoResp.getRoom_info().getRoom_id() != null) {
|
||||
// MvpPre.userOnlineStatus(userIds.toString(), roomInfoResp.getRoom_info().getRoom_id());
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -191,6 +191,7 @@ class RoomMentorShipFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
|
||||
if (mRoomInfoResp?.sign_info?.sign_id != "-1") {
|
||||
mSignId = mRoomInfoResp?.sign_info?.sign_id
|
||||
LogUtils.e("初始的时候,mSignId = $mSignId")
|
||||
if (mRoomInfoResp?.sign_info?.sign_status == 1) {
|
||||
startTimer(mRoomInfoResp?.sign_info?.end_time!!)
|
||||
if (mUserInfo?.user_id?.toString().equals(mSignPitBean?.user_id)) {
|
||||
@@ -396,6 +397,7 @@ class RoomMentorShipFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
mBinding.ivApplyForMai.isClickable = true
|
||||
|
||||
mSignId = messageEvent?.text?.sign_id
|
||||
LogUtils.e("场次开始的时候,mSignId = $mSignId")
|
||||
val endTime = messageEvent?.text?.end_time
|
||||
val signDay = messageEvent?.text?.sign_day
|
||||
val currBodyValue = messageEvent?.text?.current_body_value
|
||||
@@ -423,6 +425,7 @@ class RoomMentorShipFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
fun event1091(messageEvent: RoomMessageEvent?) {
|
||||
val fromUserInfo = messageEvent?.text?.fromUserInfo
|
||||
val signId = messageEvent?.text?.sign_id
|
||||
LogUtils.e("出价后的场次,mSignId = $mSignId")
|
||||
if (fromUserInfo != null && mSignId == signId) {
|
||||
val pitBean = RoomPitBean()
|
||||
pitBean.pit_number = indexList[2]
|
||||
|
||||
@@ -129,7 +129,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
this.roomInfoResp = roomInfoResp;
|
||||
}
|
||||
|
||||
public void upRoomInfo(RoomInfoResp roomInfoResp){
|
||||
public void upRoomInfo(RoomInfoResp roomInfoResp) {
|
||||
this.roomInfoResp = roomInfoResp;
|
||||
upDataView();
|
||||
}
|
||||
@@ -158,7 +158,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
|
||||
@Override
|
||||
public void onMeilingClick(@NonNull RoomSingSongWheatView view, int pitNumber) {
|
||||
if (ClickUtils.isFastDoubleClick(view)){
|
||||
if (ClickUtils.isFastDoubleClick(view)) {
|
||||
return;
|
||||
}
|
||||
if (view.pitBean != null && !view.pitBean.getUser_id().isEmpty() && !view.pitBean.getUser_id().equals("0")) {
|
||||
@@ -174,7 +174,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
@Override
|
||||
public void onWheatClick(@NonNull RoomSingSongWheatView view, int pitNumber1) {
|
||||
|
||||
if (ClickUtils.isFastDoubleClick(view)){
|
||||
if (ClickUtils.isFastDoubleClick(view)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -188,16 +188,16 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
pitNumber = pitBean.getPit_number();
|
||||
roomPitBean = pitBean;
|
||||
// showPopupMenu(view); // v 是点击的按钮视图
|
||||
if(getActivity() != null && getActivity() instanceof RoomActivity) {
|
||||
if (getActivity() != null && getActivity() instanceof RoomActivity) {
|
||||
((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
}
|
||||
} else if (pitNumber1 == 10) {
|
||||
if (getActivity() != null && getActivity() instanceof RoomActivity){
|
||||
if (getActivity() != null && ((RoomActivity) getActivity()).getHostUser() < 4){
|
||||
if (getActivity() != null && getActivity() instanceof RoomActivity) {
|
||||
if (getActivity() != null && ((RoomActivity) getActivity()).getHostUser() < 4) {
|
||||
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) {
|
||||
((RoomActivity)getActivity()).showUserListDialog(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
com.hjq.toast.ToastUtils.show("请等待主持抱麦");
|
||||
}
|
||||
}
|
||||
@@ -346,7 +346,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
|
||||
tvHugMic.setOnClickListener(v -> {
|
||||
// 处理抱麦逻辑
|
||||
if(getActivity() != null && getActivity() instanceof RoomActivity) {
|
||||
if (getActivity() != null && getActivity() instanceof RoomActivity) {
|
||||
((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
}
|
||||
popupWindow.dismiss();
|
||||
@@ -416,7 +416,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
if (MvpPre == null) {
|
||||
MvpPre = new SingSongPresenter(this, getContext());
|
||||
}
|
||||
MvpPre.userOnlineStatus(userIds.toString(), roomId);
|
||||
// MvpPre.userOnlineStatus(userIds.toString(), roomId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -576,35 +576,8 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
} else {
|
||||
MvpPre.endPk(roomInfoRespPk.getPk_info().getPk_id(), "3", SpUtil.getUserId() + "");
|
||||
}
|
||||
} else if (id == R.id.im_mkf) {
|
||||
if (pkMicIsOn) {
|
||||
mBinding.imMkf.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone);
|
||||
is_mute = 0;
|
||||
pkMicIsOn = false;
|
||||
AgoraManagerEx.getInstance().muteAllRemoteAudioStreamsEx(false);
|
||||
} else {
|
||||
mBinding.imMkf.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone_off);
|
||||
is_mute = 1;
|
||||
pkMicIsOn = true;
|
||||
AgoraManagerEx.getInstance().muteAllRemoteAudioStreamsEx(true);
|
||||
}
|
||||
RoomMessageEvent.text text = new RoomMessageEvent.text();
|
||||
text.setIs_mute(is_mute);
|
||||
String s = com.blankj.utilcode.util.GsonUtils.toJson(text);
|
||||
RoomMessageEvent.T t = new RoomMessageEvent.T();
|
||||
t.setText(s);
|
||||
if (roomInfoRespPk != null && roomInfoRespPk.getPk_info() != null) {
|
||||
RoomMessageEvent roomMessageEvent = new RoomMessageEvent(125, roomInfoResp.getRoom_info().getRoom_id(), t);
|
||||
String json = com.blankj.utilcode.util.GsonUtils.toJson(roomMessageEvent);
|
||||
// 转换为 byte[]
|
||||
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
|
||||
// 创建自定义消息
|
||||
MessageListenerSingleton.getInstance().sendCustomC2CMessage125(
|
||||
roomInfoRespPk.getRoom_info().getPit_list().get(8).getUser_id(),
|
||||
binaryData
|
||||
);
|
||||
}
|
||||
|
||||
} else if (id == R.id.im_mkf) {//关闭、打开对方麦克风
|
||||
MvpPre.closePkMic(roomInfoRespPk.getPk_info().getPk_id(), pkMicIsOn ? "2" : "1", roomInfoRespPk.getRoom_info().getPit_list().get(8).getUser_id() + "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -693,6 +666,37 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
.joinChannelEx(pkSwTokenBean.getAgora_token(), roomInfoRespPk.getRoom_info().getRoom_id(), pkUserId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closePkMic() {
|
||||
if (pkMicIsOn) {
|
||||
mBinding.imMkf.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone);
|
||||
is_mute = 0;
|
||||
pkMicIsOn = false;
|
||||
AgoraManagerEx.getInstance().muteAllRemoteAudioStreamsEx(false);
|
||||
} else {
|
||||
mBinding.imMkf.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone_off);
|
||||
is_mute = 1;
|
||||
pkMicIsOn = true;
|
||||
AgoraManagerEx.getInstance().muteAllRemoteAudioStreamsEx(true);
|
||||
}
|
||||
RoomMessageEvent.text text = new RoomMessageEvent.text();
|
||||
text.setIs_mute(is_mute);
|
||||
String s = com.blankj.utilcode.util.GsonUtils.toJson(text);
|
||||
RoomMessageEvent.T t = new RoomMessageEvent.T();
|
||||
t.setText(s);
|
||||
if (roomInfoRespPk != null && roomInfoRespPk.getPk_info() != null) {
|
||||
RoomMessageEvent roomMessageEvent = new RoomMessageEvent(125, roomInfoResp.getRoom_info().getRoom_id(), t);
|
||||
String json = com.blankj.utilcode.util.GsonUtils.toJson(roomMessageEvent);
|
||||
// 转换为 byte[]
|
||||
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
|
||||
// 创建自定义消息
|
||||
MessageListenerSingleton.getInstance().sendCustomC2CMessage125(
|
||||
roomInfoRespPk.getRoom_info().getPit_list().get(8).getUser_id(),
|
||||
binaryData
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private void pkView() {
|
||||
flexboxLayout.setVisibility(View.GONE);
|
||||
mBinding.cl.setVisibility(VISIBLE);
|
||||
@@ -720,7 +724,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
pitNumber = pitBean.getPit_number();
|
||||
roomPitBean = pitBean;
|
||||
// showPopupMenu(view); // v 是点击的按钮视图
|
||||
if(getActivity() != null && getActivity() instanceof RoomActivity) {
|
||||
if (getActivity() != null && getActivity() instanceof RoomActivity) {
|
||||
((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
}
|
||||
} else if (pitNumber1 == 10) {
|
||||
@@ -763,6 +767,22 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
mBinding.imMkf.setVisibility(GONE);
|
||||
} else {
|
||||
mBinding.imMkf.setVisibility(VISIBLE);
|
||||
if (roomInfoResp.getPk_info()!=null && roomInfoResp.getPk_info().getClose_users()!=null) {
|
||||
if (roomInfoResp.getPk_info().getClose_users().contains(roomInfoResp.getRoom_info().getPit_list().get(8).getUser_id())) {
|
||||
is_mute = 1;
|
||||
pkMicIsOn = true;
|
||||
AgoraManagerEx.getInstance().muteAllRemoteAudioStreamsEx(true);
|
||||
} else {
|
||||
is_mute = 0;
|
||||
pkMicIsOn = false;
|
||||
AgoraManagerEx.getInstance().muteAllRemoteAudioStreamsEx(false);
|
||||
}
|
||||
if (roomInfoResp.getPk_info().getClose_users().contains(roomInfoRespPk.getRoom_info().getPit_list().get(8).getUser_id())) {
|
||||
mBinding.imMkf.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone_off);
|
||||
} else {
|
||||
mBinding.imMkf.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
FlexboxLayout flexboxLayout2 = mBinding.flexboxLayout2;
|
||||
@@ -794,7 +814,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
pitNumber = pitBean.getPit_number();
|
||||
roomPitBean = pitBean;
|
||||
// showPopupMenu(view); // v 是点击的按钮视图
|
||||
if(getActivity() != null && getActivity() instanceof RoomActivity) {
|
||||
if (getActivity() != null && getActivity() instanceof RoomActivity) {
|
||||
((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
}
|
||||
} else if (pitNumber1 == 10) {
|
||||
@@ -926,7 +946,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
countDownTime(Long.parseLong(roomInfoRespPk.getPk_info().getPk_end_times() != null ? roomInfoRespPk.getPk_info().getPk_end_times() : "0"), 2);
|
||||
}
|
||||
|
||||
mBinding.imMkf.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone);
|
||||
// mBinding.imMkf.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone);
|
||||
|
||||
}
|
||||
|
||||
@@ -1028,13 +1048,13 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
|
||||
public void event1021(RoomMessageEvent message) {
|
||||
if (roomInfoRespPk != null && roomInfoRespPk.getPk_info() != null) {
|
||||
for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()){
|
||||
for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) {
|
||||
pitBean.setCharm("0");
|
||||
if (pitBean.getUser_id()!=null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
|
||||
if (pitBean.getUser_id() != null && !pitBean.getUser_id().isEmpty() && !pitBean.getUser_id().equals("0")) {
|
||||
wheatLayoutManager1.updateSingleCharm(pitBean, Integer.parseInt(pitBean.getPit_number()), 1);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
for (RoomPitBean pitBean : roomInfoResp.getRoom_info().getPit_list()) {
|
||||
pitBean.setCharm("0");
|
||||
wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(pitBean.getPit_number()));
|
||||
@@ -1104,13 +1124,13 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
|
||||
/// 推送的下麦1003
|
||||
public void event1003(RoomMessageEvent message) {
|
||||
int pitNumber = Integer.parseInt(message.getText().getPit_number()) ;
|
||||
RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(pitNumber- 1);
|
||||
int pitNumber = Integer.parseInt(message.getText().getPit_number());
|
||||
RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(pitNumber - 1);
|
||||
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
|
||||
wheatLayoutSingManager.updateSingleWheat(pitBean, pitNumber);
|
||||
} else {
|
||||
if (message.getText().getIs_pk() == null) {
|
||||
wheatLayoutManager1.updateSingleWheat(pitBean,pitNumber, 1);
|
||||
wheatLayoutManager1.updateSingleWheat(pitBean, pitNumber, 1);
|
||||
} else {
|
||||
wheatLayoutManager2.updateSingleWheat(pitBean, pitNumber, 2);
|
||||
}
|
||||
@@ -1123,8 +1143,8 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
|
||||
/// 1004
|
||||
public void event1004(RoomMessageEvent message) {
|
||||
int pitNumber = Integer.parseInt(message.getText().getPit_number()) ;
|
||||
RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(pitNumber- 1);
|
||||
int pitNumber = Integer.parseInt(message.getText().getPit_number());
|
||||
RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(pitNumber - 1);
|
||||
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
|
||||
wheatLayoutSingManager.updateSingleWheat(pitBean, pitNumber);
|
||||
} else {
|
||||
|
||||
@@ -113,4 +113,19 @@ public class RoomSettingPresenter extends BasePresenter<RoomSettingContacts.View
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRoomBusinessTime(String roomId, String startTime, String endTime) {
|
||||
api.setRoomBusinessTime(roomId, startTime, endTime, new BaseObserver<String>() {
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -160,6 +160,24 @@ public class SingSongPresenter extends BaseRoomPresenter<SingSongContacts.View>
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closePkMic(String pk_id, String type, String user_id) {
|
||||
RetrofitClient.getInstance().closePkMic(pk_id, type, user_id, new BaseObserver<String>() {
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
if (MvpRef==null)
|
||||
MvpRef=new WeakReference<>(mView);
|
||||
MvpRef.get().closePkMic();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void postRoomSwToken(String roomId,int uid,int invite_pk_user_id) {
|
||||
RetrofitClient.getInstance().postRoomSwToken(roomId, new BaseObserver<PkSwTokenBean>() {
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
package com.xscm.modulemain.activity.user.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
@@ -10,12 +14,19 @@ import android.text.TextWatcher;
|
||||
import android.view.Gravity;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.activity.OnBackPressedCallback;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Autowired;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.request.target.CustomTarget;
|
||||
import com.bumptech.glide.request.transition.Transition;
|
||||
import com.luck.picture.lib.engine.CropFileEngine;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.databinding.ActivityCreatedRoomBinding;
|
||||
import com.example.zhouwei.library.CustomPopWindow;
|
||||
@@ -34,8 +45,12 @@ import com.xscm.moduleutil.utils.GlideEngine;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.PermissionDescriptionHelper;
|
||||
import com.xscm.moduleutil.widget.Constants;
|
||||
import com.xscm.moduleutil.widget.picker.PictureSelectorUtil;
|
||||
import com.yalantis.ucrop.UCrop;
|
||||
import com.yalantis.ucrop.UCropImageEngine;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -256,17 +271,65 @@ public class CreatedRoomActivity extends BaseMvpActivity<CreatedRoomPresenter, A
|
||||
// .setPictureStyle(MyPictureParameterStyle.Companion.selectPicture())
|
||||
// .forResult(requestCode); //结果回调onActivityResult code
|
||||
|
||||
// TODO: 2026/1/20 不带裁剪的方法
|
||||
|
||||
// PictureSelector.create(this)
|
||||
// .openGallery(mimeType)
|
||||
// .isGif(false)
|
||||
// .setImageEngine(GlideEngine.createGlideEngine())
|
||||
// .setPermissionDescriptionListener(PermissionDescriptionHelper.createListener())
|
||||
// .setMaxSelectNum(1)
|
||||
// .isPreviewImage(true)
|
||||
// .isDisplayCamera(false)
|
||||
// .setOutputCameraDir(Constants.FILE_PATH)
|
||||
// .isOriginalSkipCompress(true)
|
||||
// .forResult(requestCode); //结果回调onActivityResult code
|
||||
|
||||
PictureSelectorUtil pictureSelectorUtil = new PictureSelectorUtil();
|
||||
|
||||
PictureSelector.create(this)
|
||||
.openGallery(mimeType)
|
||||
.isGif(false)
|
||||
.setImageEngine(GlideEngine.createGlideEngine())
|
||||
.setPermissionDescriptionListener(PermissionDescriptionHelper.createListener())
|
||||
.setMaxSelectNum(1)
|
||||
.isPreviewImage(true)
|
||||
.isPreviewImage(false)
|
||||
.isDisplayCamera(false)
|
||||
.setOutputCameraDir(Constants.FILE_PATH)
|
||||
.isOriginalSkipCompress(true)
|
||||
.forResult(requestCode); //结果回调onActivityResult code
|
||||
.setImageEngine(GlideEngine.createGlideEngine()) // 选择器展示不出图片则添加
|
||||
.setPermissionDescriptionListener(PermissionDescriptionHelper.createListener())
|
||||
.setCropEngine(new CropFileEngine() {
|
||||
@Override
|
||||
public void onStartCrop(Fragment fragment, Uri srcUri, Uri destinationUri, ArrayList<String> dataSource, int requestCode) {
|
||||
UCrop.Options options = pictureSelectorUtil.buildOptions();
|
||||
UCrop uCrop = UCrop.of(srcUri, destinationUri, dataSource);
|
||||
uCrop.withOptions(options);
|
||||
uCrop.setImageEngine(new UCropImageEngine() {
|
||||
@Override
|
||||
public void loadImage(Context context, String url, ImageView imageView) {
|
||||
Glide.with(context).load(url).override(180, 180).into(imageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadImage(Context context, Uri url, int maxWidth, int maxHeight, OnCallbackListener<Bitmap> call) {
|
||||
Glide.with(context).asBitmap().load(url).override(maxWidth, maxHeight).into(new CustomTarget<Bitmap>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull Bitmap resource, @org.jetbrains.annotations.Nullable Transition<? super Bitmap> transition) {
|
||||
if (call != null) {
|
||||
call.onCall(resource);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadCleared(@org.jetbrains.annotations.Nullable Drawable placeholder) {
|
||||
if (call != null) {
|
||||
call.onCall(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
uCrop.start(fragment.requireActivity(), fragment, requestCode);
|
||||
}
|
||||
})
|
||||
.forResult(requestCode);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -70,6 +70,7 @@ public class RoomDetailsActivity extends BaseMvpActivity<RoomDetailsPresenter, A
|
||||
|
||||
MvpPre.getCharmList(roomId, stime, etime, currentPage + "", type);
|
||||
});
|
||||
dialog.setShowTime(false);
|
||||
dialog.show(getSupportFragmentManager(), "DoubleTimePicker");
|
||||
});
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ import com.xscm.moduleutil.base.CommonAppContext;
|
||||
import com.xscm.moduleutil.bean.UserInfo;
|
||||
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
|
||||
import com.xscm.moduleutil.dialog.RealNameDialog;
|
||||
import com.xscm.moduleutil.rtc.AgoraManager;
|
||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||
import com.xscm.moduleutil.utils.ColorManager;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
@@ -98,6 +99,7 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
|
||||
mBinding.llQh.setVisibility(View.VISIBLE);
|
||||
}
|
||||
mBinding.switQh.setChecked(SpUtil.getTaskService()==1);
|
||||
mBinding.switSk.setChecked(SpUtil.getSkService()==1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -124,6 +126,7 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
|
||||
mBinding.tvShare.setOnClickListener(this::onClick);
|
||||
mBinding.llSendLog.setOnClickListener(this::onClick);
|
||||
mBinding.switQh.setOnClickListener(this::onClick);
|
||||
mBinding.switSk.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@@ -309,7 +312,15 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
|
||||
}
|
||||
|
||||
// MvpPre.clearLoginInfo();
|
||||
}else if (id == R.id.swit_sk){
|
||||
if (mBinding.switSk.isChecked()) {
|
||||
SpUtil.setSkService(1);
|
||||
} else {
|
||||
SpUtil.setSkService(0);
|
||||
}
|
||||
AgoraManager.getInstance().setEnable();
|
||||
}
|
||||
|
||||
// 通过 ID 获取资源名称
|
||||
String viewName = "";
|
||||
try {
|
||||
|
||||
@@ -73,7 +73,7 @@ class TotalRevenueActivity : BaseMvpActivity<UserFamilyPresenter, ActivityTotalR
|
||||
)
|
||||
})
|
||||
val fragmentManager = supportFragmentManager
|
||||
|
||||
dialog.setShowTime(false)
|
||||
dialog.show(fragmentManager, "DoubleTimePickerBottomSheet")
|
||||
})
|
||||
|
||||
|
||||
@@ -11,9 +11,14 @@ import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.activity.user.PageViewModel;
|
||||
import com.xscm.modulemain.activity.user.conacts.GiftWallConacts;
|
||||
import com.xscm.modulemain.activity.user.presenter.GiftWallPresenter;
|
||||
import com.xscm.modulemain.adapter.GiftWallAdapter;
|
||||
import com.xscm.modulemain.databinding.DialogPlaceholderBinding;
|
||||
import com.xscm.modulemain.databinding.FragmentGiftWallBinding;
|
||||
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -22,16 +27,14 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A placeholder fragment containing a simple view.
|
||||
*/
|
||||
public class PlaceholderFragment extends Fragment {
|
||||
|
||||
private static final String ARG_SECTION_NUMBER = "section_number";
|
||||
* @Author qx
|
||||
* @Time 2026/1/20 9:53
|
||||
* @Description 礼物墙展示用户送礼的dialog
|
||||
*/
|
||||
public class PlaceholderFragment extends BaseMvpDialogFragment<GiftWallPresenter, DialogPlaceholderBinding> implements GiftWallConacts.View{
|
||||
|
||||
private PageViewModel pageViewModel;
|
||||
private FragmentGiftWallBinding binding;
|
||||
|
||||
private GiftWallAdapter mGiftWallAdapter;
|
||||
|
||||
public static PlaceholderFragment newInstance(int index) {
|
||||
PlaceholderFragment fragment = new PlaceholderFragment();
|
||||
@@ -47,7 +50,6 @@ public class PlaceholderFragment extends Fragment {
|
||||
pageViewModel = new ViewModelProvider(this).get(PageViewModel.class);
|
||||
int index = 1;
|
||||
if (getArguments() != null) {
|
||||
index = getArguments().getInt(ARG_SECTION_NUMBER);
|
||||
|
||||
// 获取传递的礼物列表数据
|
||||
List<GiftUserWallBean.GiftWallBean> giftList =
|
||||
@@ -64,37 +66,37 @@ public class PlaceholderFragment extends Fragment {
|
||||
}
|
||||
pageViewModel.setIndex(index);
|
||||
|
||||
mGiftWallAdapter= new GiftWallAdapter(new ArrayList<>());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
protected GiftWallPresenter bindPresenter() {
|
||||
return new GiftWallPresenter(this,getActivity());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(
|
||||
@NonNull LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
protected void initView() {
|
||||
|
||||
binding = FragmentGiftWallBinding.inflate(inflater, container, false);
|
||||
View root = binding.getRoot();
|
||||
// 设置 GridView
|
||||
GridView gridView = binding.gridView;
|
||||
gridView.setAdapter(mGiftWallAdapter);
|
||||
// 观察数据变化并更新 GridView
|
||||
pageViewModel.getDataList().observe(getViewLifecycleOwner(), dataList -> {
|
||||
if (dataList != null) {
|
||||
mGiftWallAdapter.updateData(dataList);
|
||||
}
|
||||
});
|
||||
return root;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.dialog_placeholder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
binding = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGiftWall(GiftUserWallBean data) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -22,8 +22,10 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A placeholder fragment containing a simple view.
|
||||
*/
|
||||
* @Author qx
|
||||
* @Time 2026/1/20 9:53
|
||||
* @Description 礼物墙展示的fragment
|
||||
*/
|
||||
public class PlaceholderGiftFragment extends Fragment {
|
||||
|
||||
private static final String ARG_SECTION_NUMBER = "section_number";
|
||||
@@ -65,6 +67,14 @@ public class PlaceholderGiftFragment extends Fragment {
|
||||
pageViewModel.setIndex(index);
|
||||
|
||||
mGiftWallAdapter= new GiftWallAdapter(new ArrayList<>());
|
||||
|
||||
mGiftWallAdapter.setOnUserClickListener(new GiftWallAdapter.OnUserClickListener() {
|
||||
|
||||
@Override
|
||||
public void onUserClick(GiftUserWallBean.GiftWallBean emotion) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,6 +14,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.moduleutil.bean.CombinedGiftBean;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
import com.xscm.moduleutil.bean.room.EmotionDeatils;
|
||||
import com.xscm.moduleutil.utils.ImageLoader;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
@@ -28,6 +29,17 @@ import java.util.List;
|
||||
public class GiftWallAdapter extends BaseAdapter {
|
||||
private List<GiftUserWallBean.GiftWallBean> mDataList;
|
||||
|
||||
private OnUserClickListener mOnUserClickListener;
|
||||
// 定义接口
|
||||
public interface OnUserClickListener {
|
||||
void onUserClick(GiftUserWallBean.GiftWallBean emotion);
|
||||
}
|
||||
|
||||
// 转换后的 Java 代码
|
||||
public void setOnUserClickListener(OnUserClickListener listener) {
|
||||
this.mOnUserClickListener= listener;
|
||||
}
|
||||
|
||||
public GiftWallAdapter(List<GiftUserWallBean.GiftWallBean> dataList) {
|
||||
this.mDataList = dataList;
|
||||
}
|
||||
@@ -77,6 +89,18 @@ public class GiftWallAdapter extends BaseAdapter {
|
||||
holder.textView.setText(item.getGift_name());
|
||||
// ImageUtils.loadHeadCC(item.getBase_image(), holder.iv_gift_image);
|
||||
holder.tv_price33.setText(item.getGift_price());
|
||||
|
||||
// 为整个礼物项添加点击事件
|
||||
holder.cl_gift_item.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (item.is_liang()) {
|
||||
if (mOnUserClickListener != null) {
|
||||
mOnUserClickListener.onUserClick(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
TextView tv_number = holder.gift_num;
|
||||
@@ -113,8 +137,8 @@ public class GiftWallAdapter extends BaseAdapter {
|
||||
TopUsersAdapter topUsersAdapter = new TopUsersAdapter(displayUsers);
|
||||
recyclerView.setAdapter(topUsersAdapter);
|
||||
holder.tv_gift_values.setText("等" + item.getTop_users().size() + "人");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
package com.xscm.modulemain.adapter
|
||||
|
||||
import android.graphics.Color
|
||||
import android.widget.TextView
|
||||
import android.app.AlertDialog
|
||||
import android.content.DialogInterface
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.xscm.modulemain.R
|
||||
import com.xscm.moduleutil.bean.BlackUserBean
|
||||
import com.xscm.moduleutil.bean.GroupBean
|
||||
import com.xscm.moduleutil.color.ThemeableDrawableUtils
|
||||
import com.xscm.moduleutil.utils.MeHeadView
|
||||
|
||||
/**
|
||||
* 项目名称:羽声语音
|
||||
* 时间:2026/1/3 14:17
|
||||
* 用途:
|
||||
* 用途:群成员列表 长按根据角色不同展示不同的权限
|
||||
*/
|
||||
class GroupUserListAdapter : BaseQuickAdapter<GroupBean.GroupUserBean, BaseViewHolder>(R.layout.item_group_user) {
|
||||
class GroupUserListAdapter :
|
||||
BaseQuickAdapter<GroupBean.GroupUserBean, BaseViewHolder>(R.layout.item_group_user) {
|
||||
interface OnItemClickListener {
|
||||
fun onItemClick(ismute: Int, item: GroupBean.GroupUserBean?)
|
||||
}
|
||||
|
||||
fun onItemGroupMemberClick(item: GroupBean.GroupUserBean?, b: Boolean)
|
||||
}
|
||||
|
||||
|
||||
private var onItemClickListener: OnItemClickListener? = null
|
||||
@@ -27,11 +27,12 @@ class GroupUserListAdapter : BaseQuickAdapter<GroupBean.GroupUserBean, BaseViewH
|
||||
fun setOnItemClickListener(listener: OnItemClickListener?) {
|
||||
this.onItemClickListener = listener
|
||||
}
|
||||
var isOwner = false
|
||||
|
||||
var isOwner = 0
|
||||
var ismute: Int = 0
|
||||
|
||||
// 在适配器中添加设置方法
|
||||
fun updateOwnerStatus(isOwner: Boolean) {
|
||||
fun updateOwnerStatus(isOwner: Int) {
|
||||
this.isOwner = isOwner
|
||||
notifyDataSetChanged() // 如果需要刷新视图
|
||||
}
|
||||
@@ -41,31 +42,65 @@ class GroupUserListAdapter : BaseQuickAdapter<GroupBean.GroupUserBean, BaseViewH
|
||||
helper: BaseViewHolder,
|
||||
item: GroupBean.GroupUserBean?
|
||||
) {
|
||||
helper.getView<MeHeadView>(R.id.im_user).setData(item?.avatar, "","")
|
||||
helper.getView<MeHeadView>(R.id.im_user).setData(item?.avatar, "", "")
|
||||
helper.setText(R.id.tv_nick_name, item?.nickname)
|
||||
if (isOwner == 1 || isOwner == 2) {
|
||||
helper.setVisible(R.id.im_g, false)
|
||||
// ThemeableDrawableUtils.setThemeableRoundedBackground(
|
||||
// helper.getView<TextView>(R.id.im_g),
|
||||
// Color.parseColor("#333333"),
|
||||
// 34
|
||||
// )
|
||||
// helper.getView<TextView>(R.id.im_g).setTextColor(Color.WHITE)
|
||||
// if (item?.is_mute == 1) {
|
||||
// helper.getView<TextView>(R.id.im_g).text = "解禁"
|
||||
// ismute = 1
|
||||
// } else {
|
||||
// helper.getView<TextView>(R.id.im_g).text = "禁言"
|
||||
// ismute = 0
|
||||
// }
|
||||
// helper.getView<TextView>(R.id.im_g).setOnClickListener {
|
||||
// if (onItemClickListener != null) {
|
||||
// onItemClickListener?.onItemClick(ismute, item)
|
||||
// }
|
||||
// }
|
||||
|
||||
if (isOwner){
|
||||
helper.setVisible(R.id.im_g, true)
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground(
|
||||
helper.getView<TextView>(R.id.im_g),
|
||||
Color.parseColor("#333333"),
|
||||
34
|
||||
)
|
||||
helper.getView<TextView>(R.id.im_g).setTextColor(Color.WHITE)
|
||||
if (item?.is_mute==1){
|
||||
helper.getView<TextView>(R.id.im_g).text = "解禁"
|
||||
ismute=1
|
||||
}else{
|
||||
helper.getView<TextView>(R.id.im_g).text = "禁言"
|
||||
ismute=0
|
||||
|
||||
helper.itemView.setOnLongClickListener {
|
||||
showOptionsDialog(
|
||||
item?.is_mute!!,
|
||||
item,
|
||||
if (item.group_role == 2) true else false
|
||||
)
|
||||
return@setOnLongClickListener true
|
||||
}
|
||||
helper.getView<TextView>(R.id.im_g).setOnClickListener {
|
||||
if (onItemClickListener != null) {
|
||||
onItemClickListener?.onItemClick(ismute,item)
|
||||
}
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
helper.setVisible(R.id.im_g, false)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示选项对话框
|
||||
*/
|
||||
private fun showOptionsDialog(ismute: Int, item: GroupBean.GroupUserBean?, b: Boolean) {
|
||||
val options = arrayOf<String?>(
|
||||
if (ismute == 1) "解禁" else "禁言",
|
||||
if (b) "设置成普通成员" else "设置成管理员"
|
||||
)
|
||||
if (isOwner != 1){
|
||||
options[1] = ""
|
||||
}
|
||||
val builder = AlertDialog.Builder(mContext)
|
||||
builder.setTitle("选择操作")
|
||||
.setItems(
|
||||
options,
|
||||
DialogInterface.OnClickListener { dialog: DialogInterface?, which: Int ->
|
||||
when (which) {
|
||||
0 -> onItemClickListener?.onItemClick(ismute, item)
|
||||
|
||||
1 -> onItemClickListener?.onItemGroupMemberClick(item, b)
|
||||
}
|
||||
})
|
||||
.show()
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ public class HorizontalListAdapter extends RecyclerView.Adapter<HorizontalListAd
|
||||
private OnItemClickListener mListener;
|
||||
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(int itemPos,RoomSettingBean item,HorizontalListAdapter itemAdapter);
|
||||
void onItemClick(int itemPos, RoomSettingBean item, HorizontalListAdapter itemAdapter);
|
||||
}
|
||||
|
||||
public HorizontalListAdapter(List<RoomSettingBean> data) {
|
||||
@@ -43,7 +43,7 @@ public class HorizontalListAdapter extends RecyclerView.Adapter<HorizontalListAd
|
||||
super.onBindViewHolder(holder, position, payloads);
|
||||
if (payloads.isEmpty()) {
|
||||
for (Object payload : payloads) {
|
||||
if(((Integer)payload) == 1){
|
||||
if (((Integer) payload) == 1) {
|
||||
RoomSettingBean item = mData.get(position);
|
||||
if (item.isStatus()) {
|
||||
holder.tvName.setText(getName(item.getType(), item.isSelect(), item.getName()));
|
||||
@@ -63,7 +63,7 @@ public class HorizontalListAdapter extends RecyclerView.Adapter<HorizontalListAd
|
||||
}
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
if (mListener != null) {
|
||||
mListener.onItemClick(position,item,HorizontalListAdapter.this);
|
||||
mListener.onItemClick(position, item, HorizontalListAdapter.this);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -135,6 +135,9 @@ public class HorizontalListAdapter extends RecyclerView.Adapter<HorizontalListAd
|
||||
return com.xscm.moduleutil.R.mipmap.ic_bg_music;
|
||||
case RoomSettingBean.QXRoomSettingTypeRoomBgImage:
|
||||
return com.xscm.moduleutil.R.mipmap.ic_bg_image;
|
||||
|
||||
case RoomSettingBean.QXRoomSettingTypeRoomBusinessTime: // 营业时间
|
||||
return com.xscm.moduleutil.R.mipmap.icon_room_time;
|
||||
// 更多操作
|
||||
case RoomSettingBean.QXRoomSettingTypeRoomShare:
|
||||
return com.xscm.moduleutil.R.mipmap.ic_share;
|
||||
|
||||
@@ -120,7 +120,6 @@ public class PkTimeDialogFragment extends BaseMvpDialogFragment<PkTimePresenter,
|
||||
|
||||
public static List<RoomAutionTimeBean> getDefaultTimeOptions() {
|
||||
List<RoomAutionTimeBean> list = new ArrayList<>();
|
||||
list.add(new RoomAutionTimeBean(1));
|
||||
list.add(new RoomAutionTimeBean(5));
|
||||
list.add(new RoomAutionTimeBean(10));
|
||||
list.add(new RoomAutionTimeBean(15));
|
||||
|
||||
@@ -130,7 +130,7 @@ public class RoomConcernDialogFragment extends BaseMvpDialogFragment<RoomClosePr
|
||||
|
||||
@Override
|
||||
public void initData() {
|
||||
MvpPre.roomRelationList("2");
|
||||
MvpPre.roomRelationList("3");
|
||||
// MvpPre.getConcernList();
|
||||
|
||||
}
|
||||
|
||||
@@ -775,7 +775,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
|
||||
mBinding.viewPager.setOffscreenPageLimit(0);
|
||||
mBinding.slidingTabLayout.setViewPager(mBinding.viewPager);
|
||||
mBinding.slidingTabLayout.setCurrentTab(1);
|
||||
refreshCurrentGiftFragment(giftLabelBeans.get(1).getId(), 1, roomId);
|
||||
refreshCurrentGiftFragment(giftLabelBeans.get(1).getId(), 1, "1");
|
||||
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
@@ -786,7 +786,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
|
||||
public void onPageSelected(int position) {
|
||||
// 当页面切换时,控制 tv_bb_qs 按钮的显示
|
||||
updateTvBbQsVisibility(position);
|
||||
refreshCurrentGiftFragment(giftLabelBeans.get(position).getId(), 1, roomId);
|
||||
refreshCurrentGiftFragment(giftLabelBeans.get(position).getId(), 1, "1");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -799,9 +799,9 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
|
||||
}
|
||||
|
||||
// 调用示例
|
||||
private void refreshCurrentGiftFragment(String id, int type, String roomId) {
|
||||
private void refreshCurrentGiftFragment(String id, int status, String type) {
|
||||
if (getCurrentGiftFragment() != null) {
|
||||
getCurrentGiftFragment().loadDataIfNeeded(id, type, roomId);
|
||||
getCurrentGiftFragment().loadDataIfNeeded(id, status, type);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.xscm.modulemain.dialog;
|
||||
|
||||
import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomBusinessTime;
|
||||
import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomOrderMic;
|
||||
import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomTimeRedSound;
|
||||
import static com.xscm.moduleutil.bean.room.RoomSettingBean.QXRoomSettingTypeRoomTimeSpace;
|
||||
@@ -44,14 +45,18 @@ import com.xscm.moduleutil.bean.room.RoomInfoResp;
|
||||
import com.xscm.moduleutil.bean.room.RoomSettingBean;
|
||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
import com.xscm.moduleutil.widget.DoubleTimePickerBottomSheet;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -174,6 +179,7 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
|
||||
toolsChildren.add(new RoomSettingBean("排麦模式", "ic_order_mic", null, null, QXRoomSettingTypeRoomOrderMic, read, isSelected, false, roomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1")));
|
||||
toolsChildren.add(new RoomSettingBean("背景音乐", "ic_bg_music", null, null, RoomSettingBean.QXRoomSettingTypeRoomBgMusic, read, isSelected, false, false));
|
||||
toolsChildren.add(new RoomSettingBean("背景图片", "ic_bg_image", null, null, RoomSettingBean.QXRoomSettingTypeRoomBgImage, read, isSelected, false, false));
|
||||
toolsChildren.add(new RoomSettingBean("营业时间", "ic_bg_image", null, null, QXRoomSettingTypeRoomBusinessTime, read, isSelected, false, false));
|
||||
toolsParent.setChildren(toolsChildren);
|
||||
parentList.add(toolsParent);
|
||||
|
||||
@@ -397,10 +403,9 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
|
||||
// }
|
||||
else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeSIGNCONTRACT) {
|
||||
queren("10");
|
||||
}else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypePUBROOM) {
|
||||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypePUBROOM) {
|
||||
queren("11");
|
||||
}
|
||||
else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomSetting) {
|
||||
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomSetting) {
|
||||
if (roomInfoResp != null) {
|
||||
ARouter.getInstance().build(ARouteConstants.CREATED_ROOM).withSerializable("roomInfoResp", roomInfoResp).navigation();
|
||||
} else {
|
||||
@@ -486,6 +491,36 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
|
||||
bean.setSelect(true);
|
||||
}
|
||||
itemAdapter.notifyItemChanged(itemPos);
|
||||
} else if (bean.getType() == QXRoomSettingTypeRoomBusinessTime) {//营业时间
|
||||
DoubleTimePickerBottomSheet dialog = new DoubleTimePickerBottomSheet();
|
||||
dialog.setOnTimeRangeSelectedListener((startDate, endDate) -> {
|
||||
// 处理选择的时间范围
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
|
||||
// 获取开始时间的Calendar实例
|
||||
Calendar startCalendar = Calendar.getInstance();
|
||||
startCalendar.setTime(startDate);
|
||||
// 将秒设置为00
|
||||
startCalendar.set(Calendar.SECOND, 0);
|
||||
|
||||
// 获取结束时间的Calendar实例
|
||||
Calendar endCalendar = Calendar.getInstance();
|
||||
endCalendar.setTime(endDate);
|
||||
// 将秒设置为59
|
||||
endCalendar.set(Calendar.SECOND, 59);
|
||||
|
||||
// 格式化时间
|
||||
String startTime = sdf.format(startCalendar.getTime());
|
||||
String endTime = sdf.format(endCalendar.getTime());
|
||||
|
||||
Log.d("SelectedTime", "开始时间:" + startTime);
|
||||
Log.d("SelectedTime", "结束时间:" + endTime);
|
||||
MvpPre.setRoomBusinessTime(roomId, startTime, endTime);
|
||||
// MvpPre.getCharmList(roomId, stime, etime, currentPage + "", type);
|
||||
});
|
||||
dialog.setShowDate(false);
|
||||
dialog.setShowTime(true);
|
||||
dialog.setShowSeconds(false);
|
||||
dialog.show(getChildFragmentManager(), "DoubleTimePicker");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -725,7 +760,7 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
|
||||
type == RoomSettingBean.QXRoomSettingTypeRoomTypeJiaoy || type == RoomSettingBean.QXRoomSettingTypeRoomSetting ||
|
||||
type == RoomSettingBean.QXRoomSettingTypeRoomSubsidy || type == RoomSettingBean.QXRoomSettingTypeRoomMyDress ||
|
||||
type == RoomSettingBean.QXRoomSettingTypeRoomTypeLianG || type == RoomSettingBean.QXRoomSettingTypeRoomTypeSIGNCONTRACT ||
|
||||
type == RoomSettingBean.QXRoomSettingTypeRoomTypePUBROOM ||
|
||||
type == RoomSettingBean.QXRoomSettingTypeRoomTypePUBROOM || type == QXRoomSettingTypeRoomBusinessTime ||
|
||||
type == RoomSettingBean.QXRoomSettingTypeRoomClearMessage || type == QXRoomSettingTypeRoomOrderMic || type == RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen
|
||||
|| type == RoomSettingBean.QXRoomSettingTypeRoomBgMusic || type == RoomSettingBean.QXRoomSettingTypeRoomBgImage || type == -1) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user