1:修改排行榜页面,

2:修改拍卖房刷新数据
3:修改交友房刷新数据
This commit is contained in:
2025-10-25 18:07:21 +08:00
parent 529aae1fcf
commit 8ebe1530ee
128 changed files with 3640 additions and 2099 deletions

View File

@@ -46,6 +46,7 @@ import com.example.moduleroom.fragment.*
import com.example.moduleroom.presenter.RoomPresenter
import com.example.moduleroom.service.ForegroundService
import com.example.moduleroom.service.RoomPlayService
import com.google.common.collect.Sets.SetView
import com.hjq.toast.ToastUtils
import com.liulishuo.okdownload.OkDownloadProvider
import com.orhanobut.logger.Logger
@@ -90,7 +91,10 @@ import com.xscm.moduleutil.widget.*
import com.xscm.moduleutil.widget.ViewUtils.OnViewCreatedListener
import com.xscm.moduleutil.widget.floatingView.Floa
import io.agora.musiccontentcenter.Music
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
@@ -116,20 +120,12 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
private var mRoomUserBean: RoomUserBean? = null
private var mPitList: List<RoomPitBean> = ArrayList()
@JvmField
@Autowired
var password: String? = null
@JvmField
@Autowired
var roomId: String? = null
@JvmField
@Autowired
var mRoomInfoResp: RoomInfoResp? = null
@JvmField
@Autowired
var taskId: String? = null
var likeUserAdapter: LikeUserAdapter<RoomOnlineBean>? = null
@@ -176,7 +172,13 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
fun addActiveDialogFragment(dialogFragment: Fragment) {
activeDialogFragments.add(dialogFragment)
}
override fun doDone() {
isOnline = intent.getBooleanExtra("isOnline", false)
password = intent.getStringExtra("password")
roomId = intent.getStringExtra("roomId")
mRoomInfoResp = intent.getSerializableExtra("roomInfo") as RoomInfoResp?
LogUtils.dTag("RoomActivity", "doDone"+mRoomInfoResp.toString())
}
private fun resumeRoomFromMinimize() {
@@ -354,7 +356,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
/** 最小化 */
private fun showExitRoomDialog() {
if (mRoomInfoResp!!.room_info.type_id.equals("6")) {
if (mRoomInfoResp?.room_info?.type_id.equals("6")) {
val bottomSheet = ExitRoomBottomSheet.newInstance(false, true, true);
bottomSheet.setOnOptionSelectedListener(object : OnOptionSelectedListener {
override fun onMinimize() {
@@ -368,8 +370,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
// 调用退出房间方法
MessageListenerSingleton.quitGroup(roomId);
quit();
if (mRoomInfoResp!!.getRoom_info()
.getLabel_id() != null && mRoomInfoResp!!.getRoom_info().getLabel_id()
if (mRoomInfoResp?.getRoom_info()?.getLabel_id() != null && mRoomInfoResp?.getRoom_info()?.getLabel_id()
.equals("5")
) {
jiaR();
@@ -489,7 +490,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
isSave = false
sDestroied = false
isMinimized = false
overridePendingTransition(0, 0) // 关闭转场动画
// overridePendingTransition(0, 0) // 关闭转场动画
startKeepLiveService() //保活
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)
@@ -500,12 +501,13 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
checkAndRestoreMinimizeState()
// 获取传递的房间数据
// 在子线程中执行网络请求
performNetworkRequestsAsync()
roomFragment = RoomFragment.newInstance()
supportFragmentManager
.beginTransaction()
.replace(R.id.vp_room_pager, roomFragment!!)
.commitAllowingStateLoss()
// performNetworkRequestsAsync()
// roomFragment = RoomFragment.newInstance()
// supportFragmentManager
// .beginTransaction()
// .replace(R.id.vp_room_pager, roomFragment!!)
// .commitAllowingStateLoss()
// 使用新的 OnBackPressedDispatcher API 来处理返回事件
if (onBackPressedDispatcher != null) {
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
@@ -516,6 +518,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
})
}
// 获取Application实例并设置监听器
val app = application as CommonAppContext
appStateListener = AppStateManager.getInstance()
@@ -526,7 +529,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
appStateListener?.onRoomActivityCreated(this)
}
MessageListenerSingleton.getInstance().joinGroup(roomId)
// 处理房间数据
// handleRoomData();
SpUtil.saveMyRoomId(roomId)
@@ -583,6 +586,113 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
override fun onSelfInfoUpdated(info: V2TIMUserFullInfo?) {}
}
private fun setview(resp: RoomInfoResp?) {
if (resp == null)
return
this.mRoomInfoResp = resp
val roomBean = resp.room_info
this.mRoomBean = roomBean
this.mRoomUserBean = resp.user_info
this.mRoomOwnerBean = resp.room_owner
this.mPitList = mRoomBean!!.pit_list
CommonAppContext.getInstance().isPlaying = true
CommonAppContext.getInstance().playId = roomId
CommonAppContext.getInstance().playName = mRoomBean!!.room_name
CommonAppContext.getInstance().playCover = resp.room_info.room_cover
CommonAppContext.getInstance().showSelf = resp.is_show_self == 1
ImageUtils.loadHeadCC(resp.room_info.room_cover, mBinding!!.roomTop.avatar)
mBinding!!.roomTop.name.text = roomBean.room_name
mBinding!!.roomTop.idVal.text = "ID:" + roomBean.room_number
if (mRoomUserBean?.getIs_room_owner() == 1) {
mBinding!!.roomTop.btnFollow.visibility = View.GONE
} else {
mBinding!!.roomTop.btnFollow.visibility = View.VISIBLE
if (resp.isCollect) {
mBinding!!.roomTop.btnFollow.background =
resources.getDrawable(com.xscm.moduleutil.R.mipmap.collected)
mBinding!!.roomTop.btnFollow.text = ""
}
}
number = roomBean.online_number
mBinding!!.roomTop.tvNum.text = number.toString() + ""
val userIds = StringBuilder()
for (i in mRoomInfoResp!!.room_info.pit_list.indices) {
val userId = mRoomInfoResp!!.room_info.pit_list[i].user_id
if (userId != null && userId != "0" && !userId.isEmpty()) {
if (userIds.length > 0) {
userIds.append(",")
}
userIds.append(userId)
}
}
initPublicScreenFragment()
// 确保Fragment已完全初始化后再调用getUpRoomInfo
if (publicScreenFragment != null && publicScreenFragment!!.isAdded && publicScreenFragment!!.view != null) {
publicScreenFragment!!.getUpRoomInfo(resp)
}
if (!isFinishing && !isDestroyed) {
resetFragment()
upHeight()
} else {
Log.e("Fragment", "Fragment transaction skipped due to state loss.")
}
if (mRoomUserBean?.getIs_collect() == 1) {
mBinding!!.roomTop.btnFollow.background =
resources.getDrawable(com.xscm.moduleutil.R.mipmap.yishouc)
mBinding!!.roomTop.btnFollow.text = ""
} else {
ThemeableDrawableUtils.setThemeableRoundedBackground(
mBinding!!.roomTop.btnFollow,
ColorManager.getInstance().primaryColorInt,
53
)
mBinding!!.roomTop.btnFollow.setTextColor(ColorManager.getInstance().buttonColorInt)
mBinding!!.roomTop.btnFollow.text = "收藏"
}
if ((roomBean.type_id == "3" || roomBean.type_id == "1" || roomBean.type_id == "4") && roomBean.label_id == "2") {
AgoraManager.getInstance(this).isBjMusic = false
} else {
AgoraManager.getInstance(this).isBjMusic = true
}
AgoraManager.stopMuisc()
initializeAudio()
toutiao()
upRoomInfo(resp)
instView()
if (mRoomInfoResp!!.user_info.pit_number == 9 && mRoomInfoResp!!.user_info.user_id == SpUtil.getUserId()
.toString() + ""
) {
mBinding!!.roomTop.rl.visibility = View.VISIBLE
ivSoundEffects(true)
} else {
mBinding!!.roomTop.rl.visibility = View.GONE
ivSoundEffects(false)
}
if (mRoomInfoResp!!.room_info.type_id == "7" || mRoomInfoResp!!.room_info.type_id == "2") {
mBinding!!.rlMore.visibility = View.GONE
mBinding!!.rlMisc.visibility = View.GONE
}
setupEffectView()
// 使用Handler延迟执行确保Fragment视图已完全创建
Handler(Looper.getMainLooper()).post {
if (publicScreenFragment != null && publicScreenFragment!!.isAdded && publicScreenFragment!!.view != null) {
publicScreenFragment!!.getUpRoomInfo(resp)
}
}
}
private fun checkAndRestoreMinimizeState() {
val prefs = getSharedPreferences("room_minimize_state", Context.MODE_PRIVATE)
var isMinimized = prefs.getBoolean("is_minimized", false)
@@ -1185,17 +1295,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
})
mBinding!!.roomTop.root.isClickable = false
mBinding!!.roomTop.root.setOnClickListener {
// ToastUtils.showShort("点击了房间,事件穿透");
}
// mBinding!!.clXsb.setOnClickListener {
// val fragment = HourlyChartDialog.newInstance()
// fragment.show(supportFragmentManager,"HourlyChartDialog")
// if (fragment != null) {
// addActiveDialogFragment(fragment) // 添加到管理列表
// }
// }
setview(mRoomInfoResp)
}
@@ -1222,7 +1322,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
fun roomInfoEvent(messageEvent: RoomMessageEvent?) {
if (messageEvent == null) return
if (roomFragment == null) {
roomFragment = RoomFragment.newInstance()
roomFragment = RoomFragment.newInstance(mRoomInfoResp)
supportFragmentManager
.beginTransaction()
.replace(R.id.vp_room_pager, roomFragment!!)
@@ -1239,15 +1339,29 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
.dropLastWhile { it.isEmpty() }.toTypedArray()
)
QXGiftPlayerManager.getInstance(this).displayFullEffectView1(playQueue)
if (messageEvent!!.text.giftInfo!=null) {
var giftBean = messageEvent.text.giftInfo
giftBean.nickname= messageEvent.text.fromUserInfo.nickname
giftBean.userAvatar=messageEvent.text.fromUserInfo.avatar
giftBean.senderName=messageEvent.text.toUserInfo.nickname
giftBean.senderAvatarUrl=messageEvent.text.toUserInfo.avatar
giftBean.number=messageEvent.text.gift_num.toInt()
giftManager.receiveGift(giftBean)
}
// if(messageEvent?.text?.toUserInfos!=null){
// for (i in messageEvent.text.toUserInfos.indices){
// var giftBean = messageEvent.text.giftInfo
// giftBean.nickname= messageEvent.text.fromUserInfo.nickname
// giftBean.userAvatar=messageEvent.text.fromUserInfo.avatar
// giftBean.senderName=messageEvent.text.toUserInfos.get(i).nickname
// giftBean.senderAvatarUrl=messageEvent.text.toUserInfos.get(i).avatar
//
// giftBean.number=messageEvent.text.gift_num.toInt()
// giftManager.receiveGift(giftBean)
// }
// }else {
if (messageEvent!!.text.giftInfo != null) {
var giftBean = messageEvent.text.giftInfo
giftBean.nickname = messageEvent.text.fromUserInfo.nickname
giftBean.userAvatar = messageEvent.text.fromUserInfo.avatar
LogUtils.e("1005", messageEvent.text.toUserInfo?.nickname)
giftBean.senderName = messageEvent.text.toUserInfo?.nickname
giftBean.senderAvatarUrl = messageEvent.text.toUserInfo?.avatar
giftBean.number = messageEvent.text.gift_num.toInt()
giftManager.receiveGift(giftBean)
}
// }
hand1005(messageEvent, text)
} else if (msgType == 123) {
EventBus.getDefault().post(RoomSettingEvent())
@@ -1787,7 +1901,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
private fun handleMsgType1003(messageEvent: RoomMessageEvent, text: T?) {
if (text == null || mRoomInfoResp == null || mRoomInfoResp!!.room_info == null) return
if (roomFragment == null) {
roomFragment = RoomFragment.newInstance()
roomFragment = RoomFragment.newInstance(mRoomInfoResp)
supportFragmentManager
.beginTransaction()
.replace(R.id.vp_room_pager, roomFragment!!)
@@ -2648,13 +2762,13 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
RoomManager.getInstance().exitRoom(roomId)
// 清理资源
cleanupResources()
if (type == 1) {
// 导航到首页
navigateToMainPage()
} else if (type == 2) {
// 返回上一个页面
finish()
}
// if (type == 1) {
// // 导航到首页
// navigateToMainPage()
// } else if (type == 2) {
// // 返回上一个页面
// finish()
// }
finish()
}
@@ -2685,14 +2799,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
return false
}
private fun navigateToMainPage() {
ARouter.getInstance()
.build(ARouteConstants.ME)
.navigation()
// 添加转场动画
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
}
private fun quitUpRoom() {
// 清理最小化状态
@@ -3582,7 +3688,8 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
override fun onResume() {
super.onResume()
if (true)
return
LogUtils.e("RoomActivity", "onResume")
CommonAppContext.getInstance().isShow = true
CommonAppContext.getInstance().isPlaying = true
@@ -3892,7 +3999,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
val labelId = mRoomInfoResp!!.room_info.label_id
CommonAppContext.getInstance().lable_id = typeId
if (roomFragment == null) {
roomFragment = RoomFragment.newInstance()
roomFragment = RoomFragment.newInstance(mRoomInfoResp)
supportFragmentManager
.beginTransaction()
.replace(R.id.vp_room_pager, roomFragment!!)
@@ -4081,8 +4188,8 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
).show()
}
override fun onDestroy() {
LogUtils.e("RoomActivity", "onDestroy")
override fun finish() {
LogUtils.e("RoomActivity", "finish")
// 只有在真正退出房间时才清理最小化状态
if (!isMinimized) {
clearMinimizeState()
@@ -4094,63 +4201,64 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
giftManager.clearAll()
mBinding!!.giftContainer.removeAllViews()
// 确保父类的 onDestroy 被调用
super.onDestroy()
super.finish()
}
fun cleanupResources() {
sDestroied = true
overridePendingTransition(0, 0)
try {
// 1. 清理 EventBus 注册
if (EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().unregister(this)
}
Observable.create<Boolean> {
try {
// 1. 清理 EventBus 注册
if (EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().unregister(this)
}
// 2. 清理 Handler 回调
if (roomSwitchHandler != null) {
roomSwitchHandler.removeCallbacksAndMessages(null)
}
// 2. 清理 Handler 回调
if (roomSwitchHandler != null) {
roomSwitchHandler.removeCallbacksAndMessages(null)
}
// 3. 清理 CountDownTimer
releaseCountDownTimer()
releaseCountDownTimer1()
if (giftCountTimer != null) {
giftCountTimer!!.cancel()
giftCountTimer = null
}
// 3. 清理 CountDownTimer
releaseCountDownTimer()
releaseCountDownTimer1()
if (giftCountTimer != null) {
giftCountTimer!!.cancel()
giftCountTimer = null
}
// 4. 清理 SVGA 资源
clearSVGAResources()
// 4. 清理 SVGA 资源
clearSVGAResources()
// 5. 清理自定义悬浮窗
if (customMusicFloatingView != null) {
customMusicFloatingView!!.destroy()
customMusicFloatingView = null
}
// 5. 清理自定义悬浮窗
if (customMusicFloatingView != null) {
customMusicFloatingView!!.destroy()
customMusicFloatingView = null
}
// 6. 清理 Agora 资源
// 6. 清理 Agora 资源
// if (AgoraManager.getInstance(this) != null) {
// AgoraManager.getInstance(this).cleanup();
// }
// 清理所有弹框
dismissAllDialogs()
// 7. 清理 Fragment
cleanupFragments()
dismissAllDialogs()
// 7. 清理 Fragment
cleanupFragments()
// 8. 清理监听器
if (mBinding != null) {
// 移除所有 OnClickListener 防止内存泄漏
clearClickListeners()
}
ThreadUtils.cancel()
QXGiftPlayerManager.getInstance(applicationContext).destroyEffectSvga()
stopkeepLiveService() //停止service
CommonAppContext.getInstance().onlineMap.clear()
// 8. 清理监听器
if (mBinding != null) {
// 移除所有 OnClickListener 防止内存泄漏
clearClickListeners()
}
ThreadUtils.cancel()
QXGiftPlayerManager.getInstance(applicationContext).destroyEffectSvga()
stopkeepLiveService() //停止service
CommonAppContext.getInstance().onlineMap.clear()
// ImageUtils.clearDiskCache(this)
} catch (e: Exception) {
LogUtils.e("cleanupResources error: " + e.message)
}
} catch (e: Exception) {
LogUtils.e("cleanupResources error: " + e.message)
}
}.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe()
}
/**

View File

@@ -43,6 +43,7 @@ import com.xscm.moduleutil.bean.room.EMMessageInfo;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.logger.Logger;
import com.xscm.moduleutil.widget.AdaptiveImageView;
import com.xscm.moduleutil.widget.GifAvatarOvalView;
import com.xscm.moduleutil.widget.img.BubbleBackgroundHelper;
@@ -74,7 +75,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
super(null);
addItemType(1, com.xscm.moduleutil.R.layout.ease_row_received_message_system);//系统消息、官方公告
addItemType(2, com.xscm.moduleutil.R.layout.ease_row_received_message_user_send);//用户发送的消息
addItemType(3, com.xscm.moduleutil.R.layout.ease_row_received_message_user_send);//加入房间 、赠送礼物、上下麦、禁言 2025年6月12日15:42:08让和聊天显示的是同一个额布局后面需要修改
addItemType(3, com.xscm.moduleutil.R.layout.ease_row_received_message_giftr_send);//加入房间 、赠送礼物、上下麦、禁言 2025年6月12日15:42:08让和聊天显示的是同一个额布局后面需要修改
// addItemType(3, com.qxcm.moduleutil.R.layout.ease_row_received_message_join_room);//加入房间 、赠送礼物、上下麦、禁言
addItemType(4, com.xscm.moduleutil.R.layout.ease_row_received_message_new_user);//新用户注册
addItemType(5, com.xscm.moduleutil.R.layout.ease_row_received_message_wagging);//摇签
@@ -197,8 +198,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
@Override
protected void convert(BaseViewHolder helper, EMMessageInfo item) {
RoomMessageEvent emMessage = item.getEmMessage();
//
TextView tv_content = helper.getView(R.id.tv_content);
// 重置 ImageView 状态,防止复用导致的图片错乱
switch (helper.getItemViewType()) {
case 1:
@@ -209,7 +209,10 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
// tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
break;
case 2:
helper.getView(com.xscm.moduleutil.R.id.im_emj).setVisibility(View.VISIBLE);
AdaptiveImageView emojiImageView = helper.getView(com.xscm.moduleutil.R.id.im_emj);
emojiImageView.setTag("");
Glide.with(mContext).clear(emojiImageView);
emojiImageView.setVisibility(View.VISIBLE);
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.GONE);
@@ -227,8 +230,8 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
if (url.contains("http")) {
ImageView imageView = new ImageView(helper.itemView.getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);
@@ -240,12 +243,8 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
}
if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.mipmap.qipaokang);
// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getChat_bubble(), helper.getView(com.xscm.moduleutil.R.id.network_background));
// 使用 Glide 加载图片并设置名称
String imageUrl = emMessage.getText().getFromUserInfo().getChat_bubble();
Glide.with(mContext)
.load(imageUrl)
.into(new SimpleTarget<Drawable>() {
@@ -271,83 +270,115 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
}
if (emMessage.getText().getEmoji() != null) {
if (Objects.equals(emMessage.getText().getEmoji().getAnimate_image(), "") || emMessage.getText().getEmoji().getAnimate_image().isEmpty()) {
ImageUtils.loadHeadCC(emMessage.getText().getEmoji().getImage(), helper.getView(com.xscm.moduleutil.R.id.im_emj));
// 为每个加载任务设置唯一标识
String uniqueId = emMessage.getRoomId() + "_" + helper.getLayoutPosition();
emojiImageView.setTag(uniqueId);
if (Objects.equals(emMessage.getText().getEmoji().getAnimate_image(), "") ||
emMessage.getText().getEmoji().getAnimate_image().isEmpty()) {
// 检查视图是否仍属于当前数据项
if (uniqueId.equals(emojiImageView.getTag())) {
ImageUtils.loadHeadCC(emMessage.getText().getEmoji().getImage(), emojiImageView);
}
return;
}
if (helper.getView(com.xscm.moduleutil.R.id.im_emj).getTag() != null && helper.getView(com.xscm.moduleutil.R.id.im_emj).getTag().equals(emMessage.getText().getEmoji().getAnimate_image())) {
return; // 已经加载过,不需要重新加载
}
// 使用 RequestListener 监听加载完成
Glide.with(mContext)
.load(emMessage.getText().getEmoji().getAnimate_image())
.listener(new RequestListener<Drawable>() {
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
// 加载完成后执行
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 清除 Glide 缓存
// Glide.get(mContext).clearDiskCache();
// 更换图片
Glide.with(mContext)
.load(emMessage.getText().getEmoji().getImage())
.into((ImageView) helper.getView(com.xscm.moduleutil.R.id.im_emj));
}
}, 1500);
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target,
DataSource dataSource, boolean isFirstResource) {
// 检查视图是否仍属于当前数据项
if (uniqueId.equals(emojiImageView.getTag())) {
// 加载完成后执行
new Handler().postDelayed(() -> {
// 再次检查视图状态
if (uniqueId.equals(emojiImageView.getTag())) {
Glide.with(mContext)
.load(emMessage.getText().getEmoji().getImage())
.into(emojiImageView);
}
}, 1500);
}
return false;
}
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target,
boolean isFirstResource) {
return false;
}
})
.into((ImageView) helper.getView(com.xscm.moduleutil.R.id.im_emj));
// 设置标签,避免重复加载
helper.getView(com.xscm.moduleutil.R.id.im_emj).setTag(emMessage.getText().getEmoji().getAnimate_image());
.into(emojiImageView);
} else {
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.VISIBLE);
helper.getView(com.xscm.moduleutil.R.id.im_emj).setVisibility(View.GONE);
emojiImageView.setVisibility(View.GONE);
}
break;
case 3:
if (emMessage.getText().getFromUserInfo() != null && emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.mipmap.qipaokang);
} else {
helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
}
if (emMessage.getText().getFromUserInfo() != null && emMessage.getText().getFromUserInfo().getAvatar() != null) {
ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
}
helper.setText(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname());
// if (emMessage.getText().getFromUserInfo().getChat_bubble() != null && !emMessage.getText().getFromUserInfo().getChat_bubble().isEmpty()) {
//// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackgroundResource(com.xscm.moduleutil.R.mipmap.qipaokang);
//// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getChat_bubble(), helper.getView(com.xscm.moduleutil.R.id.network_background));
//
// // 使用 Glide 加载图片并设置名称
// String imageUrl = emMessage.getText().getFromUserInfo().getChat_bubble();
//
// Glide.with(mContext)
// .load(imageUrl)
// .into(new SimpleTarget<Drawable>() {
// @Override
// public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
// // 将资源转换为 Bitmap
// if (resource instanceof BitmapDrawable) {
// Bitmap bitmap = ((BitmapDrawable) resource).getBitmap();
// // 创建新的文件名
// Drawable fakeNinePatch = new FakeNinePatchDrawable(bitmap, 0.4f, 0.4f, 0.6f, 0.5f);
//
// // 保存图片到本地
// helper.getView(com.xscm.moduleutil.R.id.bubble).setBackground(fakeNinePatch);
// }
// }
//
// @Override
// public void onLoadFailed(@Nullable Drawable errorDrawable) {
// // 加载失败处理
// }
// });
// } else {
helper.getView(com.xscm.moduleutil.R.id.bubble1).setBackgroundResource(com.xscm.moduleutil.R.drawable.ease_row_pubilc_user_bg);
// }
// if (emMessage.getText().getFromUserInfo() != null && emMessage.getText().getFromUserInfo().getAvatar() != null) {
// ImageUtils.loadHeadCC(emMessage.getText().getFromUserInfo().getAvatar(), helper.getView(com.xscm.moduleutil.R.id.avatar));
// }
// helper.setText(com.xscm.moduleutil.R.id.tv_name, emMessage.getText().getFromUserInfo().getNickname());
// helper.setText(com.xscm.moduleutil.R.id.tv_content, emMessage.getText().getText());
helper.setText(com.xscm.moduleutil.R.id.tv_content, getSpannable(emMessage));
List<String> images1 = emMessage.getText().getFromUserInfo().getIcon();
LinearLayout ll_images1 = helper.getView(com.xscm.moduleutil.R.id.line);
ll_images1.removeAllViews();
// tv_content.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
if (images1 == null) {
return;
}
for (String url : images1) {
if (url.contains("http")) {
ImageView imageView = new ImageView(helper.itemView.getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView);
ll_images1.addView(imageView);
}
}
// List<String> images1 = emMessage.getText().getFromUserInfo().getIcon();
// LinearLayout ll_images1 = helper.getView(com.xscm.moduleutil.R.id.line);
// ll_images1.removeAllViews();
// if (images1 == null) {
// return;
// }
// for (String url : images1) {
// if (url.contains("http")) {
// ImageView imageView = new ImageView(helper.itemView.getContext());
// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
// helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
// helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
// );
// params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
// imageView.setLayoutParams(params);
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// // 使用 Glide 加载图片
// ImageUtils.loadHeadCC(url, imageView);
// ll_images1.addView(imageView);
// }
// }
break;
// case 4:
@@ -546,28 +577,29 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
@Override
public void onViewRecycled(@NonNull BaseViewHolder holder) {
Logger.e("onViewRecycled", "onViewRecycled");
ImageView ivEmoji = holder.getView(com.xscm.moduleutil.R.id.iv_expression);
// AdaptiveImageView imEmj = (AdaptiveImageView)holder.getView(com.xscm.moduleutil.R.id.im_emj);
GifAvatarOvalView avatarOvalView = holder.getView(com.xscm.moduleutil.R.id.avatar);
// ImageView ivGrade = holder.getView(com.qxcm.moduleutil.R.id.iv_grade);
ImageView ivNobility = holder.getView(com.xscm.moduleutil.R.id.iv_nobility);
ImageView ivCharm = holder.getView(com.xscm.moduleutil.R.id.iv_charm);
// ImageView ivTitle = holder.getView(com.qxcm.moduleutil.R.id.iv_title_label);
if (mContext instanceof Activity && (((Activity) mContext).isFinishing() || ((Activity) mContext).isDestroyed())) {
return;
}
try {
// 清理表情图片
if (holder.getView(com.xscm.moduleutil.R.id.im_emj) != null) {
ImageView imEmj = (ImageView) holder.getView(com.xscm.moduleutil.R.id.im_emj);
imEmj.setTag(null);
imEmj.setImageDrawable(null);
Glide.with(imEmj.getContext()).clear(imEmj);
}
// 清理其他图片
if (avatarOvalView != null) {
avatarOvalView.setImageDrawable(null);
Glide.with(avatarOvalView.getContext()).clear(avatarOvalView);
}
if (ivEmoji != null) {
ivEmoji.setImageDrawable(null);
Glide.with(ivEmoji.getContext()).clear(ivEmoji);
}
// if (ivGrade != null) {
// ivGrade.setImageDrawable(null);
// Glide.with(ivGrade.getContext()).clear(ivGrade);
// }
if (ivNobility != null) {
ivNobility.setImageDrawable(null);
Glide.with(ivNobility.getContext()).clear(ivNobility);
@@ -576,17 +608,13 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter<EMMessageInfo, Ba
ivCharm.setImageDrawable(null);
Glide.with(ivCharm.getContext()).clear(ivCharm);
}
// if (ivTitle != null) {
// ivTitle.setImageDrawable(null);
// Glide.with(ivTitle.getContext()).clear(ivTitle);
// }
} catch (Exception e) {
e.printStackTrace();
}
super.onViewRecycled(holder);
}
/**
* 清除数据
*

View File

@@ -65,8 +65,8 @@ public class RankingAutcionAdapter extends BaseQuickAdapter<RoomAuction.AuctionL
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -68,8 +68,8 @@ public class RankingCharmListAdapter extends BaseQuickAdapter<CharmRankingResp,
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -43,8 +43,8 @@ public class RoomCharmAdapter extends BaseQuickAdapter<RoomUserCharmListBean, Ba
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -98,8 +98,8 @@ public class RoomOnlineAdapter extends BaseMultiItemQuickAdapter<RoomOnlineBean,
if (url.contains("http")) {
ImageView imageView1 = new ImageView(helper.itemView.getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_14)
);
params.setMargins(0, 0, helper.itemView.getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -89,8 +89,8 @@ public class BidListDialogFragment extends BaseMvpDialogFragment<BidListPresente
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);
@@ -119,8 +119,8 @@ public class BidListDialogFragment extends BaseMvpDialogFragment<BidListPresente
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);
@@ -149,8 +149,8 @@ public class BidListDialogFragment extends BaseMvpDialogFragment<BidListPresente
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -145,6 +145,41 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
public void onDestroyView() {
super.onDestroyView();
EventBus.getDefault().unregister(this);
// 清理资源,防止内存泄漏
if (mSelectGiftNumPopupWindow != null) {
mSelectGiftNumPopupWindow.dismiss();
mSelectGiftNumPopupWindow = null;
}
if (mKeyboardPopupWindow != null) {
mKeyboardPopupWindow.dismiss();
mKeyboardPopupWindow = null;
}
if (currentDialog != null) {
currentDialog.dismiss();
currentDialog = null;
}
// 清理适配器引用
if (gifyuseradapter != null) {
gifyuseradapter.setOnItemClickListener(null);
gifyuseradapter = null;
}
// 清理Fragment列表
if (fragmentList != null) {
fragmentList.clear();
fragmentList = null;
}
// 清理其他引用
roomInfoResp = null;
userInfo = null;
rewardUserBeanList = null;
giftLabelBeanList = null;
roonGiftModel = null;
giftModel = null;
}
@Override

View File

@@ -132,8 +132,8 @@ public class RoomHostAddFragment extends BaseMvpDialogFragment<RoomHostPresenter
if (url.contains("http")) {
ImageView imageView = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);

View File

@@ -186,9 +186,13 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
}
public FriendshipRoomFragment(){}
public FriendshipRoomFragment(RoomInfoResp roomInfoResp){
this.roomInfoResp = roomInfoResp;
}
// TODO: Rename and change types and number of parameters
public static FriendshipRoomFragment newInstance() {
FriendshipRoomFragment fragment = new FriendshipRoomFragment();
public static FriendshipRoomFragment newInstance(RoomInfoResp roomInfoResp) {
FriendshipRoomFragment fragment = new FriendshipRoomFragment(roomInfoResp);
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
@@ -271,6 +275,36 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
// 设置默认状态
updateFriendshipState(FriendshipPartType.WAIT);
initPopupWindow();
roomId = roomInfoResp.getRoom_info().getRoom_id();
for (int i = 0; i < roomInfoResp.getRoom_info().getPit_list().size(); i++) {
RoomPitBean roomPitBean = roomInfoResp.getRoom_info().getPit_list().get(i);
if (roomPitBean.getPit_number().equals("7") || roomPitBean.getPit_number().equals("8")) {
continue;
}
if (Integer.parseInt(!roomPitBean.getPit_number().isEmpty() ? roomPitBean.getPit_number() : "0") > 10) {
continue;
}
RoomFriendshipWheatView object = mWheatViews.get(Integer.parseInt(roomPitBean.getPit_number()) - 1);
if (object != null) {
object.setData(roomPitBean);
} else {
continue;
}
}
if (roomInfoResp.getUser_info().getPit_number() > 0) {
myPitNumber = roomInfoResp.getUser_info().getPit_number();
} else {
myPitNumber = -1;
}
tzblChanged();
updateFriendshipState(FriendshipPartType.fromValue(roomInfoResp.getFriend_info().getStep()));
configGameOptionBtn();
configTime();
configHeart();
configPowerBtn();
initUserViewMap();
}
protected void tzblChanged() {

View File

@@ -223,8 +223,8 @@ public class RankingChildFragment extends BaseMvpFragment<DataListPresenter, Roo
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -84,25 +84,20 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
private int type;
RoomFragment parentFragment;
public static RoomAuctionFragment newInstance() {
public RoomAuctionFragment(){}
public RoomAuctionFragment(RoomInfoResp resp){
roomInfoResp = resp;
}
public static RoomAuctionFragment newInstance(RoomInfoResp resp) {
Bundle args = new Bundle();
RoomAuctionFragment fragment = new RoomAuctionFragment();
RoomAuctionFragment fragment = new RoomAuctionFragment(resp);
fragment.setArguments(args);
return fragment;
}
// public static RoomAuctionFragment newInstance(RoomInfoResp roomInfoResp, int type) {
//
// Bundle args = new Bundle();
//
// RoomAuctionFragment fragment = new RoomAuctionFragment();
// args.putSerializable("roomInfo", roomInfoResp);
// args.putInt("type", type);
// fragment.setArguments(args);
// return fragment;
// }
private SharedViewModel sharedViewModel;
@@ -118,6 +113,7 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
// roomInfoUpdate(data);
// }
// });
return super.onCreateView(inflater, container, savedInstanceState);
}
@@ -323,7 +319,7 @@ public class RoomAuctionFragment extends BaseMvpFragment<RoomAuctionPresenterTow
@Override
protected void initData() {
roomInfoUpdate(roomInfoResp);
}
private void getvjs() {

View File

@@ -88,12 +88,15 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
private String label_id="";
private int remoteUid = -1;
private final ScreenCaptureParameters screenCaptureParameters = new ScreenCaptureParameters();
public static RoomCabinFragment newInstance() {
public RoomCabinFragment(){}
public RoomCabinFragment(RoomInfoResp roomInfoResp){
this.roomInfoResp = roomInfoResp;
}
public static RoomCabinFragment newInstance(RoomInfoResp roomInfoResp) {
Bundle args = new Bundle();
RoomCabinFragment fragment = new RoomCabinFragment();
RoomCabinFragment fragment = new RoomCabinFragment(roomInfoResp);
fragment.setArguments(args);
return fragment;
}

View File

@@ -61,13 +61,20 @@ import java.util.List;
* @description:房间fragment
*/
public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBinding> implements RoomContacts.View {
public static RoomFragment newInstance() {
public static RoomFragment newInstance(RoomInfoResp resp) {
Bundle args = new Bundle();
RoomFragment fragment = new RoomFragment();
RoomFragment fragment = new RoomFragment(resp);
fragment.setArguments(args);
return fragment;
}
public RoomFragment(){
}
public RoomFragment(RoomInfoResp roomInfoResp){
this.mRoomInfoResp = roomInfoResp;
}
private RoomInfoResp mRoomInfoResp;
private String password;
private String roomId;
@@ -92,17 +99,31 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
private RoomCabinFragment roomCabinFragment;// 小黑屋
public QXRoomSeatViewType qxRoomSeatViewType;
private void setRoomSeatViewType() {
if (mRoomInfoResp == null || mRoomInfoResp.getRoom_info() == null){
return;
}
String typeId = mRoomInfoResp.getRoom_info().getType_id();
String labelId = mRoomInfoResp.getRoom_info().getLabel_id();
CommonAppContext.getInstance().lable_id = typeId;
if ("7".equals(typeId)) {
qxRoomSeatViewType = QXRoomSeatViewType.FRIEND;
} else if ("2".equals(typeId)) {
qxRoomSeatViewType = QXRoomSeatViewType.AUCTION;
} else if ("1".equals(typeId) || "3".equals(typeId) || "4".equals(typeId) || "8".equals(typeId)) {
if ("2".equals(labelId)) {
qxRoomSeatViewType = QXRoomSeatViewType.KTV;
} else if ("1".equals(labelId)) {
qxRoomSeatViewType = QXRoomSeatViewType.NORMAL;
}
} else if ("6".equals(typeId)) {
qxRoomSeatViewType = QXRoomSeatViewType.CABIN;
}
}
@Override
public void initArgs(Bundle arguments) {
// mRoomInfoResp = new RoomInfoResp();
// mRoomInfoResp = (RoomInfoResp) arguments.getSerializable("roomInfo");
// password = arguments.getString("password");
// roomId = mRoomInfoResp.getRoom_info().getRoom_id();
// role = mRoomInfoResp.getRoom_info().getRole();
// roomInfo(mRoomInfoResp);
super.initArgs(arguments);
}
@@ -118,27 +139,8 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// 获取 ViewModel
// 通知 Activity Fragment 已就绪
// sharedViewModel.setFragmentReady(true);
//
// // 观察数据变化
// sharedViewModel.getDataForFragment().observe(getViewLifecycleOwner(), data -> {
// if (data != null) {
// // 处理接收到的数据
// refreshData(data, qxRoomSeatViewType);
// // 可选:清除数据以避免重复处理
// // sharedViewModel.clearData();
// }
// });
// sharedViewModel.getSeatViewType().observe(getViewLifecycleOwner(), type -> {
// if (type != null) {
// // 处理数据
// setqxRoomSeatViewType(type);
// }
// });
setRoomSeatViewType();
upRoomInfo(mRoomInfoResp);
return super.onCreateView(inflater, container, savedInstanceState);
}
@@ -210,7 +212,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
private void createSingSongFragment() {
if (singSongFragment == null) {
singSongFragment = SingSongFragment.newInstance();
singSongFragment = SingSongFragment.newInstance(mRoomInfoResp);
// 确保 Fragment 已添加且处于活跃状态再进行操作
// 如果当前状态不允许添加 Fragment则延迟执行
if (isAdded() && getActivity() != null && getView() != null) {
@@ -241,7 +243,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
private void createKtvFragment() {
if (ktvFragment == null) {
ktvFragment = RoomKtvFragment.newInstance();
ktvFragment = RoomKtvFragment.newInstance(mRoomInfoResp);
// 确保 Fragment 已添加且处于活跃状态再进行操作
if (isAdded() && getActivity() != null) {
getChildFragmentManager()
@@ -271,7 +273,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
private void createRoomAuctionFragment() {
if (roomAuctionFragment == null) {
roomAuctionFragment = RoomAuctionFragment.newInstance();
roomAuctionFragment = RoomAuctionFragment.newInstance(mRoomInfoResp);
// 确保 Fragment 已添加且处于活跃状态再进行操作
if (isAdded() && getActivity() != null) {
getChildFragmentManager()
@@ -301,7 +303,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
private void createFriendshipRoomFragment() {
if (friendshipRoomFragment == null) {
friendshipRoomFragment = FriendshipRoomFragment.newInstance();
friendshipRoomFragment = FriendshipRoomFragment.newInstance(mRoomInfoResp);
// 确保 Fragment 已添加且处于活跃状态再进行操作
if (isAdded() && getActivity() != null) {
getChildFragmentManager()
@@ -331,7 +333,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
private void createRoomCabinFragment() {
if (roomCabinFragment == null) {
roomCabinFragment = RoomCabinFragment.newInstance();
roomCabinFragment = RoomCabinFragment.newInstance(mRoomInfoResp);
// 确保 Fragment 已添加且处于活跃状态再进行操作
if (isAdded() && getActivity() != null) {
getChildFragmentManager()
@@ -524,48 +526,43 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
return;
}
// 使用 post 方法确保在 UI 线程执行
getView().post(() -> {
if (mRoomInfoResp != null && mRoomInfoResp.getRoom_info() != null) {
String typeId = mRoomInfoResp.getRoom_info().getType_id();
String labelId = mRoomInfoResp.getRoom_info().getLabel_id();
// getView().post(() -> {
if (mRoomInfoResp != null && mRoomInfoResp.getRoom_info() != null) {
String typeId = mRoomInfoResp.getRoom_info().getType_id();
String labelId = mRoomInfoResp.getRoom_info().getLabel_id();
if ("7".equals(typeId)) {
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
if (friendshipRoomFragment != null && friendshipRoomFragment.isAdded()) {
friendshipRoomFragment.roomInfoUpdate(mRoomInfoResp);
if ("7".equals(typeId)) {
if (friendshipRoomFragment != null && friendshipRoomFragment.isAdded()) {
friendshipRoomFragment.roomInfoUpdate(mRoomInfoResp);
// sharedViewModel.setChildFragmentData(mRoomInfoResp);
}
} else if ("2".equals(typeId)) {
RoomAuctionFragment auctionRoomFragment = findFragmentByTag(RoomAuctionFragment.class);
if (auctionRoomFragment != null && auctionRoomFragment.isAdded()) {
auctionRoomFragment.roomInfoUpdate(mRoomInfoResp);
}
} else if ("2".equals(typeId)) {
if (roomAuctionFragment != null && roomAuctionFragment.isAdded()) {
roomAuctionFragment.roomInfoUpdate(mRoomInfoResp);
// sharedViewModel.setChildFragmentData(mRoomInfoResp);
}
} else if ("1".equals(typeId) || "3".equals(typeId) || "4".equals(typeId) || "8".equals(typeId)) {
if ("2".equals(labelId)) {
RoomKtvFragment roomKtvFragment = findFragmentByTag(RoomKtvFragment.class);
if (roomKtvFragment != null && roomKtvFragment.isAdded()) {
roomKtvFragment.roomInfoUpdate(mRoomInfoResp);
}
} else if ("1".equals(typeId) || "3".equals(typeId) || "4".equals(typeId) || "8".equals(typeId)) {
if ("2".equals(labelId)) {
if (ktvFragment != null && ktvFragment.isAdded()) {
ktvFragment.roomInfoUpdate(mRoomInfoResp);
// sharedViewModel.setChildFragmentData(mRoomInfoResp);
}
} else if ("1".equals(labelId)) {
SingSongFragment singSongFragment = findFragmentByTag(SingSongFragment.class);
if (singSongFragment != null && singSongFragment.isAdded()) {
singSongFragment.roomInfoUpdate(mRoomInfoResp);
}
} else if ("1".equals(labelId)) {
if (singSongFragment != null && singSongFragment.isAdded()) {
singSongFragment.roomInfoUpdate(mRoomInfoResp);
// sharedViewModel.setDataForFragment(mRoomInfoResp);
// sharedViewModel.setChildFragmentData(mRoomInfoResp);
}
}
} else if ("6".equals(typeId)) {
RoomCabinFragment roomCabinFragment = findFragmentByTag(RoomCabinFragment.class);
if (roomCabinFragment != null && roomCabinFragment.isAdded()) {
roomCabinFragment.roomInfoUpdate(mRoomInfoResp);
// sharedViewModel.setChildFragmentData(mRoomInfoResp);
}
}
} else if ("6".equals(typeId)) {
if (roomCabinFragment != null && roomCabinFragment.isAdded()) {
roomCabinFragment.roomInfoUpdate(mRoomInfoResp);
// sharedViewModel.setChildFragmentData(mRoomInfoResp);
}
}
});
}
// });
}
@@ -653,91 +650,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
performLoadSubFragment(qxRoomSeatViewType);
// if (mRoomInfoResp == null || mRoomInfoResp.getRoom_info() == null) return;
// String typeId = mRoomInfoResp.getRoom_info().getType_id();
// String labelId = mRoomInfoResp.getRoom_info().getLabel_id();
//
// Fragment newFragment = null;
//
// if ("1".equals(typeId)) {
// if ("1".equals(labelId)) {
// singSongFragment = SingSongFragment.newInstance();
// newFragment = singSongFragment;
// } else if ("2".equals(labelId)) {
// ktvFragment = RoomKtvFragment.newInstance();
// newFragment = ktvFragment;
// }
// } else if ("2".equals(typeId)) {
// roomAuctionFragment = RoomAuctionFragment.newInstance();
// newFragment = roomAuctionFragment;
// } else if ("6".equals(typeId)) {
// roomCabinFragment = RoomCabinFragment.newInstance();
// newFragment = roomCabinFragment;
// setviewyc();
// } else if ("3".equals(typeId)) {
// if ("1".equals(labelId)) {
// singSongFragment = SingSongFragment.newInstance();
// newFragment = singSongFragment;
// } else if ("2".equals(labelId)) {
// ktvFragment = RoomKtvFragment.newInstance();
// newFragment = ktvFragment;
// }
// } else if ("4".equals(typeId)) {
// if ("1".equals(labelId)) {
// singSongFragment = SingSongFragment.newInstance();
// newFragment = singSongFragment;
// } else if ("2".equals(labelId)) {
// ktvFragment = RoomKtvFragment.newInstance();
// newFragment = ktvFragment;
// }
// } else if ("7".equals(typeId)) {
// friendshipRoomFragment = FriendshipRoomFragment.newInstance();
// newFragment = friendshipRoomFragment;
// }else if ("8".equals(typeId)){
// if ("1".equals(labelId)) {
// singSongFragment = SingSongFragment.newInstance();
// newFragment = singSongFragment;
// } else if ("2".equals(labelId)) {
// ktvFragment = RoomKtvFragment.newInstance();
// newFragment = ktvFragment;
// }
// }
//
// if (newFragment != null) {
// replaceNestedFragment(newFragment, R.id.container);
// }
//
// setview();
//
// if (mRoomInfoResp.getUser_info().getPit_number() != 0) {
// AgoraManager.getInstance(getActivity()).muteLocalAudioStream(false);
// ((RoomActivity) getActivity()).switchMic(2);
// } else {
// AgoraManager.getInstance(getActivity()).muteLocalAudioStream(true);
// }
// // 延迟执行更新,确保 Fragment 已经添加完成
//// if (getActivity() != null && isAdded()) {
//// getView().post(() -> updateChildFragmentViews());
//// }
//
//// if (getActivity() instanceof RoomActivity) {
//// if (mRoomInfoResp.getRoom_info().getType_id().equals("6")) {
//// ((RoomActivity) getActivity()).changeBackground(com.xscm.moduleutil.R.mipmap.cabin_bj);
//// ((RoomActivity) getActivity()).setvisibTop(false);
//// } else if (mRoomInfoResp.getRoom_info().getType_id().equals("7")) {
//// if (mRoomInfoResp.getRoom_info().getRoom_background() == null || mRoomInfoResp.getRoom_info().getRoom_background().equals("")) {
//// ((RoomActivity) getActivity()).changeBackground(com.xscm.moduleutil.R.mipmap.jiaoy_bj);
//// } else {
//// ((RoomActivity) getActivity()).changeBackgroundColor(mRoomInfoResp.getRoom_info().getRoom_background());
//// }
//// ((RoomActivity) getActivity()).setvisibTop(true);
//// } else {
//// ((RoomActivity) getActivity()).changeBackgroundColor(mRoomInfoResp.getRoom_info().getRoom_background());
//// ((RoomActivity) getActivity()).setvisibTop(true);
//// }
//// }
//
// updateChildFragmentViews();
}
private void performLoadSubFragment(QXRoomSeatViewType qxRoomSeatViewType) {
this.qxRoomSeatViewType = qxRoomSeatViewType;
@@ -749,44 +661,44 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
if ("1".equals(typeId)) {
if ("1".equals(labelId)) {
singSongFragment = SingSongFragment.newInstance();
singSongFragment = SingSongFragment.newInstance(mRoomInfoResp);
newFragment = singSongFragment;
} else if ("2".equals(labelId)) {
ktvFragment = RoomKtvFragment.newInstance();
ktvFragment = RoomKtvFragment.newInstance(mRoomInfoResp);
newFragment = ktvFragment;
}
} else if ("2".equals(typeId)) {
roomAuctionFragment = RoomAuctionFragment.newInstance();
roomAuctionFragment = RoomAuctionFragment.newInstance(mRoomInfoResp);
newFragment = roomAuctionFragment;
} else if ("6".equals(typeId)) {
roomCabinFragment = RoomCabinFragment.newInstance();
roomCabinFragment = RoomCabinFragment.newInstance(mRoomInfoResp);
newFragment = roomCabinFragment;
setviewyc();
} else if ("3".equals(typeId)) {
if ("1".equals(labelId)) {
singSongFragment = SingSongFragment.newInstance();
singSongFragment = SingSongFragment.newInstance(mRoomInfoResp);
newFragment = singSongFragment;
} else if ("2".equals(labelId)) {
ktvFragment = RoomKtvFragment.newInstance();
ktvFragment = RoomKtvFragment.newInstance(mRoomInfoResp);
newFragment = ktvFragment;
}
} else if ("4".equals(typeId)) {
if ("1".equals(labelId)) {
singSongFragment = SingSongFragment.newInstance();
singSongFragment = SingSongFragment.newInstance(mRoomInfoResp);
newFragment = singSongFragment;
} else if ("2".equals(labelId)) {
ktvFragment = RoomKtvFragment.newInstance();
ktvFragment = RoomKtvFragment.newInstance(mRoomInfoResp);
newFragment = ktvFragment;
}
} else if ("7".equals(typeId)) {
friendshipRoomFragment = FriendshipRoomFragment.newInstance();
friendshipRoomFragment = FriendshipRoomFragment.newInstance(mRoomInfoResp);
newFragment = friendshipRoomFragment;
}else if ("8".equals(typeId)){
if ("1".equals(labelId)) {
singSongFragment = SingSongFragment.newInstance();
singSongFragment = SingSongFragment.newInstance(mRoomInfoResp);
newFragment = singSongFragment;
} else if ("2".equals(labelId)) {
ktvFragment = RoomKtvFragment.newInstance();
ktvFragment = RoomKtvFragment.newInstance(mRoomInfoResp);
newFragment = ktvFragment;
}
}
@@ -907,64 +819,19 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
public void upRoomInfo(RoomInfoResp roomInfoResp) {
mRoomInfoResp = roomInfoResp;
loadSubFragment(qxRoomSeatViewType);
updateChildFragmentViewsUp();
// updateChildFragmentViewsUp();
// upView(qxRoomSeatViewType);
}
private void updateChildFragmentViewsUp() {
// 使用弱引用避免内存泄漏
if (getActivity() == null || !isAdded()) {
return;
}
// 使用 post 方法确保在 UI 线程执行
getView().post(() -> {
if (mRoomInfoResp != null && mRoomInfoResp.getRoom_info() != null) {
String typeId = mRoomInfoResp.getRoom_info().getType_id();
String labelId = mRoomInfoResp.getRoom_info().getLabel_id();
if ("7".equals(typeId)) {
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
if (friendshipRoomFragment != null && friendshipRoomFragment.isAdded()) {
friendshipRoomFragment.upRoomInfo(mRoomInfoResp);
}
} else if ("2".equals(typeId)) {
RoomAuctionFragment auctionRoomFragment = findFragmentByTag(RoomAuctionFragment.class);
if (auctionRoomFragment != null && auctionRoomFragment.isAdded()) {
auctionRoomFragment.upRoomInfo(mRoomInfoResp);
}
} else if ("1".equals(typeId) || "3".equals(typeId) || "4".equals(typeId) || "8".equals(typeId)) {
if ("2".equals(labelId)) {
RoomKtvFragment roomKtvFragment = findFragmentByTag(RoomKtvFragment.class);
if (roomKtvFragment != null && roomKtvFragment.isAdded()) {
roomKtvFragment.upRoomInfo(mRoomInfoResp);
}
} else if ("1".equals(labelId)) {
SingSongFragment singSongFragment = findFragmentByTag(SingSongFragment.class);
if (singSongFragment != null && singSongFragment.isAdded()) {
singSongFragment.upRoomInfo(mRoomInfoResp);
}
}
} else if ("6".equals(typeId)) {
RoomCabinFragment roomCabinFragment = findFragmentByTag(RoomCabinFragment.class);
if (roomCabinFragment != null && roomCabinFragment.isAdded()) {
roomCabinFragment.upRoomInfo(mRoomInfoResp);
}
}
}
});
}
public void setview() {//这里是当进入电影放房的时候,如果是排麦模式,并且不是电影放的时候,就隐藏排麦视图
if (mRoomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1") && !mRoomInfoResp.getRoom_info().getType_id().equals("6")) {
// mBinding.clFirstCharge.setVisibility(View.VISIBLE);
if (getActivity() instanceof RoomActivity) {
if (getActivity() instanceof RoomActivity){
if (mRoomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1") && !mRoomInfoResp.getRoom_info().getType_id().equals("6")) {
((RoomActivity) getActivity()).clFirstCharge(true);
} else {
((RoomActivity) getActivity()).clFirstCharge(false);
}
} else {
// mBinding.clFirstCharge.setVisibility(View.GONE);
((RoomActivity) getActivity()).clFirstCharge(false);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)

View File

@@ -68,11 +68,14 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
BaseQuickAdapter<RoomPitBean, BaseViewHolder> adapter;
private RoomOnline online;
public RoomKtvFragment() {}
public RoomKtvFragment(RoomInfoResp roomInfoResp) {
this.roomInfoResp = roomInfoResp;
}
public static RoomKtvFragment newInstance() {
RoomKtvFragment fragment = new RoomKtvFragment();
public static RoomKtvFragment newInstance(RoomInfoResp roomInfoResp) {
RoomKtvFragment fragment = new RoomKtvFragment(roomInfoResp);
Bundle args = new Bundle();
// args.putSerializable("roomInfo", roomInfoResp);
fragment.setArguments(args);
return fragment;
}

View File

@@ -74,6 +74,8 @@ import com.xscm.moduleutil.widget.WheatLayoutManager;
import com.xscm.moduleutil.widget.WheatLayoutSingManager;
import com.xscm.moduleutil.widget.dialog.CommonDialog;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -82,6 +84,7 @@ import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* @author qx
@@ -109,13 +112,20 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
private RoomFragment parentFragment;
List<RoomPitBean> pitList;
private SharedViewModel sharedViewModel;
public static SingSongFragment newInstance() {
public static SingSongFragment newInstance(RoomInfoResp roomInfoResp) {
Bundle args = new Bundle();
SingSongFragment fragment = new SingSongFragment();
SingSongFragment fragment = new SingSongFragment(roomInfoResp);
fragment.setArguments(args);
return fragment;
}
public SingSongFragment() {
}
public SingSongFragment(RoomInfoResp roomInfoResp) {
this.roomInfoResp = roomInfoResp;
}
@Override
public void initArgs(Bundle arguments) {
super.initArgs(arguments);
@@ -131,21 +141,30 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
@Override
protected void initData() {
upDtaView();
Observable.timer(20, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> {
upDtaView(true);
});
Observable.timer(500, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> {
upDtaView(false);
});
}
public void upRoomInfo(RoomInfoResp roomInfoResp) {
this.roomInfoResp = roomInfoResp;
}
private void upDtaView() {
private void upDtaView(boolean isFirst) {
pitList = new ArrayList<>();
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setvisibTop(true);
}
// 初始化 PopupWindow
initPopupWindow();
isWhether();
isWhether2(isFirst);
parentFragment = (RoomFragment) getParentFragment();
}
@@ -162,6 +181,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
// roomInfoUpdate(data);
// }
// });
roomId = roomInfoResp.getRoom_info().getRoom_id();
return super.onCreateView(inflater, container, savedInstanceState);
}
@@ -207,8 +227,9 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
/// 抱麦、锁麦
private void initPopupWindow() {
if (requireContext()==null) return;
// 加载弹出视图布局
View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popup_menu, null);
View popupView = LayoutInflater.from(requireContext()).inflate(R.layout.popup_menu, null,false);
// 创建 PopupWindow
// popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
@@ -376,67 +397,72 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
return false; // 不是快速重复点击
}
private void isWhether2() {
private void isWhether2(boolean isFirst) {
mBinding.flexboxLayout.setVisibility(View.VISIBLE);
mBinding.cl.setVisibility(View.GONE);
mBinding.btSta.setOnClickListener(this);
mBinding.btStop.setOnClickListener(this);
mBinding.imMkf.setOnClickListener(this);
FlexboxLayout flexboxLayout = mBinding.flexboxLayout;
wheatLayoutSingManager = new WheatLayoutSingManager(requireContext(), flexboxLayout);
wheatLayoutSingManager.setOnWheatClickListener(new WheatLayoutSingManager.OnWheatClickListener() {
@Override
public void onWheatClick(RoomSingSongWheatView view, int pitNumber1) {
if (!isFirst) {
wheatLayoutSingManager.setOnWheatClickListener(new WheatLayoutSingManager.OnWheatClickListener() {
@Override
public void onWheatClick(RoomSingSongWheatView view, int pitNumber1) {
// RoomPitBean pitBean = roomInfoResp.getRoom_info().getPit_list().get(pitNumber1 - 1);
RoomPitBean pitBean = view.pitBean;
RoomPitBean pitBean = view.pitBean;
// 可选:点击事件处理
Log.d("Wheat", "Clicked pit: " + pitNumber1);
if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
if (isFastDoubleClick(pitBean.getUser_id(), pitBean.getPit_number())) {
return; // 快速重复点击,直接返回
}
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
// 点击的麦位是当前麦位
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
} else {
// 点击的麦位不是当前麦位
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
if (cheackWether(pitBean.getPit_number())) {
pitNumber = pitBean.getPit_number();
roomPitBean = pitBean;
showPopupMenu(view); // v 是点击的按钮视图
} else if (pitNumber1 == 10) {
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) {
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
// 可选:点击事件处理
Log.d("Wheat", "Clicked pit: " + pitNumber1);
if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
if (isFastDoubleClick(pitBean.getUser_id(), pitBean.getPit_number())) {
return; // 快速重复点击,直接返回
}
// RoomOnlineDialogFragment.show(roomId, pitNumber1 - 1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
// 点击的麦位是当前麦位
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
} else {
MvpPre.applyPit(roomId, pitNumber1 - 1 + "");
// 点击的麦位不是当前麦位
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
if (cheackWether(pitBean.getPit_number())) {
pitNumber = pitBean.getPit_number();
roomPitBean = pitBean;
showPopupMenu(view); // v 是点击的按钮视图
} else if (pitNumber1 == 10) {
if (!isFastDoubleClick("online_dialog", pitNumber1 + "")) {
RoomOnlineDialogFragment.show(roomId, pitNumber1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
// RoomOnlineDialogFragment.show(roomId, pitNumber1 - 1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
} else {
MvpPre.applyPit(roomId, pitNumber1 + "");
}
}
}
}
@Override
public void onMakeWheatClick(RoomSingSongWheatView view, int pitNumber) {
@Override
public void onMakeWheatClick(RoomSingSongWheatView view, int pitNumber) {
}
}
@Override
public void onMeilingClick(RoomSingSongWheatView view, int pitNumber) {
ToastUtils.show("点击魅力值");
}
});
if (!ObjectUtils.isEmpty(roomInfoResp.getRoom_info().getPit_list()) && roomInfoResp.getRoom_info().getPit_list().size() == 10) {
wheatLayoutSingManager.setWheatData(roomInfoResp.getRoom_info().getPit_list());
@Override
public void onMeilingClick(RoomSingSongWheatView view, int pitNumber) {
ToastUtils.show("点击魅力值");
}
});
}
if (!ObjectUtils.isEmpty(roomInfoResp.getRoom_info().getPit_list()) && roomInfoResp.getRoom_info().getPit_list().size() == 10) {
wheatLayoutSingManager.setWheatData(roomInfoResp.getRoom_info().getPit_list(), isFirst);
}
}
private void upWheter() {
if (roomInfoResp.getPk_info() == null) {
if (!ObjectUtils.isEmpty(roomInfoResp.getRoom_info().getPit_list()) && roomInfoResp.getRoom_info().getPit_list().size() == 10) {
wheatLayoutSingManager.setWheatData(roomInfoResp.getRoom_info().getPit_list());
wheatLayoutSingManager.setWheatData(roomInfoResp.getRoom_info().getPit_list(), false);
}
// initWheatLayout();
} else {
@@ -507,7 +533,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
pitBean.setCharm("");
pitList.add(pitBean);
}
wheatLayoutSingManager.setWheatData(pitList);
wheatLayoutSingManager.setWheatData(pitList,false);
} else {
// if (roomInfoResp.getPk_info() == null) {
//
@@ -781,7 +807,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
@Override
public void postRoomInfo(RoomInfoResp resp) {
roomInfoResp = resp;
isWhether2();
isWhether2(false);
tzblChanged();
}

View File

@@ -80,7 +80,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/ll_vertical_scroll"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_100"
/>