messagesToProcess;
- synchronized (hourlyQueueLock) {
- if (hourlyMessageQueue.isEmpty()) {
- isHourlyProcessing = false;
- return;
- }
- // 每次只处理1条数据
- messagesToProcess = new ArrayList<>();
- messagesToProcess.add(hourlyMessageQueue.remove(0));
- }
-
- // 只展示一条数据
- HourlyBean bean = messagesToProcess.get(0);
- showHourlyFloatingMessage(bean, 0);
- }
-
- private void showHourlyFloatingMessage(HourlyBean hourlyBean, int positionIndex) {
- try {
- ViewGroup decorView = (ViewGroup) getWindow().getDecorView();
-
- // 创建新的视图
- View hourlyView = LayoutInflater.from(this).inflate(R.layout.item_hourly_floating, null);
- FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
- FrameLayout.LayoutParams.MATCH_PARENT,
- FrameLayout.LayoutParams.WRAP_CONTENT);
-
- // 设置固定的垂直位置
- int baseMargin = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 70);
- layoutParams.topMargin = baseMargin;
- layoutParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
- hourlyView.setLayoutParams(layoutParams);
-
- decorView.addView(hourlyView);
-
- // 保存视图引用
- currentHourlyViews.put(positionIndex, hourlyView);
-
- // 更新视图数据
- updateHourlyFloatingViewData(hourlyView, hourlyBean);
-
- // 根据类型获取展示时间
- long displayDuration = getDisplayDurationByType(Integer.parseInt(hourlyBean.getRank_number()));
-
- // 启动动画
- resetAndStartHourlyAnimation(hourlyView, displayDuration, () -> {
- // 动画结束后清理视图
- if (hourlyView.getParent() != null) {
- decorView.removeView(hourlyView);
- }
- currentHourlyViews.remove(positionIndex);
-
- // 检查是否还有更多消息需要处理
- synchronized (hourlyQueueLock) {
- if (hourlyMessageQueue.isEmpty()) {
- isHourlyProcessing = false;
- } else {
- // 当前视图消失后处理下一条消息
- processHourlyMessages();
- }
- }
- });
- } catch (Exception e) {
- LogUtils.e("显示小时榜飘屏失败", e);
- }
- }
-
- private long getDisplayDurationByType(int type) {
- // 根据不同类型设置不同的展示时间(毫秒)
- switch (type) {
- case 1: // 第一名
- return 5000; // 5秒
- case 2: // 第二名
- return 4000; // 4秒
- case 3: // 第三名
- return 3000; // 3秒
- default:
- return 3000; // 默认3秒
- }
- }
-
- private void updateHourlyFloatingViewData(View view, HourlyBean hourlyBean) {
- TextView tvName = view.findViewById(R.id.tv_name);
- ImageView ivAvatar = view.findViewById(R.id.im_h_t);
-
- if (hourlyBean != null) {
- // 根据排名设置不同的显示
- switch (hourlyBean.getRank_number()) {
- case "1":
-// tvName.setText("新科状元! ["+hourlyBean.getRoom_name()+"] 独占鳌头!");
- setColoredText(tvName, "新科状元! [", hourlyBean.getRoom_name(), "] 独占鳌头!", R.color.color_FFFA63);
- ivAvatar.setImageResource(R.mipmap.hourl_top1);
- break;
- case "2":
-// tvName.setText("金榜榜眼! ["+hourlyBean.getRoom_name()+"] 才气逼人!");
- setColoredText(tvName, "金榜榜眼! [", hourlyBean.getRoom_name(), "] 才气逼人!", R.color.color_FFFA63);
-
- ivAvatar.setImageResource(R.mipmap.hourl_top2);
- break;
- case "3":
- setColoredText(tvName, "风采探花! [", hourlyBean.getRoom_name(), "] 实力绽放!", R.color.color_1FFFE5);
-// tvName.setText("风采探花! ["+hourlyBean.getRoom_name()+"] 实力绽放!");
-
- ivAvatar.setImageResource(R.mipmap.hourl_top3);
- break;
- default:
- tvName.setVisibility(View.GONE);
- ivAvatar.setVisibility(View.GONE);
- break;
- }
-
- }
- }
-
- // 设置带颜色的文本
- // 设置带颜色的文本
- private void setColoredText(TextView textView, String prefix, String roomName, String suffix, int colorRes) {
- String fullText = prefix + roomName + suffix;
- SpannableStringBuilder builder = new SpannableStringBuilder(fullText);
-
- // 先为整个文本设置白色
- builder.setSpan(
- new ForegroundColorSpan(ContextCompat.getColor(this, R.color.white)),
- 0,
- fullText.length(),
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
- );
-
- // 查找房间名在文本中的位置
- int start = fullText.indexOf("[");
- int end = fullText.indexOf("]") + 1;
-
- if (start >= 0 && end > start) {
- // 为房间名部分设置指定颜色
- builder.setSpan(
- new ForegroundColorSpan(ContextCompat.getColor(this, colorRes)),
- start,
- end,
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
- );
- }
-
- textView.setText(builder);
- }
-
- private void resetAndStartHourlyAnimation(View view, long displayDuration, Runnable onAnimationEnd) {
- try {
- int screenWidth = getScreenWidth();
- // 设置初始位置:在屏幕右侧外部
- view.setTranslationX(screenWidth);
-
- // 进入动画
- ObjectAnimator enterAnimator = ObjectAnimator.ofFloat(view, "translationX", screenWidth, 0f);
- enterAnimator.setDuration(500);
- enterAnimator.setInterpolator(new DecelerateInterpolator());
- enterAnimator.start();
-
- // 停留后退出动画
- view.postDelayed(() -> {
- try {
- ObjectAnimator exitAnimator = ObjectAnimator.ofFloat(view, "translationX", 0f, -screenWidth);
- exitAnimator.setDuration(500);
- exitAnimator.setInterpolator(new AccelerateInterpolator());
- exitAnimator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- onAnimationEnd.run();
- }
-
- @Override
- public void onAnimationCancel(Animator animation) {
- onAnimationEnd.run();
- }
- });
- exitAnimator.start();
- } catch (Exception e) {
- LogUtils.e("小时榜退出动画执行失败", e);
- onAnimationEnd.run();
- }
- }, displayDuration); // 根据类型设置的展示时间
-
- } catch (Exception e) {
- LogUtils.e("小时榜动画启动失败", e);
- onAnimationEnd.run();
- }
- }
-
- private void clearAllHourlyViews() {
- ViewGroup decorView = (ViewGroup) getWindow().getDecorView();
- for (View view : currentHourlyViews.values()) {
- if (view.getParent() != null) {
- decorView.removeView(view);
- }
- }
- currentHourlyViews.clear();
- }
-
- /// 礼物特效 - MQTT消息处理
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void onMessageReceived(MqttBean mqttBean) {
- LogUtils.e("收到MQTT", mqttBean);
- if (mqttBean == null) return;
- if (SpUtil.getFloatingScreen() == 1) {
- synchronized (mqttQueueLock) {
-
- mqttMessageQueue.addAll(mqttBean.getList());
-// if (!isMqttPlaying) {
-// isMqttPlaying = true;
- processNextMqttMessage();
-// }
- }
- } else {
- mqttMessageQueue.clear();
- }
- }
-
- /// XLH消息处理
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void onEvent(XLHBean event) {
- LogUtils.e("收到XLH", event);
- if (event == null) return;
- if (event.getText()==null || event.getText().isEmpty()) return;
- if (SpUtil.getFloatingScreen() == 1) {
- synchronized (xlhQueueLock) {
- xlhMessageQueue.add(event);
- if (!isXlhPlaying) {
- isXlhPlaying = true;
- processNextXlhMessage();
- }
- }
- } else {
- xlhMessageQueue.clear();
- }
- }
-
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void onEvent(RedBean event){
- LogUtils.e("收到红包", event);
- if (event==null) return;
- if (SpUtil.getFloatingScreen()==1){
-
- synchronized (RedQueueLock) {
- redMessageQueue.add(event);
- if (!isRedPlaying) {
- isRedPlaying = true;
- processNextRedMessage();
- }
- }
- } else {
- redMessageQueue.clear();
- }
- }
-
- private void processNextRedMessage() {
- RedBean redBean;
- synchronized (RedQueueLock) {
- if (redMessageQueue.isEmpty()) {
- isRedPlaying = false;
- return;
- }
- redBean = redMessageQueue.remove(0);
- }
- showPiaoPingMessageRed(redBean);
- }
-
- private void showPiaoPingMessageRed(RedBean redBean){
- try {
- // 清理之前的视图(如果存在)
- if (currentRedView != null && currentRedView.getParent() != null) {
- ViewGroup parent = (ViewGroup) currentRedView.getParent();
- parent.removeView(currentRedView);
- }
-
- if (decorView2 == null) {
- decorView2 = (ViewGroup) getWindow().getDecorView();
- }
-
- currentRedView = LayoutInflater.from(this).inflate(R.layout.item_piaoping_red, null);
- FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
- FrameLayout.LayoutParams.MATCH_PARENT,
- FrameLayout.LayoutParams.WRAP_CONTENT);
- layoutParams.topMargin = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 140);
- layoutParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
- currentRedView.setLayoutParams(layoutParams);
- decorView2.addView(currentRedView);
-
- updateRedFloatingViewData(currentRedView, redBean);
- // 播放红包音效
- playRedPacketSound();
- resetAndStartXlhAnimation(currentRedView, () -> {
- // 清理当前视图
- if (currentRedView != null && currentRedView.getParent() != null) {
- ViewGroup parent = (ViewGroup) currentRedView.getParent();
- parent.removeView(currentRedView);
- }
- currentRedView = null;
-
- // 处理队列中的下一条消息
- synchronized (RedQueueLock) {
- isRedPlaying = false;
- processNextRedMessage();
- }
- });
- } catch (Exception e) {
- LogUtils.e("显示红包飘屏失败", e);
- // 出现异常时继续处理队列
- synchronized (RedQueueLock) {
- isRedPlaying = false;
- processNextRedMessage();
- }
- }
- }
- // 在类中添加成员变量
- private MediaPlayer redPacketMediaPlayer = null;
- private boolean isRedPacketMediaPrepared = false;
- // 添加播放红包音效的方法
- private void playRedPacketSound() {
- try {
- if (!isRedPacketMediaPrepared) {
- // 第一次初始化MediaPlayer
- if (redPacketMediaPlayer == null) {
- redPacketMediaPlayer = MediaPlayer.create(this, R.raw.red_packet_come); // 假设音效文件名为red_packet_sound.mp3
- redPacketMediaPlayer.setOnPreparedListener(mp -> {
- isRedPacketMediaPrepared = true;
- mp.start();
- });
- redPacketMediaPlayer.setOnCompletionListener(mp -> {
- // 播放完成后重置,以便下次重新播放
- try {
- mp.seekTo(0);
- } catch (Exception e) {
- LogUtils.e("MediaPlayer重置失败", e);
- }
- });
- }
-
- if (redPacketMediaPlayer != null) {
- redPacketMediaPlayer.prepareAsync(); // 异步准备
- }
- } else {
- // 已经准备好了,直接重新播放
- if (redPacketMediaPlayer != null && !redPacketMediaPlayer.isPlaying()) {
- redPacketMediaPlayer.seekTo(0);
- redPacketMediaPlayer.start();
- }
- }
- } catch (Exception e) {
- LogUtils.e("播放红包音效失败", e);
- isRedPacketMediaPrepared=false;
- }
- }
-
- private void updateRedFloatingViewData(View view, RedBean redBean){
- TextView textView = view.findViewById(R.id.tv_name);
-
- if (redBean != null) {
- String fullText = redBean.getText();
- if (redBean.getNickname() != null && redBean.getRoom_name() != null) {
- SpannableStringBuilder builder = new SpannableStringBuilder(fullText);
-
- // 为用户名设置蓝色
- int userNameStart = fullText.indexOf(redBean.getNickname());
- if (userNameStart >= 0) {
- builder.setSpan(
- new ForegroundColorSpan(ContextCompat.getColor(this, R.color.colorPrimary)),
- userNameStart,
- userNameStart + redBean.getNickname().length(),
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
- );
- }
-
- // 为房间名设置蓝色
- int roomNameStart = fullText.indexOf(redBean.getRoom_name());
- if (roomNameStart >= 0) {
- builder.setSpan(
- new ForegroundColorSpan(ContextCompat.getColor(this, R.color.colorPrimary)),
- roomNameStart,
- roomNameStart + redBean.getRoom_name().length(),
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
- );
- }
-
- textView.setText(builder);
- } else {
- textView.setText(fullText);
- }
- } else {
- textView.setText("");
- }
-
- view.setOnClickListener(v -> {
- // 点击时执行跳转操作
- handleRedItemClick(redBean);
- });
- }
-
- // 处理下一个MQTT消息
- private void processNextMqttMessage() {
- MqttBean.ListBean mqttBean;
- synchronized (mqttQueueLock) {
- if (mqttMessageQueue.isEmpty()) {
- isMqttPlaying = false;
- return;
- }
- mqttBean = mqttMessageQueue.remove(0);
- }
- showFloatingMessage(mqttBean);
- }
-
- // 处理下一个XLH消息
- private void processNextXlhMessage() {
- XLHBean xlhBean;
- synchronized (xlhQueueLock) {
- if (xlhMessageQueue.isEmpty()) {
- isXlhPlaying = false;
- return;
- }
- xlhBean = xlhMessageQueue.remove(0);
- }
- showPiaoPingMessageXlh(xlhBean);
- }
-
- ViewGroup decorView;//礼物的
- ViewGroup decorView1;//巡乐会的
- ViewGroup decorView2;//红包的
-
- private void showFloatingMessage(MqttBean.ListBean mqttBean) {
-
-// QXGiftDriftView.getInstance( this).addGiftModel(mqttBean);
-
-
- try {
- // 清理之前的视图(如果存在)
- if (currentMqttView != null && currentMqttView.getParent() != null) {
- ViewGroup parent = (ViewGroup) currentMqttView.getParent();
- parent.removeView(currentMqttView);
- }
-
- if (decorView == null) {
- decorView = (ViewGroup) getWindow().getDecorView();
- }
-
- currentMqttView = LayoutInflater.from(this).inflate(R.layout.item_piaoping, null);
- FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
- FrameLayout.LayoutParams.MATCH_PARENT,
- FrameLayout.LayoutParams.WRAP_CONTENT);
- layoutParams.topMargin = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 70);
- layoutParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
- currentMqttView.setLayoutParams(layoutParams);
- decorView.addView(currentMqttView);
-
- updateFloatingViewData(currentMqttView, mqttBean);
- resetAndStartMqttAnimation(currentMqttView, () -> {
- // 清理当前视图
- if (currentMqttView != null && currentMqttView.getParent() != null) {
- ViewGroup parent = (ViewGroup) currentMqttView.getParent();
- parent.removeView(currentMqttView);
- }
- currentMqttView = null;
-
- // 处理队列中的下一条消息
- synchronized (mqttQueueLock) {
- isMqttPlaying = false;
- processNextMqttMessage();
- }
- });
- } catch (Exception e) {
- LogUtils.e("显示MQTT飘屏失败", e);
- // 出现异常时继续处理队列
- synchronized (mqttQueueLock) {
- isMqttPlaying = false;
- processNextMqttMessage();
- }
- }
- }
-
- private void showPiaoPingMessageXlh(XLHBean event) {
- try {
- // 清理之前的视图(如果存在)
- if (currentXlhView != null && currentXlhView.getParent() != null) {
- ViewGroup parent = (ViewGroup) currentXlhView.getParent();
- parent.removeView(currentXlhView);
- }
-
- if (decorView1 == null) {
- decorView1 = (ViewGroup) getWindow().getDecorView();
- }
-
- currentXlhView = LayoutInflater.from(this).inflate(R.layout.item_piaoping_xlh, null);
- FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
- FrameLayout.LayoutParams.MATCH_PARENT,
- FrameLayout.LayoutParams.WRAP_CONTENT);
- layoutParams.topMargin = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 100);
- layoutParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
- currentXlhView.setLayoutParams(layoutParams);
- decorView1.addView(currentXlhView);
-
- updateXlhFloatingViewData(currentXlhView, event);
- resetAndStartXlhAnimation(currentXlhView, () -> {
- // 清理当前视图
- if (currentXlhView != null && currentXlhView.getParent() != null) {
- ViewGroup parent = (ViewGroup) currentXlhView.getParent();
- parent.removeView(currentXlhView);
- }
- currentXlhView = null;
-
- // 处理队列中的下一条消息
- synchronized (xlhQueueLock) {
- isXlhPlaying = false;
- processNextXlhMessage();
- }
- });
- } catch (Exception e) {
- LogUtils.e("显示XLH飘屏失败", e);
- // 出现异常时继续处理队列
- synchronized (xlhQueueLock) {
- isXlhPlaying = false;
- processNextXlhMessage();
- }
- }
- }
-
- private void resetAndStartMqttAnimation(View view, Runnable onAnimationEnd) {
- try {
- int screenWidth = getScreenWidth();
- // 设置初始位置:在屏幕右侧外部(完全不可见)
- view.setTranslationX(screenWidth);
-
-
- TranslateAnimation enterAnim = new TranslateAnimation(
- Animation.ABSOLUTE, screenWidth,
- Animation.ABSOLUTE, (screenWidth - SystemUtils.getWidth(316)) / 2,
- Animation.ABSOLUTE, 0,
- Animation.ABSOLUTE, 0
- );
- enterAnim.setDuration(1500);
- enterAnim.setInterpolator(new DecelerateInterpolator(2.0f));
- enterAnim.setAnimationListener(new Animation.AnimationListener() {
- @Override
- public void onAnimationStart(Animation animation) {
- }
-
- @Override
- public void onAnimationEnd(Animation animation) {
- // 停留后退出
- postDelayed(() -> {
- TranslateAnimation exitAnim = new TranslateAnimation(
- Animation.ABSOLUTE, (screenWidth - SystemUtils.getWidth(316)) / 2,
- Animation.ABSOLUTE, -screenWidth,
- Animation.ABSOLUTE, 0,
- Animation.ABSOLUTE, 0
- );
- exitAnim.setDuration(3000);
- exitAnim.setInterpolator(new DecelerateInterpolator(2f));
- exitAnim.setAnimationListener(new Animation.AnimationListener() {
- @Override
- public void onAnimationStart(Animation animation) {
- }
-
- @Override
- public void onAnimationEnd(Animation animation) {
- // 移除视图并处理下一个
- onAnimationEnd.run();
- }
-
- @Override
- public void onAnimationRepeat(Animation animation) {
- }
- });
- view.startAnimation(exitAnim);
- }, 5000); // 停留1秒
- }
-
- @Override
- public void onAnimationRepeat(Animation animation) {
- }
- });
- view.startAnimation(enterAnim);
-
- } catch (Exception e) {
- LogUtils.e("MQTT动画启动失败", e);
- onAnimationEnd.run();
- }
- }
-
- // 添加获取屏幕宽度的方法
- private int getScreenWidth() {
- DisplayMetrics displayMetrics = new DisplayMetrics();
- if (getWindowManager() != null) {
- getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
- return displayMetrics.widthPixels;
- }
- return getResources().getDisplayMetrics().widthPixels;
- }
-
- private void resetAndStartXlhAnimation(View view, Runnable onAnimationEnd) {
- try {
- view.setTranslationX(view.getWidth());
- ObjectAnimator animator1 = ObjectAnimator.ofFloat(view, "translationX", view.getWidth(), 0f);
- animator1.setDuration(1500);
- animator1.setInterpolator(new DecelerateInterpolator(2.0f));
- animator1.start();
-
- view.postDelayed(() -> {
- try {
- ObjectAnimator animator2 = ObjectAnimator.ofFloat(view, "translationX", 0f, -view.getWidth());
- animator2.setDuration(1500);
- animator2.setInterpolator(new DecelerateInterpolator(2.0f));
- animator2.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- onAnimationEnd.run();
- }
-
- @Override
- public void onAnimationCancel(Animator animation) {
- onAnimationEnd.run();
- }
- });
- animator2.start();
- } catch (Exception e) {
- LogUtils.e("XLH动画执行失败", e);
- onAnimationEnd.run();
- }
- }, 5000);
- } catch (Exception e) {
- LogUtils.e("XLH动画启动失败", e);
- onAnimationEnd.run();
- }
- }
-
- private void updateFloatingViewData(View view, MqttBean.ListBean mqttBean) {
- TextView textView = view.findViewById(R.id.tv_name);
- TextView textView2 = view.findViewById(R.id.tv_to_name);
- TextView tv_time = view.findViewById(R.id.tv_num);
-
- if (mqttBean != null) {
- textView2.setText("送给" + (mqttBean.getToUserName() != null ? mqttBean.getToUserName() : ""));
- textView.setText(mqttBean.getFromUserName() != null ? mqttBean.getFromUserName() : "");
- if (mqttBean.getGift_picture() != null) {
- ImageUtils.loadHeadCC(mqttBean.getGift_picture(), view.findViewById(R.id.iv_piaoping));
- }
- tv_time.setText("x" + (mqttBean.getNumber() != null ? mqttBean.getNumber() : "1"));
- } else {
- textView2.setText("送给");
- textView.setText("");
- tv_time.setText("x1");
- }
- }
-
- private void updateXlhFloatingViewData(View view, XLHBean xlhBean) {
- TextView textView = view.findViewById(R.id.tv_name);
- ImageView xlh_image = view.findViewById(R.id.im_xlh);
-
- if (xlhBean != null) {
- xlh_image.setImageDrawable(xlhBean.getFrom_type() == 1 ?
- getResources().getDrawable(R.mipmap.xlh_jjks) :
- getResources().getDrawable(R.mipmap.xlh_zsks));
- textView.setText(xlhBean.getText());
- } else {
- textView.setText("");
- }
-
- view.setOnClickListener(v -> {
- // 点击时执行跳转操作
- handleItemClick(xlhBean);
- });
- }
-
- private void handleItemClick(XLHBean xlhBean) {
- // 这里可以根据实际需求实现跳转逻辑
- // 例如:跳转到礼物详情页面、用户主页等
- // 使用缓存数据进入房间
- RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), xlhBean.getRoom_id(), "",null);
-// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", xlhBean.getRoom_id()).navigation();
-
- }
-
- private void handleRedItemClick(RedBean redBean) {
- // 这里可以根据实际需求实现跳转逻辑
- // 例如:跳转到礼物详情页面、用户主页等
- // 使用缓存数据进入房间
- RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), redBean.getRoom_id(), "",null);
-// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", xlhBean.getRoom_id()).navigation();
-
- }
-
-
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void onEvent(ChatInfo event) {
- String id = event.getId().replace("g", "");
- Intent intent = new Intent(this, WebViewActivity.class);
- intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/union/setGroup?id=" + SpUtil.getToken() + "&guildId=" + id);
- startActivity(intent);
-// ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/union/setGroup?id=" + SpUtil.getToken() + "&guildId=" + id).navigation();
- }
-
}
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseMvpActivity.java b/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseMvpActivity.java
deleted file mode 100644
index d9e5f455..00000000
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/BaseMvpActivity.java
+++ /dev/null
@@ -1,304 +0,0 @@
-package com.xscm.moduleutil.activity;
-
-import android.Manifest;
-import android.app.Activity;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.core.app.ActivityCompat;
-import androidx.core.content.ContextCompat;
-import androidx.databinding.ViewDataBinding;
-
-import com.blankj.utilcode.util.LogUtils;
-import com.blankj.utilcode.util.ToastUtils;
-import com.tencent.imsdk.v2.V2TIMConversationListener;
-import com.tencent.imsdk.v2.V2TIMConversationManager;
-import com.tencent.imsdk.v2.V2TIMSDKListener;
-import com.tencent.imsdk.v2.V2TIMValueCallback;
-import com.tencent.qcloud.tuicore.TUIConfig;
-import com.tencent.qcloud.tuicore.TUIConstants;
-import com.tencent.qcloud.tuicore.TUICore;
-import com.tencent.qcloud.tuicore.interfaces.TUILoginListener;
-import com.xscm.moduleutil.base.CommonAppContext;
-import com.xscm.moduleutil.base.RoomManager;
-import com.xscm.moduleutil.bean.UserBean;
-import com.xscm.moduleutil.bean.UserInfo;
-import com.xscm.moduleutil.dialog.ConfirmDialog;
-import com.xscm.moduleutil.event.UnreadCountEvent;
-import com.xscm.moduleutil.http.RetrofitClient;
-import com.xscm.moduleutil.utils.LanguageUtil;
-import com.xscm.moduleutil.utils.location.LocationProvider;
-import com.xscm.moduleutil.utils.location.SystemLocationProvider;
-import com.tencent.imsdk.v2.V2TIMCallback;
-import com.tencent.imsdk.v2.V2TIMManager;
-import com.tencent.imsdk.v2.V2TIMUserFullInfo;
-import com.tencent.qcloud.tuicore.TUILogin;
-import com.tencent.qcloud.tuicore.interfaces.TUICallback;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
-
-public abstract class BaseMvpActivity extends BaseAppCompatActivity implements
- IView {
-
- protected P MvpPre;
-
- protected abstract P bindPresenter();
-
- @Override
- protected void doDone() {
- super.doDone();
- }
-
- @Override
- protected void initView() {
- MvpPre = bindPresenter();
- }
-
- @Override
- public void showLoadings() {
-// showLoading("加载中");
- }
-
- @Override
- public void showLoadings(String content) {
-// showLoading(content);
- }
-
- @Override
- public void disLoadings() {
-// disLoading();
- }
-
- @Override
- protected void onDestroy() {
- if (MvpPre != null) {
- try {
- MvpPre.detachView();
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- super.onDestroy();
- }
-
- @Override
- public Activity getSelfActivity() {
- return this;
- }
-
- @Override
- protected void attachBaseContext(Context newBase) {
- super.attachBaseContext(LanguageUtil.attachBaseContext(newBase));
- }
-
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void logOutEvent(UserBean userBean) {
- // 在用户 UI 点击登录的时候调用
- TUILogin.login(getBaseContext(), CommonAppContext.getInstance().getCurrentEnvironment().getSdkAppId(), "u" + userBean.getUser_id(), userBean.getTencent_im(), new TUICallback() {
- @Override
- public void onError(final int code, final String desc) {
- LogUtils.e("@@@1", code, "描述:", desc);
- }
-
- @Override
- public void onSuccess() {
- LogUtils.e("@@@", "成功");
- V2TIMManager.getConversationManager().getTotalUnreadMessageCount(new V2TIMValueCallback() {
- @Override
- public void onSuccess(Long aLong) {
- // 通知未读数变化
- UnreadCountEvent event =CommonAppContext.getInstance().unreadCountEvent;
- if (event==null){
- event=new UnreadCountEvent();
- }
- event.setALong(aLong);
- // 使用EventBus通知
- CommonAppContext.getInstance().setUnreadCountEvent(event);
- EventBus.getDefault().post(event);
- }
-
- @Override
- public void onError(int code, String desc) {
- // 错误处理
- }
- });
- //initLocation();
- }
- });
-// V2TIMManager.getInstance().addIMSDKListener(imSdkListener);
-
- }
-
- private final V2TIMSDKListener imSdkListener = new V2TIMSDKListener() {
- @Override
- public void onConnecting() {
- }
-
- @Override
- public void onConnectSuccess() {//重连成功
- if (CommonAppContext.getInstance().playId!=null){
- LogUtils.e("@@@", "重连成功");
- LogUtils.e("@@@", ""+CommonAppContext.getInstance().playId);
- RetrofitClient.getInstance().roomUserReconnect(CommonAppContext.getInstance().playId);
- }
- }
-
- @Override
- public void onConnectFailed(int code, String error) {
- LogUtils.e("@@@", "断开连接");
- CommonAppContext.getInstance().onConnectFailed=true;
- }
-
- @Override
- public void onKickedOffline() {
-// queren1();
- if (CommonAppContext.getInstance().playId!=null){
- ToastUtils.showShort("您的账号已被挤下线");
- try {
- CommonAppContext.getInstance().clearLoginInfo();
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
- }
- }
-
- }
-
- @Override
- public void onUserSigExpired() {
- }
-
- @Override
- public void onSelfInfoUpdated(V2TIMUserFullInfo info) {
- }
- };
-
- private void queren1() {
- // 创建并显示确认对话框
- new ConfirmDialog(this,
- "温馨提示",
- "您的账号已在别处登录,请确认密码是否已经泄露",
- "知道了",
- "",
- v -> {
- // 点击“确认”按钮时执行删除操作
-
- if (CommonAppContext.getInstance().playId!=null){
- RoomManager.getInstance().exitRoom(CommonAppContext.getInstance().playId);
- }
- try {
- CommonAppContext.getInstance().clearLoginInfo();
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
- }
-
- },
- v -> {
- // 点击“取消”按钮时什么都不做
-
- }, false, 0).show();
- }
-
-
-
- @Override
- public Resources getResources() {
- Resources resources = super.getResources();
- if (resources != null) {
- Configuration configuration = resources.getConfiguration();
- if (configuration != null) {
- // 设置字体缩放比例不随系统变化
- configuration.fontScale = 1.0f; // 1.0f表示默认大小
- resources.updateConfiguration(configuration, resources.getDisplayMetrics());
- }
- }
- return resources;
- }
-
- /**
- * 显示全局飘屏消息(支持任意位置飘过)
- *
- */
-// @Subscribe(threadMode = ThreadMode.MAIN)
-// public void showPiaoPingMessage(MqttBean mqttBean) {
-// WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
-// if (windowManager == null) return;
-//
-// int screenWidth = getResources().getDisplayMetrics().widthPixels;
-// int screenHeight = getResources().getDisplayMetrics().heightPixels;
-//
-// WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(
-// WindowManager.LayoutParams.MATCH_PARENT,
-// WindowManager.LayoutParams.WRAP_CONTENT,
-// Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ?
-// WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY :
-// WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
-// WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
-// WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
-// WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
-// PixelFormat.TRANSLUCENT);
-//
-// // 设置 Gravity 为左上角
-// layoutParams.gravity = Gravity.TOP | Gravity.START;
-//
-// // Y 轴随机位置
-//// layoutParams.y = (int) ((Math.random() * (screenHeight - 200)));
-//
-// // 初始 X 设为负值,确保 View 在屏幕左侧外
-// layoutParams.x = -screenWidth;
-//
-// View piaoPingView = LayoutInflater.from(this).inflate(R.layout.item_piaoping, null);
-// TextView textView = piaoPingView.findViewById(R.id.tv_name);
-// TextView textView2 = piaoPingView.findViewById(R.id.tv_to_name);
-// textView2.setText("送给"+mqttBean.getList().getToUserName());
-// textView.setText(mqttBean.getList().getFromUserName());
-// ImageUtils.loadHeadCC(mqttBean.getList().getGift_picture(), piaoPingView.findViewById(R.id.iv_piaoping));
-// TextView tv_time = piaoPingView.findViewById(R.id.tv_num);
-// tv_time.setText(mqttBean.getList().getNumber());
-// windowManager.addView(piaoPingView, layoutParams);
-//
-// piaoPingView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
-// @Override
-// public void onGlobalLayout() {
-// piaoPingView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
-//
-// // 设置锚点为左上角,避免偏移干扰
-// piaoPingView.setPivotX(0);
-// piaoPingView.setPivotY(0);
-//
-// // 启动动画:从左外滑入 -> 右外滑出
-// ObjectAnimator animator = ObjectAnimator.ofFloat(
-// piaoPingView,
-// "translationX",
-// 0f, // 初始偏移为 0(此时 View 在左侧外)
-// screenWidth // 向右移动整个屏幕宽度
-// );
-// animator.setDuration(2000); // 整个动画的时长为2秒
-//
-// // 强制 GPU 渲染
-// piaoPingView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
-//
-// // 延迟显示2秒后开始滑出屏幕的动画
-// piaoPingView.postDelayed(new Runnable() {
-// @Override
-// public void run() {
-// animator.start();
-// }
-// }, 3000);
-//
-// animator.addListener(new AnimatorListenerAdapter() {
-// @Override
-// public void onAnimationEnd(Animator animation) {
-// windowManager.removeView(piaoPingView);
-// }
-// });
-// }
-// });
-// }
-
-}
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java b/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java
index a1d591a3..6fac3798 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java
@@ -51,11 +51,11 @@ public class EnvironmentPrefs {
// }
// 默认使用生产环境
- String envName = sharedPreferences.getString(KEY_ENV, EnvironmentEnum.PRODUCTION.name());
+ String envName = sharedPreferences.getString(KEY_ENV, EnvironmentEnum.TEST.name());
try {
return EnvironmentEnum.valueOf(envName);
} catch (IllegalArgumentException e) {
- return EnvironmentEnum.PRODUCTION; // 出错时默认返回生产环境
+ return EnvironmentEnum.TEST; // 出错时默认返回生产环境
}
}
}
\ No newline at end of file
diff --git a/modulemain/src/main/AndroidManifest.xml b/modulemain/src/main/AndroidManifest.xml
index 434df3f7..1e794cfb 100644
--- a/modulemain/src/main/AndroidManifest.xml
+++ b/modulemain/src/main/AndroidManifest.xml
@@ -166,6 +166,20 @@
android:name=".activity.user.activity.RealNameActivity"
android:exported="false" />
+
+
+
+
+
+
+
+
+
+
diff --git a/modulemain/src/main/java/com/xscm/modulemain/BaseMvpActivity.java b/modulemain/src/main/java/com/xscm/modulemain/BaseMvpActivity.java
new file mode 100644
index 00000000..3a9a8fc8
--- /dev/null
+++ b/modulemain/src/main/java/com/xscm/modulemain/BaseMvpActivity.java
@@ -0,0 +1,1025 @@
+package com.xscm.modulemain;
+
+import static com.xscm.moduleutil.base.CommonAppContext.postDelayed;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.media.MediaPlayer;
+import android.os.Bundle;
+import android.text.Spannable;
+import android.text.SpannableStringBuilder;
+import android.text.style.ForegroundColorSpan;
+import android.util.DisplayMetrics;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.Animation;
+import android.view.animation.DecelerateInterpolator;
+import android.view.animation.TranslateAnimation;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+import androidx.databinding.ViewDataBinding;
+
+import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.ToastUtils;
+import com.tencent.imsdk.v2.V2TIMSDKListener;
+import com.tencent.imsdk.v2.V2TIMValueCallback;
+import com.tencent.qcloud.tuikit.tuichat.bean.ChatInfo;
+import com.xscm.modulemain.manager.RoomManager;
+import com.xscm.moduleutil.activity.BaseAppCompatActivity;
+import com.xscm.moduleutil.activity.IPresenter;
+import com.xscm.moduleutil.activity.IView;
+import com.xscm.modulemain.activity.WebViewActivity;
+import com.xscm.moduleutil.base.CommonAppContext;
+import com.xscm.moduleutil.bean.UserBean;
+import com.xscm.moduleutil.bean.XLHBean;
+import com.xscm.moduleutil.dialog.ConfirmDialog;
+import com.xscm.moduleutil.event.HourlyBean;
+import com.xscm.moduleutil.event.MqttBean;
+import com.xscm.moduleutil.event.RedBean;
+import com.xscm.moduleutil.event.UnreadCountEvent;
+import com.xscm.moduleutil.http.RetrofitClient;
+import com.xscm.moduleutil.utils.ImageUtils;
+import com.xscm.moduleutil.utils.LanguageUtil;
+import com.tencent.imsdk.v2.V2TIMManager;
+import com.tencent.imsdk.v2.V2TIMUserFullInfo;
+import com.tencent.qcloud.tuicore.TUILogin;
+import com.tencent.qcloud.tuicore.interfaces.TUICallback;
+import com.xscm.moduleutil.utils.SpUtil;
+import com.xscm.moduleutil.utils.SystemUtils;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public abstract class BaseMvpActivity extends BaseAppCompatActivity implements
+ IView {
+
+ protected P MvpPre;
+
+ protected abstract P bindPresenter();
+
+ @Override
+ protected void doDone() {
+ super.doDone();
+ }
+
+ @Override
+ protected void initView() {
+ MvpPre = bindPresenter();
+ }
+
+ @Override
+ public void showLoadings() {
+// showLoading("加载中");
+ }
+
+ @Override
+ public void showLoadings(String content) {
+// showLoading(content);
+ }
+
+ @Override
+ public void disLoadings() {
+// disLoading();
+ }
+
+ @Override
+ protected void onDestroy() {
+
+ // 清理MQTT相关资源
+ synchronized (mqttQueueLock) {
+ mqttMessageQueue.clear();
+ isMqttPlaying = false;
+ }
+
+ // 清理XLH相关资源
+ synchronized (xlhQueueLock) {
+ xlhMessageQueue.clear();
+ isXlhPlaying = false;
+ }
+
+ // 移除当前显示的视图
+ try {
+ if (currentMqttView != null && currentMqttView.getParent() != null) {
+ ViewGroup parent = (ViewGroup) currentMqttView.getParent();
+ parent.removeView(currentMqttView);
+ }
+ currentMqttView = null;
+
+ if (currentXlhView != null && currentXlhView.getParent() != null) {
+ ViewGroup parent = (ViewGroup) currentXlhView.getParent();
+ parent.removeView(currentXlhView);
+ }
+ currentXlhView = null;
+ } catch (Exception e) {
+ LogUtils.e("清理飘屏视图失败", e);
+ }
+
+ if (MvpPre != null) {
+ try {
+ MvpPre.detachView();
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ super.onDestroy();
+ }
+
+ @Override
+ public Activity getSelfActivity() {
+ return this;
+ }
+
+ @Override
+ protected void attachBaseContext(Context newBase) {
+ super.attachBaseContext(LanguageUtil.attachBaseContext(newBase));
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void logOutEvent(UserBean userBean) {
+ // 在用户 UI 点击登录的时候调用
+ TUILogin.login(getBaseContext(), CommonAppContext.getInstance().getCurrentEnvironment().getSdkAppId(), "u" + userBean.getUser_id(), userBean.getTencent_im(), new TUICallback() {
+ @Override
+ public void onError(final int code, final String desc) {
+ LogUtils.e("@@@1", code, "描述:", desc);
+ }
+
+ @Override
+ public void onSuccess() {
+ LogUtils.e("@@@", "成功");
+ V2TIMManager.getConversationManager().getTotalUnreadMessageCount(new V2TIMValueCallback() {
+ @Override
+ public void onSuccess(Long aLong) {
+ // 通知未读数变化
+ UnreadCountEvent event =CommonAppContext.getInstance().unreadCountEvent;
+ if (event==null){
+ event=new UnreadCountEvent();
+ }
+ event.setALong(aLong);
+ // 使用EventBus通知
+ CommonAppContext.getInstance().setUnreadCountEvent(event);
+ EventBus.getDefault().post(event);
+ }
+
+ @Override
+ public void onError(int code, String desc) {
+ // 错误处理
+ }
+ });
+ //initLocation();
+ }
+ });
+// V2TIMManager.getInstance().addIMSDKListener(imSdkListener);
+
+ }
+
+ private final V2TIMSDKListener imSdkListener = new V2TIMSDKListener() {
+ @Override
+ public void onConnecting() {
+ }
+
+ @Override
+ public void onConnectSuccess() {//重连成功
+ if (CommonAppContext.getInstance().playId!=null){
+ LogUtils.e("@@@", "重连成功");
+ LogUtils.e("@@@", ""+CommonAppContext.getInstance().playId);
+ RetrofitClient.getInstance().roomUserReconnect(CommonAppContext.getInstance().playId);
+ }
+ }
+
+ @Override
+ public void onConnectFailed(int code, String error) {
+ LogUtils.e("@@@", "断开连接");
+ CommonAppContext.getInstance().onConnectFailed=true;
+ }
+
+ @Override
+ public void onKickedOffline() {
+// queren1();
+ if (CommonAppContext.getInstance().playId!=null){
+ ToastUtils.showShort("您的账号已被挤下线");
+ try {
+ CommonAppContext.getInstance().clearLoginInfo();
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ }
+
+ @Override
+ public void onUserSigExpired() {
+ }
+
+ @Override
+ public void onSelfInfoUpdated(V2TIMUserFullInfo info) {
+ }
+ };
+
+ private void queren1() {
+ // 创建并显示确认对话框
+ new ConfirmDialog(this,
+ "温馨提示",
+ "您的账号已在别处登录,请确认密码是否已经泄露",
+ "知道了",
+ "",
+ v -> {
+ // 点击“确认”按钮时执行删除操作
+
+ if (CommonAppContext.getInstance().playId!=null){
+ RoomManager.getInstance().exitRoom(CommonAppContext.getInstance().playId);
+ }
+ try {
+ CommonAppContext.getInstance().clearLoginInfo();
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException(e);
+ }
+
+ },
+ v -> {
+ // 点击“取消”按钮时什么都不做
+
+ }, false, 0).show();
+ }
+
+
+
+ @Override
+ public Resources getResources() {
+ Resources resources = super.getResources();
+ if (resources != null) {
+ Configuration configuration = resources.getConfiguration();
+ if (configuration != null) {
+ // 设置字体缩放比例不随系统变化
+ configuration.fontScale = 1.0f; // 1.0f表示默认大小
+ resources.updateConfiguration(configuration, resources.getDisplayMetrics());
+ }
+ }
+ return resources;
+ }
+
+
+ /// 礼物特效
+ /// 礼物特效
+ // 在类中添加以下成员变量
+ private final List mqttMessageQueue = new ArrayList<>(); // MQTT消息队列
+ private final List xlhMessageQueue = new ArrayList<>(); // XLH消息队列
+ private final List redMessageQueue = new ArrayList<>(); // 红包队列
+ private boolean isMqttPlaying = false; // MQTT播放状态标志
+ private boolean isXlhPlaying = false; // XLH播放状态标志
+ private boolean isRedPlaying = false; // XLH播放状态标志
+ private final Object mqttQueueLock = new Object(); // MQTT队列同步锁
+ private final Object xlhQueueLock = new Object(); // XLH队列同步锁
+ private final Object RedQueueLock = new Object(); // XLH队列同步锁
+ private View currentMqttView = null; // 当前正在播放的MQTT视图
+ private View currentXlhView = null; // 当前正在播放的XLH视图
+ private View currentRedView = null; // 当前正在播放的XLH视图
+
+ private final List hourlyMessageQueue = new ArrayList<>(); // 小时榜消息队列
+ private final Map currentHourlyViews = new HashMap<>(); // 当前显示的小时榜视图
+ private final Object hourlyQueueLock = new Object(); // 小时榜队列同步锁
+ private boolean isHourlyProcessing = false; // 小时榜处理状态标志
+
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onMessageReceived(List hourlyBean) {
+ LogUtils.e("收到小时榜", hourlyBean);
+ if (hourlyBean == null) return;
+ if (SpUtil.getFloatingScreen() == 1) {
+ synchronized (hourlyQueueLock) {
+ hourlyMessageQueue.addAll(hourlyBean);
+ if (!isHourlyProcessing) {
+ isHourlyProcessing = true;
+ processHourlyMessages();
+ }
+ }
+ } else {
+ hourlyMessageQueue.clear();
+ clearAllHourlyViews();
+ }
+ }
+
+ private void processHourlyMessages() {
+ List messagesToProcess;
+ synchronized (hourlyQueueLock) {
+ if (hourlyMessageQueue.isEmpty()) {
+ isHourlyProcessing = false;
+ return;
+ }
+ // 每次只处理1条数据
+ messagesToProcess = new ArrayList<>();
+ messagesToProcess.add(hourlyMessageQueue.remove(0));
+ }
+
+ // 只展示一条数据
+ HourlyBean bean = messagesToProcess.get(0);
+ showHourlyFloatingMessage(bean, 0);
+ }
+
+ private void showHourlyFloatingMessage(HourlyBean hourlyBean, int positionIndex) {
+ try {
+ ViewGroup decorView = (ViewGroup) getWindow().getDecorView();
+
+ // 创建新的视图
+ View hourlyView = LayoutInflater.from(this).inflate(com.xscm.moduleutil.R.layout.item_hourly_floating, null);
+ FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
+ FrameLayout.LayoutParams.MATCH_PARENT,
+ FrameLayout.LayoutParams.WRAP_CONTENT);
+
+ // 设置固定的垂直位置
+ int baseMargin = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 70);
+ layoutParams.topMargin = baseMargin;
+ layoutParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
+ hourlyView.setLayoutParams(layoutParams);
+
+ decorView.addView(hourlyView);
+
+ // 保存视图引用
+ currentHourlyViews.put(positionIndex, hourlyView);
+
+ // 更新视图数据
+ updateHourlyFloatingViewData(hourlyView, hourlyBean);
+
+ // 根据类型获取展示时间
+ long displayDuration = getDisplayDurationByType(Integer.parseInt(hourlyBean.getRank_number()));
+
+ // 启动动画
+ resetAndStartHourlyAnimation(hourlyView, displayDuration, () -> {
+ // 动画结束后清理视图
+ if (hourlyView.getParent() != null) {
+ decorView.removeView(hourlyView);
+ }
+ currentHourlyViews.remove(positionIndex);
+
+ // 检查是否还有更多消息需要处理
+ synchronized (hourlyQueueLock) {
+ if (hourlyMessageQueue.isEmpty()) {
+ isHourlyProcessing = false;
+ } else {
+ // 当前视图消失后处理下一条消息
+ processHourlyMessages();
+ }
+ }
+ });
+ } catch (Exception e) {
+ LogUtils.e("显示小时榜飘屏失败", e);
+ }
+ }
+
+ private long getDisplayDurationByType(int type) {
+ // 根据不同类型设置不同的展示时间(毫秒)
+ switch (type) {
+ case 1: // 第一名
+ return 5000; // 5秒
+ case 2: // 第二名
+ return 4000; // 4秒
+ case 3: // 第三名
+ return 3000; // 3秒
+ default:
+ return 3000; // 默认3秒
+ }
+ }
+
+ private void updateHourlyFloatingViewData(View view, HourlyBean hourlyBean) {
+ TextView tvName = view.findViewById(com.xscm.moduleutil.R.id.tv_name);
+ ImageView ivAvatar = view.findViewById(com.xscm.moduleutil.R.id.im_h_t);
+
+ if (hourlyBean != null) {
+ // 根据排名设置不同的显示
+ switch (hourlyBean.getRank_number()) {
+ case "1":
+// tvName.setText("新科状元! ["+hourlyBean.getRoom_name()+"] 独占鳌头!");
+ setColoredText(tvName, "新科状元! [", hourlyBean.getRoom_name(), "] 独占鳌头!", com.xscm.moduleutil.R.color.color_FFFA63);
+ ivAvatar.setImageResource(com.xscm.moduleutil.R.mipmap.hourl_top1);
+ break;
+ case "2":
+// tvName.setText("金榜榜眼! ["+hourlyBean.getRoom_name()+"] 才气逼人!");
+ setColoredText(tvName, "金榜榜眼! [", hourlyBean.getRoom_name(), "] 才气逼人!", com.xscm.moduleutil.R.color.color_FFFA63);
+
+ ivAvatar.setImageResource(com.xscm.moduleutil.R.mipmap.hourl_top2);
+ break;
+ case "3":
+ setColoredText(tvName, "风采探花! [", hourlyBean.getRoom_name(), "] 实力绽放!", com.xscm.moduleutil.R.color.color_1FFFE5);
+// tvName.setText("风采探花! ["+hourlyBean.getRoom_name()+"] 实力绽放!");
+
+ ivAvatar.setImageResource(com.xscm.moduleutil.R.mipmap.hourl_top3);
+ break;
+ default:
+ tvName.setVisibility(View.GONE);
+ ivAvatar.setVisibility(View.GONE);
+ break;
+ }
+
+ }
+ }
+
+ // 设置带颜色的文本
+ // 设置带颜色的文本
+ private void setColoredText(TextView textView, String prefix, String roomName, String suffix, int colorRes) {
+ String fullText = prefix + roomName + suffix;
+ SpannableStringBuilder builder = new SpannableStringBuilder(fullText);
+
+ // 先为整个文本设置白色
+ builder.setSpan(
+ new ForegroundColorSpan(ContextCompat.getColor(this, R.color.white)),
+ 0,
+ fullText.length(),
+ Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
+ );
+
+ // 查找房间名在文本中的位置
+ int start = fullText.indexOf("[");
+ int end = fullText.indexOf("]") + 1;
+
+ if (start >= 0 && end > start) {
+ // 为房间名部分设置指定颜色
+ builder.setSpan(
+ new ForegroundColorSpan(ContextCompat.getColor(this, colorRes)),
+ start,
+ end,
+ Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
+ );
+ }
+
+ textView.setText(builder);
+ }
+
+ private void resetAndStartHourlyAnimation(View view, long displayDuration, Runnable onAnimationEnd) {
+ try {
+ int screenWidth = getScreenWidth();
+ // 设置初始位置:在屏幕右侧外部
+ view.setTranslationX(screenWidth);
+
+ // 进入动画
+ ObjectAnimator enterAnimator = ObjectAnimator.ofFloat(view, "translationX", screenWidth, 0f);
+ enterAnimator.setDuration(500);
+ enterAnimator.setInterpolator(new DecelerateInterpolator());
+ enterAnimator.start();
+
+ // 停留后退出动画
+ view.postDelayed(() -> {
+ try {
+ ObjectAnimator exitAnimator = ObjectAnimator.ofFloat(view, "translationX", 0f, -screenWidth);
+ exitAnimator.setDuration(500);
+ exitAnimator.setInterpolator(new AccelerateInterpolator());
+ exitAnimator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ onAnimationEnd.run();
+ }
+
+ @Override
+ public void onAnimationCancel(Animator animation) {
+ onAnimationEnd.run();
+ }
+ });
+ exitAnimator.start();
+ } catch (Exception e) {
+ LogUtils.e("小时榜退出动画执行失败", e);
+ onAnimationEnd.run();
+ }
+ }, displayDuration); // 根据类型设置的展示时间
+
+ } catch (Exception e) {
+ LogUtils.e("小时榜动画启动失败", e);
+ onAnimationEnd.run();
+ }
+ }
+
+ private void clearAllHourlyViews() {
+ ViewGroup decorView = (ViewGroup) getWindow().getDecorView();
+ for (View view : currentHourlyViews.values()) {
+ if (view.getParent() != null) {
+ decorView.removeView(view);
+ }
+ }
+ currentHourlyViews.clear();
+ }
+
+ /// 礼物特效 - MQTT消息处理
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onMessageReceived(MqttBean mqttBean) {
+ LogUtils.e("收到MQTT", mqttBean);
+ if (mqttBean == null) return;
+ if (SpUtil.getFloatingScreen() == 1) {
+ synchronized (mqttQueueLock) {
+
+ mqttMessageQueue.addAll(mqttBean.getList());
+// if (!isMqttPlaying) {
+// isMqttPlaying = true;
+ processNextMqttMessage();
+// }
+ }
+ } else {
+ mqttMessageQueue.clear();
+ }
+ }
+
+ /// XLH消息处理
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onEvent(XLHBean event) {
+ LogUtils.e("收到XLH", event);
+ if (event == null) return;
+ if (event.getText()==null || event.getText().isEmpty()) return;
+ if (SpUtil.getFloatingScreen() == 1) {
+ synchronized (xlhQueueLock) {
+ xlhMessageQueue.add(event);
+ if (!isXlhPlaying) {
+ isXlhPlaying = true;
+ processNextXlhMessage();
+ }
+ }
+ } else {
+ xlhMessageQueue.clear();
+ }
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onEvent(RedBean event){
+ LogUtils.e("收到红包", event);
+ if (event==null) return;
+ if (SpUtil.getFloatingScreen()==1){
+
+ synchronized (RedQueueLock) {
+ redMessageQueue.add(event);
+ if (!isRedPlaying) {
+ isRedPlaying = true;
+ processNextRedMessage();
+ }
+ }
+ } else {
+ redMessageQueue.clear();
+ }
+ }
+
+ private void processNextRedMessage() {
+ RedBean redBean;
+ synchronized (RedQueueLock) {
+ if (redMessageQueue.isEmpty()) {
+ isRedPlaying = false;
+ return;
+ }
+ redBean = redMessageQueue.remove(0);
+ }
+ showPiaoPingMessageRed(redBean);
+ }
+
+ private void showPiaoPingMessageRed(RedBean redBean){
+ try {
+ // 清理之前的视图(如果存在)
+ if (currentRedView != null && currentRedView.getParent() != null) {
+ ViewGroup parent = (ViewGroup) currentRedView.getParent();
+ parent.removeView(currentRedView);
+ }
+
+ if (decorView2 == null) {
+ decorView2 = (ViewGroup) getWindow().getDecorView();
+ }
+
+ currentRedView = LayoutInflater.from(this).inflate(com.xscm.moduleutil.R.layout.item_piaoping_red, null);
+ FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
+ FrameLayout.LayoutParams.MATCH_PARENT,
+ FrameLayout.LayoutParams.WRAP_CONTENT);
+ layoutParams.topMargin = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 140);
+ layoutParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
+ currentRedView.setLayoutParams(layoutParams);
+ decorView2.addView(currentRedView);
+
+ updateRedFloatingViewData(currentRedView, redBean);
+ // 播放红包音效
+ playRedPacketSound();
+ resetAndStartXlhAnimation(currentRedView, () -> {
+ // 清理当前视图
+ if (currentRedView != null && currentRedView.getParent() != null) {
+ ViewGroup parent = (ViewGroup) currentRedView.getParent();
+ parent.removeView(currentRedView);
+ }
+ currentRedView = null;
+
+ // 处理队列中的下一条消息
+ synchronized (RedQueueLock) {
+ isRedPlaying = false;
+ processNextRedMessage();
+ }
+ });
+ } catch (Exception e) {
+ LogUtils.e("显示红包飘屏失败", e);
+ // 出现异常时继续处理队列
+ synchronized (RedQueueLock) {
+ isRedPlaying = false;
+ processNextRedMessage();
+ }
+ }
+ }
+ // 在类中添加成员变量
+ private MediaPlayer redPacketMediaPlayer = null;
+ private boolean isRedPacketMediaPrepared = false;
+ // 添加播放红包音效的方法
+ private void playRedPacketSound() {
+ try {
+ if (!isRedPacketMediaPrepared) {
+ // 第一次初始化MediaPlayer
+ if (redPacketMediaPlayer == null) {
+ redPacketMediaPlayer = MediaPlayer.create(this, com.xscm.moduleutil.R.raw.red_packet_come); // 假设音效文件名为red_packet_sound.mp3
+ redPacketMediaPlayer.setOnPreparedListener(mp -> {
+ isRedPacketMediaPrepared = true;
+ mp.start();
+ });
+ redPacketMediaPlayer.setOnCompletionListener(mp -> {
+ // 播放完成后重置,以便下次重新播放
+ try {
+ mp.seekTo(0);
+ } catch (Exception e) {
+ LogUtils.e("MediaPlayer重置失败", e);
+ }
+ });
+ }
+
+ if (redPacketMediaPlayer != null) {
+ redPacketMediaPlayer.prepareAsync(); // 异步准备
+ }
+ } else {
+ // 已经准备好了,直接重新播放
+ if (redPacketMediaPlayer != null && !redPacketMediaPlayer.isPlaying()) {
+ redPacketMediaPlayer.seekTo(0);
+ redPacketMediaPlayer.start();
+ }
+ }
+ } catch (Exception e) {
+ LogUtils.e("播放红包音效失败", e);
+ isRedPacketMediaPrepared=false;
+ }
+ }
+
+ private void updateRedFloatingViewData(View view, RedBean redBean){
+ TextView textView = view.findViewById(R.id.tv_name);
+
+ if (redBean != null) {
+ String fullText = redBean.getText();
+ if (redBean.getNickname() != null && redBean.getRoom_name() != null) {
+ SpannableStringBuilder builder = new SpannableStringBuilder(fullText);
+
+ // 为用户名设置蓝色
+ int userNameStart = fullText.indexOf(redBean.getNickname());
+ if (userNameStart >= 0) {
+ builder.setSpan(
+ new ForegroundColorSpan(ContextCompat.getColor(this, com.xscm.moduleutil.R.color.colorPrimary)),
+ userNameStart,
+ userNameStart + redBean.getNickname().length(),
+ Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
+ );
+ }
+
+ // 为房间名设置蓝色
+ int roomNameStart = fullText.indexOf(redBean.getRoom_name());
+ if (roomNameStart >= 0) {
+ builder.setSpan(
+ new ForegroundColorSpan(ContextCompat.getColor(this, com.xscm.moduleutil.R.color.colorPrimary)),
+ roomNameStart,
+ roomNameStart + redBean.getRoom_name().length(),
+ Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
+ );
+ }
+
+ textView.setText(builder);
+ } else {
+ textView.setText(fullText);
+ }
+ } else {
+ textView.setText("");
+ }
+
+ view.setOnClickListener(v -> {
+ // 点击时执行跳转操作
+ handleRedItemClick(redBean);
+ });
+ }
+
+ // 处理下一个MQTT消息
+ private void processNextMqttMessage() {
+ MqttBean.ListBean mqttBean;
+ synchronized (mqttQueueLock) {
+ if (mqttMessageQueue.isEmpty()) {
+ isMqttPlaying = false;
+ return;
+ }
+ mqttBean = mqttMessageQueue.remove(0);
+ }
+ showFloatingMessage(mqttBean);
+ }
+
+ // 处理下一个XLH消息
+ private void processNextXlhMessage() {
+ XLHBean xlhBean;
+ synchronized (xlhQueueLock) {
+ if (xlhMessageQueue.isEmpty()) {
+ isXlhPlaying = false;
+ return;
+ }
+ xlhBean = xlhMessageQueue.remove(0);
+ }
+ showPiaoPingMessageXlh(xlhBean);
+ }
+
+ ViewGroup decorView;//礼物的
+ ViewGroup decorView1;//巡乐会的
+ ViewGroup decorView2;//红包的
+
+ private void showFloatingMessage(MqttBean.ListBean mqttBean) {
+
+// QXGiftDriftView.getInstance( this).addGiftModel(mqttBean);
+
+
+ try {
+ // 清理之前的视图(如果存在)
+ if (currentMqttView != null && currentMqttView.getParent() != null) {
+ ViewGroup parent = (ViewGroup) currentMqttView.getParent();
+ parent.removeView(currentMqttView);
+ }
+
+ if (decorView == null) {
+ decorView = (ViewGroup) getWindow().getDecorView();
+ }
+
+ currentMqttView = LayoutInflater.from(this).inflate(com.xscm.moduleutil.R.layout.item_piaoping, null);
+ FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
+ FrameLayout.LayoutParams.MATCH_PARENT,
+ FrameLayout.LayoutParams.WRAP_CONTENT);
+ layoutParams.topMargin = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 70);
+ layoutParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
+ currentMqttView.setLayoutParams(layoutParams);
+ decorView.addView(currentMqttView);
+
+ updateFloatingViewData(currentMqttView, mqttBean);
+ resetAndStartMqttAnimation(currentMqttView, () -> {
+ // 清理当前视图
+ if (currentMqttView != null && currentMqttView.getParent() != null) {
+ ViewGroup parent = (ViewGroup) currentMqttView.getParent();
+ parent.removeView(currentMqttView);
+ }
+ currentMqttView = null;
+
+ // 处理队列中的下一条消息
+ synchronized (mqttQueueLock) {
+ isMqttPlaying = false;
+ processNextMqttMessage();
+ }
+ });
+ } catch (Exception e) {
+ LogUtils.e("显示MQTT飘屏失败", e);
+ // 出现异常时继续处理队列
+ synchronized (mqttQueueLock) {
+ isMqttPlaying = false;
+ processNextMqttMessage();
+ }
+ }
+ }
+
+ private void showPiaoPingMessageXlh(XLHBean event) {
+ try {
+ // 清理之前的视图(如果存在)
+ if (currentXlhView != null && currentXlhView.getParent() != null) {
+ ViewGroup parent = (ViewGroup) currentXlhView.getParent();
+ parent.removeView(currentXlhView);
+ }
+
+ if (decorView1 == null) {
+ decorView1 = (ViewGroup) getWindow().getDecorView();
+ }
+
+ currentXlhView = LayoutInflater.from(this).inflate(com.xscm.moduleutil.R.layout.item_piaoping_xlh, null);
+ FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
+ FrameLayout.LayoutParams.MATCH_PARENT,
+ FrameLayout.LayoutParams.WRAP_CONTENT);
+ layoutParams.topMargin = com.sunfusheng.marqueeview.DisplayUtil.dip2px(this, 100);
+ layoutParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
+ currentXlhView.setLayoutParams(layoutParams);
+ decorView1.addView(currentXlhView);
+
+ updateXlhFloatingViewData(currentXlhView, event);
+ resetAndStartXlhAnimation(currentXlhView, () -> {
+ // 清理当前视图
+ if (currentXlhView != null && currentXlhView.getParent() != null) {
+ ViewGroup parent = (ViewGroup) currentXlhView.getParent();
+ parent.removeView(currentXlhView);
+ }
+ currentXlhView = null;
+
+ // 处理队列中的下一条消息
+ synchronized (xlhQueueLock) {
+ isXlhPlaying = false;
+ processNextXlhMessage();
+ }
+ });
+ } catch (Exception e) {
+ LogUtils.e("显示XLH飘屏失败", e);
+ // 出现异常时继续处理队列
+ synchronized (xlhQueueLock) {
+ isXlhPlaying = false;
+ processNextXlhMessage();
+ }
+ }
+ }
+
+ private void resetAndStartMqttAnimation(View view, Runnable onAnimationEnd) {
+ try {
+ int screenWidth = getScreenWidth();
+ // 设置初始位置:在屏幕右侧外部(完全不可见)
+ view.setTranslationX(screenWidth);
+
+
+ TranslateAnimation enterAnim = new TranslateAnimation(
+ Animation.ABSOLUTE, screenWidth,
+ Animation.ABSOLUTE, (screenWidth - SystemUtils.getWidth(316)) / 2,
+ Animation.ABSOLUTE, 0,
+ Animation.ABSOLUTE, 0
+ );
+ enterAnim.setDuration(1500);
+ enterAnim.setInterpolator(new DecelerateInterpolator(2.0f));
+ enterAnim.setAnimationListener(new Animation.AnimationListener() {
+ @Override
+ public void onAnimationStart(Animation animation) {
+ }
+
+ @Override
+ public void onAnimationEnd(Animation animation) {
+ // 停留后退出
+ postDelayed(() -> {
+ TranslateAnimation exitAnim = new TranslateAnimation(
+ Animation.ABSOLUTE, (screenWidth - SystemUtils.getWidth(316)) / 2,
+ Animation.ABSOLUTE, -screenWidth,
+ Animation.ABSOLUTE, 0,
+ Animation.ABSOLUTE, 0
+ );
+ exitAnim.setDuration(3000);
+ exitAnim.setInterpolator(new DecelerateInterpolator(2f));
+ exitAnim.setAnimationListener(new Animation.AnimationListener() {
+ @Override
+ public void onAnimationStart(Animation animation) {
+ }
+
+ @Override
+ public void onAnimationEnd(Animation animation) {
+ // 移除视图并处理下一个
+ onAnimationEnd.run();
+ }
+
+ @Override
+ public void onAnimationRepeat(Animation animation) {
+ }
+ });
+ view.startAnimation(exitAnim);
+ }, 5000); // 停留1秒
+ }
+
+ @Override
+ public void onAnimationRepeat(Animation animation) {
+ }
+ });
+ view.startAnimation(enterAnim);
+
+ } catch (Exception e) {
+ LogUtils.e("MQTT动画启动失败", e);
+ onAnimationEnd.run();
+ }
+ }
+
+ // 添加获取屏幕宽度的方法
+ private int getScreenWidth() {
+ DisplayMetrics displayMetrics = new DisplayMetrics();
+ if (getWindowManager() != null) {
+ getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
+ return displayMetrics.widthPixels;
+ }
+ return getResources().getDisplayMetrics().widthPixels;
+ }
+
+ private void resetAndStartXlhAnimation(View view, Runnable onAnimationEnd) {
+ try {
+ view.setTranslationX(view.getWidth());
+ ObjectAnimator animator1 = ObjectAnimator.ofFloat(view, "translationX", view.getWidth(), 0f);
+ animator1.setDuration(1500);
+ animator1.setInterpolator(new DecelerateInterpolator(2.0f));
+ animator1.start();
+
+ view.postDelayed(() -> {
+ try {
+ ObjectAnimator animator2 = ObjectAnimator.ofFloat(view, "translationX", 0f, -view.getWidth());
+ animator2.setDuration(1500);
+ animator2.setInterpolator(new DecelerateInterpolator(2.0f));
+ animator2.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ onAnimationEnd.run();
+ }
+
+ @Override
+ public void onAnimationCancel(Animator animation) {
+ onAnimationEnd.run();
+ }
+ });
+ animator2.start();
+ } catch (Exception e) {
+ LogUtils.e("XLH动画执行失败", e);
+ onAnimationEnd.run();
+ }
+ }, 5000);
+ } catch (Exception e) {
+ LogUtils.e("XLH动画启动失败", e);
+ onAnimationEnd.run();
+ }
+ }
+
+ private void updateFloatingViewData(View view, MqttBean.ListBean mqttBean) {
+ TextView textView = view.findViewById(com.xscm.moduleutil.R.id.tv_name);
+ TextView textView2 = view.findViewById(com.xscm.moduleutil.R.id.tv_to_name);
+ TextView tv_time = view.findViewById(com.xscm.moduleutil.R.id.tv_num);
+
+ if (mqttBean != null) {
+ textView2.setText("送给" + (mqttBean.getToUserName() != null ? mqttBean.getToUserName() : ""));
+ textView.setText(mqttBean.getFromUserName() != null ? mqttBean.getFromUserName() : "");
+ if (mqttBean.getGift_picture() != null) {
+ ImageUtils.loadHeadCC(mqttBean.getGift_picture(), view.findViewById(com.xscm.moduleutil.R.id.iv_piaoping));
+ }
+ tv_time.setText("x" + (mqttBean.getNumber() != null ? mqttBean.getNumber() : "1"));
+ } else {
+ textView2.setText("送给");
+ textView.setText("");
+ tv_time.setText("x1");
+ }
+ }
+
+ private void updateXlhFloatingViewData(View view, XLHBean xlhBean) {
+ TextView textView = view.findViewById(R.id.tv_name);
+ ImageView xlh_image = view.findViewById(R.id.im_xlh);
+
+ if (xlhBean != null) {
+ xlh_image.setImageDrawable(xlhBean.getFrom_type() == 1 ?
+ getResources().getDrawable(com.xscm.moduleutil.R.mipmap.xlh_jjks) :
+ getResources().getDrawable(com.xscm.moduleutil.R.mipmap.xlh_zsks));
+ textView.setText(xlhBean.getText());
+ } else {
+ textView.setText("");
+ }
+
+ view.setOnClickListener(v -> {
+ // 点击时执行跳转操作
+ handleItemClick(xlhBean);
+ });
+ }
+
+ private void handleItemClick(XLHBean xlhBean) {
+ // 这里可以根据实际需求实现跳转逻辑
+ // 例如:跳转到礼物详情页面、用户主页等
+ // 使用缓存数据进入房间
+ RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), xlhBean.getRoom_id(), "",null);
+
+ }
+
+ private void handleRedItemClick(RedBean redBean) {
+ // 这里可以根据实际需求实现跳转逻辑
+ // 例如:跳转到礼物详情页面、用户主页等
+ // 使用缓存数据进入房间
+ RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), redBean.getRoom_id(), "",null);
+ }
+
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onEvent(ChatInfo event) {
+ String id = event.getId().replace("g", "");
+ Intent intent = new Intent(this, WebViewActivity.class);
+ intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/union/setGroup?id=" + SpUtil.getToken() + "&guildId=" + id);
+ startActivity(intent);
+ }
+
+
+ public void toActivity(Class> clazz){
+ Intent intent = new Intent(this, clazz);
+ startActivity( intent);
+ }
+
+ public void toActivity(Class> clazz, Bundle bundle){
+ Intent intent = new Intent(this, clazz);
+ intent.putExtras(bundle);
+ startActivity(intent);
+ }
+
+
+}
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/WebViewActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/WebViewActivity.java
similarity index 98%
rename from moduleUtil/src/main/java/com/xscm/moduleutil/activity/WebViewActivity.java
rename to modulemain/src/main/java/com/xscm/modulemain/activity/WebViewActivity.java
index ea4a4f46..160d198d 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/WebViewActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/WebViewActivity.java
@@ -1,4 +1,4 @@
-package com.xscm.moduleutil.activity;
+package com.xscm.modulemain.activity;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
@@ -13,7 +13,6 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
-import android.view.MotionEvent;
import android.view.View;
import android.webkit.GeolocationPermissions;
import android.webkit.JavascriptInterface;
@@ -30,18 +29,17 @@ import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.util.LogUtils;
-import com.blankj.utilcode.util.ToastUtils;
-import com.xscm.moduleutil.R;
+import com.xscm.modulemain.R;
+import com.xscm.modulemain.databinding.ActivityWebViewBinding;
+import com.xscm.modulemain.manager.RoomManager;
+import com.xscm.moduleutil.activity.BaseAppCompatActivity;
import com.xscm.moduleutil.base.CommonAppContext;
-import com.xscm.moduleutil.base.RoomManager;
-import com.xscm.moduleutil.databinding.ActivityWebViewBinding;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.tencent.imsdk.v2.V2TIMConversation;
import com.tencent.mm.opensdk.modelbiz.WXOpenCustomerServiceChat;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import com.tencent.qcloud.tuicore.TUIConstants;
-import com.tencent.qcloud.tuikit.tuichat.classicui.page.TUIC2CChatActivity;
import com.tencent.qcloud.tuikit.tuichat.classicui.page.TUIGroupChatActivity;
/**
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/ForgetPasswordActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/ForgetPasswordActivity.java
index 44025afb..65f86fed 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/ForgetPasswordActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/ForgetPasswordActivity.java
@@ -10,7 +10,7 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.login.present.LoginContacter;
import com.xscm.modulemain.activity.login.present.LoginPresenter;
import com.xscm.modulemain.databinding.ActivityForgetPasswordBinding;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.ThemeBean;
import com.xscm.moduleutil.bean.UserBean;
/**
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/ImproveInfoActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/ImproveInfoActivity.java
index 1164de22..48e9cc32 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/ImproveInfoActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/ImproveInfoActivity.java
@@ -16,7 +16,7 @@ import com.xscm.modulemain.activity.login.contacts.ImproveInfoContacts;
import com.xscm.modulemain.activity.login.contacts.ImproveInfoPresenter;
import com.xscm.modulemain.activity.main.activity.MainActivity;
import com.xscm.modulemain.databinding.ActivityImproveInfoBinding;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.UserBean;
import com.xscm.moduleutil.utils.DateSelectDialog;
import com.xscm.moduleutil.utils.GlideEngine;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/LoginActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/LoginActivity.java
index de9bb62f..fb1454e4 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/LoginActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/LoginActivity.java
@@ -23,7 +23,7 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.login.present.LoginContacter;
import com.xscm.modulemain.activity.login.present.LoginPresenter;
import com.xscm.modulemain.databinding.ActivityLoginBinding;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.ThemeBean;
import com.xscm.moduleutil.bean.UserBean;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/SwitchAccountsActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/SwitchAccountsActivity.java
index 03d4359f..5ebbaf57 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/SwitchAccountsActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/login/activity/SwitchAccountsActivity.java
@@ -11,7 +11,7 @@ import com.xscm.modulemain.activity.login.present.LoginContacter;
import com.xscm.modulemain.activity.login.present.LoginPresenter;
import com.xscm.modulemain.adapter.SwitchAccountsAdapter;
import com.xscm.modulemain.databinding.ActivitySwitchAccountsBinding;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.ThemeBean;
import com.xscm.moduleutil.bean.UserBean;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/login/present/LoginPresenter.java b/modulemain/src/main/java/com/xscm/modulemain/activity/login/present/LoginPresenter.java
index e2bf1d02..7654a197 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/login/present/LoginPresenter.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/login/present/LoginPresenter.java
@@ -9,7 +9,7 @@ import com.blankj.utilcode.util.ToastUtils;
import com.xscm.modulemain.activity.login.activity.ImproveInfoActivity;
import com.xscm.modulemain.activity.login.activity.SwitchAccountsActivity;
import com.xscm.modulemain.activity.main.activity.MainActivity;
-import com.xscm.moduleutil.activity.WebViewActivity;
+import com.xscm.modulemain.activity.WebViewActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.ThemeBean;
import com.xscm.moduleutil.bean.UserBean;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/main/activity/MainActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/main/activity/MainActivity.java
index 4a1b7127..d6c5f226 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/main/activity/MainActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/main/activity/MainActivity.java
@@ -40,10 +40,10 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.main.contacts.HomeContacts;
import com.xscm.modulemain.databinding.ActivityMainBinding;
import com.xscm.modulemain.activity.main.presenter.HomePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.manager.RoomManager;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.adapter.AppUpdateDialog;
import com.xscm.moduleutil.base.CommonAppContext;
-import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.*;
import com.xscm.moduleutil.bean.room.RoomOnline;
import com.xscm.moduleutil.bean.room.RoomOnlineBean;
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/news/NewsContacts.java b/modulemain/src/main/java/com/xscm/modulemain/activity/msg/NewsContacts.java
similarity index 92%
rename from moduleUtil/src/main/java/com/xscm/moduleutil/activity/news/NewsContacts.java
rename to modulemain/src/main/java/com/xscm/modulemain/activity/msg/NewsContacts.java
index 94711cda..b3b39f2e 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/news/NewsContacts.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/msg/NewsContacts.java
@@ -1,4 +1,4 @@
-package com.xscm.moduleutil.activity.news;
+package com.xscm.modulemain.activity.msg;
import android.app.Activity;
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/news/NewsPresenter.java b/modulemain/src/main/java/com/xscm/modulemain/activity/msg/NewsPresenter.java
similarity index 95%
rename from moduleUtil/src/main/java/com/xscm/moduleutil/activity/news/NewsPresenter.java
rename to modulemain/src/main/java/com/xscm/modulemain/activity/msg/NewsPresenter.java
index 79cda6e3..0a7753e7 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/news/NewsPresenter.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/msg/NewsPresenter.java
@@ -1,4 +1,4 @@
-package com.xscm.moduleutil.activity.news;
+package com.xscm.modulemain.activity.msg;
import android.content.Context;
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/news/OfficialNoticeActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/msg/OfficialNoticeActivity.java
similarity index 93%
rename from moduleUtil/src/main/java/com/xscm/moduleutil/activity/news/OfficialNoticeActivity.java
rename to modulemain/src/main/java/com/xscm/modulemain/activity/msg/OfficialNoticeActivity.java
index 2a2270f5..462b102e 100644
--- a/moduleUtil/src/main/java/com/xscm/moduleutil/activity/news/OfficialNoticeActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/msg/OfficialNoticeActivity.java
@@ -1,4 +1,4 @@
-package com.xscm.moduleutil.activity.news;
+package com.xscm.modulemain.activity.msg;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
@@ -10,20 +10,18 @@ import android.view.View;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
-import com.alibaba.android.arouter.launcher.ARouter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
-import com.xscm.moduleutil.R;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
-import com.xscm.moduleutil.activity.WebViewActivity;
-import com.xscm.moduleutil.base.RoomManager;
-import com.xscm.moduleutil.bean.NewsMessageList;
-import com.xscm.moduleutil.databinding.ActivityOfficialNoticeBinding;
-import com.xscm.moduleutil.utils.ARouteConstants;
-import com.xscm.moduleutil.utils.ImageUtils;
-import com.xscm.moduleutil.utils.TimeUtils;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
+import com.xscm.modulemain.BaseMvpActivity;
+import com.xscm.modulemain.R;
+import com.xscm.modulemain.databinding.ActivityOfficialNoticeBinding;
+import com.xscm.modulemain.manager.RoomManager;
+import com.xscm.modulemain.activity.WebViewActivity;
+import com.xscm.moduleutil.bean.NewsMessageList;
+import com.xscm.moduleutil.utils.ImageUtils;
+import com.xscm.moduleutil.utils.TimeUtils;
import java.util.List;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/msg/fragment/NewsFragment.java b/modulemain/src/main/java/com/xscm/modulemain/activity/msg/fragment/NewsFragment.java
index 5d40f958..c7414bb6 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/msg/fragment/NewsFragment.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/msg/fragment/NewsFragment.java
@@ -11,10 +11,10 @@ import com.tencent.imsdk.v2.V2TIMConversation;
import com.tencent.qcloud.tuicore.TUIConstants;
import com.tencent.qcloud.tuikit.tuichat.classicui.page.TUIC2CChatActivity;
import com.tencent.qcloud.tuikit.tuiconversation.classicui.page.TUIConversationFragment;
+import com.xscm.modulemain.activity.msg.OfficialNoticeActivity;
import com.xscm.modulemain.activity.msg.contacts.NewsContacts;
import com.xscm.modulemain.activity.msg.presenter.NewsPresenter;
import com.xscm.modulemain.databinding.FragmentNewsBinding;
-import com.xscm.moduleutil.activity.news.OfficialNoticeActivity;
import com.xscm.moduleutil.adapter.MyFragmentPagerAdapter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.CommonAppContext;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/DynamicDetailActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/DynamicDetailActivity.java
index 1b195b83..d663c6cb 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/DynamicDetailActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/DynamicDetailActivity.java
@@ -25,10 +25,10 @@ import com.xscm.modulemain.databinding.ActivityDynamicDetailBinding;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
+import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.adapter.CirleListAdapter;
import com.xscm.moduleutil.adapter.CommentAdapter;
-import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.CircleListBean;
import com.xscm.moduleutil.bean.CommentBean;
import com.xscm.moduleutil.bean.ExpandColumnBean;
@@ -40,7 +40,7 @@ import com.xscm.moduleutil.utils.ChatLauncher;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.dialog.CommentDialogFragment;
import com.xscm.moduleutil.widget.dialog.RewardGiftDialogFragment;
-import com.xscm.moduleutil.widget.dialog.ShareDialog;
+import com.xscm.modulemain.dialog.ShareDialog;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/DynamicListActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/DynamicListActivity.java
index fd10b340..4a6ef2e4 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/DynamicListActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/DynamicListActivity.java
@@ -13,9 +13,9 @@ import com.xscm.modulemain.databinding.ActivityDynamicListBinding;
import com.xscm.modulemain.activity.user.activity.UserHomepageActivity;
import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
+import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.adapter.CirleListAdapter;
-import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.CircleListBean;
import com.xscm.moduleutil.bean.CommentBean;
import com.xscm.moduleutil.bean.ExpandColumnBean;
@@ -25,7 +25,7 @@ import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ChatLauncher;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.widget.dialog.RewardGiftDialogFragment;
-import com.xscm.moduleutil.widget.dialog.ShareDialog;
+import com.xscm.modulemain.dialog.ShareDialog;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/ReleaseActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/ReleaseActivity.java
index c95c7898..dac2ca31 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/ReleaseActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/activity/ReleaseActivity.java
@@ -31,7 +31,7 @@ import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia;
import com.xscm.modulemain.activity.plaza.contacts.ReleaseContract;
import com.xscm.modulemain.activity.plaza.presenter.ReleasePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.adapter.UserPhotoWallAdapter;
import com.xscm.moduleutil.bean.HeatedBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/fragment/CircleCategoryFragment.java b/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/fragment/CircleCategoryFragment.java
index e13c91a1..a2438192 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/fragment/CircleCategoryFragment.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/fragment/CircleCategoryFragment.java
@@ -18,9 +18,9 @@ import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xscm.modulemain.activity.plaza.activity.DynamicListActivity;
import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
+import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.adapter.CirleListAdapter;
import com.xscm.moduleutil.base.BaseMvpFragment;
-import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.BaseListData;
import com.xscm.moduleutil.bean.CircleListBean;
import com.xscm.moduleutil.bean.CommentBean;
@@ -30,7 +30,7 @@ import com.xscm.moduleutil.event.GiftRewardEvent;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ChatLauncher;
import com.xscm.moduleutil.widget.dialog.RewardGiftDialogFragment;
-import com.xscm.moduleutil.widget.dialog.ShareDialog;
+import com.xscm.modulemain.dialog.ShareDialog;
import com.zhpan.bannerview.indicator.DrawableIndicator;
import com.zhpan.indicator.base.IIndicator;
import com.zhpan.indicator.enums.IndicatorSlideMode;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/fragment/ExpandColumnFragment.java b/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/fragment/ExpandColumnFragment.java
index c0b4ad2b..e518fb64 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/fragment/ExpandColumnFragment.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/plaza/fragment/ExpandColumnFragment.java
@@ -14,8 +14,8 @@ import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xscm.modulemain.activity.plaza.contacts.CircleContacts;
import com.xscm.modulemain.activity.plaza.presenter.CirclePresenter;
+import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.base.BaseMvpFragment;
-import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.CircleListBean;
import com.xscm.moduleutil.bean.CommentBean;
import com.xscm.moduleutil.bean.ExpandColumnBean;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/PopularRoomActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/PopularRoomActivity.java
index 7607caae..3c513bfa 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/PopularRoomActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/PopularRoomActivity.java
@@ -12,9 +12,9 @@ import com.xscm.modulemain.activity.room.contacts.VoiceCategoryContacts;
import com.xscm.modulemain.activity.room.presenter.VoiceCategoryPresenter;
import com.xscm.modulemain.adapter.PopularRoomAdapter;
import com.xscm.modulemain.databinding.ActivityPopularRoomBinding;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
+import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.base.CommonAppContext;
-import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.BannerModel;
import com.xscm.moduleutil.bean.RoomTypeModel;
import com.xscm.moduleutil.bean.TopRoom;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RankingListActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RankingListActivity.java
index e5cc8551..20be4649 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RankingListActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RankingListActivity.java
@@ -11,6 +11,7 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.adapter.SectionsPagerAdapter;
import com.xscm.modulemain.databinding.ActivityRankingListBinding;
import com.xscm.moduleutil.activity.BaseAppCompatActivity;
+
/**
*@author lxj
*@data 2025/5/15
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RedResultActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RedResultActivity.java
index 41e0368f..9ea7a3ae 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RedResultActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RedResultActivity.java
@@ -12,7 +12,7 @@ import com.xscm.modulemain.activity.room.fragment.RedViewModel;
import com.xscm.modulemain.activity.room.presenter.RedEnvelopesPresenter;
import com.xscm.modulemain.adapter.RedAdapter;
import com.xscm.modulemain.databinding.FragmentRedBinding;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.RedpacketDetail;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ImageUtils;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt b/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt
index e75f2a43..2631b1e9 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt
@@ -73,13 +73,12 @@ import com.xscm.modulemain.dialog.RoomSettingFragment
import com.xscm.modulemain.dialog.SoundEffectsDialogFragment
import com.xscm.modulemain.service.ForegroundService
import com.xscm.modulemain.service.RoomPlayService
-import com.xscm.moduleutil.activity.BaseMvpActivity
+import com.xscm.modulemain.BaseMvpActivity
import com.xscm.moduleutil.adapter.CommonPageAdapter
import com.xscm.moduleutil.adapter.LikeUserAdapter
import com.xscm.moduleutil.base.AppStateListener
import com.xscm.moduleutil.base.AppStateManager
import com.xscm.moduleutil.base.CommonAppContext
-import com.xscm.moduleutil.base.RoomManager
import com.xscm.moduleutil.bean.*
import com.xscm.moduleutil.bean.RoomMessageEvent.T
import com.xscm.moduleutil.bean.RoomMessageEvent.text
@@ -90,8 +89,9 @@ import com.xscm.moduleutil.bean.room.RoomAuction.AuctionUserBean
import com.xscm.moduleutil.color.ThemeableDrawableUtils
import com.xscm.moduleutil.dialog.ConfirmDialog
import com.xscm.moduleutil.dialog.RechargeDialogFragment
-import com.xscm.moduleutil.dialog.giftLottery.GiftLotteryDialog
-import com.xscm.moduleutil.dialog.giftLottery.TourClubDialogFragment
+import com.xscm.modulemain.dialog.GiftLotteryDialog
+import com.xscm.modulemain.dialog.TourClubDialogFragment
+import com.xscm.modulemain.manager.RoomManager
import com.xscm.moduleutil.event.*
import com.xscm.moduleutil.event.RoomWheatEvent
import com.xscm.moduleutil.http.BaseObserver
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/SearchActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/SearchActivity.java
index 68338369..7ce894e3 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/SearchActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/room/activity/SearchActivity.java
@@ -21,8 +21,8 @@ import com.xscm.modulemain.activity.room.presenter.SearchPresenter;
import com.google.android.flexbox.FlexDirection;
import com.google.android.flexbox.FlexWrap;
import com.google.android.flexbox.FlexboxLayoutManager;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
-import com.xscm.moduleutil.base.RoomManager;
+import com.xscm.modulemain.BaseMvpActivity;
+import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.bean.RecordSection;
import com.xscm.moduleutil.bean.RoomSearchResp;
import com.xscm.moduleutil.bean.SearchAll;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/HotListFragment.java b/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/HotListFragment.java
index ad7e7266..e263b052 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/HotListFragment.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/HotListFragment.java
@@ -14,9 +14,9 @@ import com.xscm.modulemain.databinding.FragmentHotListBinding;
import com.xscm.modulemain.activity.room.presenter.HotListPresenter;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
+import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.CommonAppContext;
-import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.HomeBean;
import com.xscm.moduleutil.bean.TopRoom;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomAuctionFragment.java b/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomAuctionFragment.java
index 8ec2c434..ee5ca554 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomAuctionFragment.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomAuctionFragment.java
@@ -46,7 +46,7 @@ import com.xscm.moduleutil.bean.room.RoomBean;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.bean.room.RoomPitBean;
import com.xscm.moduleutil.dialog.ConfirmDialog;
-import com.xscm.moduleutil.dialog.RoomAuctionWebViewDialog;
+import com.xscm.modulemain.dialog.RoomAuctionWebViewDialog;
import com.xscm.moduleutil.utils.ClickUtils;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageUtils;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/VoiceCategoryFragment.java b/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/VoiceCategoryFragment.java
index ade9190f..1d308463 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/VoiceCategoryFragment.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/VoiceCategoryFragment.java
@@ -25,17 +25,17 @@ import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import com.stx.xhb.xbanner.XBanner;
import com.xscm.modulemain.R;
+import com.xscm.modulemain.activity.msg.OfficialNoticeActivity;
import com.xscm.modulemain.activity.room.activity.PopularRoomActivity;
import com.xscm.modulemain.activity.room.activity.RankingListActivity;
import com.xscm.modulemain.activity.room.contacts.VoiceCategoryContacts;
import com.xscm.modulemain.activity.room.presenter.VoiceCategoryPresenter;
import com.xscm.modulemain.adapter.CarouselBannerAdapter;
import com.xscm.modulemain.databinding.FragmentVoiceCategoryBinding;
-import com.xscm.moduleutil.activity.WebViewActivity;
-import com.xscm.moduleutil.activity.news.OfficialNoticeActivity;
+import com.xscm.modulemain.activity.WebViewActivity;
+import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.CommonAppContext;
-import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.BannerModel;
import com.xscm.moduleutil.bean.RoomTypeModel;
import com.xscm.moduleutil.bean.TopRoom;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/VoiceFragment.java b/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/VoiceFragment.java
index 3558fda9..0ea77d16 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/VoiceFragment.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/room/fragment/VoiceFragment.java
@@ -20,7 +20,7 @@ import com.xscm.moduleutil.bean.ActivitiesPermission;
import com.xscm.moduleutil.bean.FirstChargeGiftBean;
import com.xscm.moduleutil.dialog.FirstChargeDialog;
import com.xscm.moduleutil.dialog.RechargeDialogFragment;
-import com.xscm.moduleutil.dialog.YouthModelDialog;
+import com.xscm.modulemain.dialog.YouthModelDialog;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.SpUtil;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/AboutUsActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/AboutUsActivity.java
index 7acb9924..661f5b80 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/AboutUsActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/AboutUsActivity.java
@@ -5,8 +5,8 @@ import android.content.Intent;
import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivityAboutUsBinding;
+import com.xscm.modulemain.activity.WebViewActivity;
import com.xscm.moduleutil.activity.BaseAppCompatActivity;
-import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.widget.CommonAppConfig;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/AlbumDetailActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/AlbumDetailActivity.java
index 00047a88..99eabe3f 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/AlbumDetailActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/AlbumDetailActivity.java
@@ -30,14 +30,14 @@ import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xscm.modulemain.activity.user.conacts.AlbumDetailConacts;
import com.xscm.modulemain.activity.user.presenter.AlbumDetailPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.AlbumBean;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.GlideEngine;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.Constants;
-import com.xscm.moduleutil.widget.dialog.ShareDialog;
+import com.xscm.modulemain.dialog.ShareDialog;
import java.io.File;
import java.text.SimpleDateFormat;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BindCardActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BindCardActivity.java
index e88c1fc9..aad030e9 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BindCardActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BindCardActivity.java
@@ -9,7 +9,7 @@ import com.xscm.modulemain.adapter.BindCardAdapter;
import com.xscm.modulemain.databinding.ActivityBindCardBinding;
import com.xscm.modulemain.activity.user.conacts.WithdrawalConacts;
import com.xscm.modulemain.activity.user.presenter.WithdrawalPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.BindDetail;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.WalletBean;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BindCardDetailsActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BindCardDetailsActivity.java
index 3cb141b2..51887ed2 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BindCardDetailsActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BindCardDetailsActivity.java
@@ -10,7 +10,7 @@ import com.xscm.modulemain.databinding.ActivityBindCardDetailsBinding;
import com.hjq.toast.ToastUtils;
import com.xscm.modulemain.activity.user.conacts.WithdrawalConacts;
import com.xscm.modulemain.activity.user.presenter.WithdrawalPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.BindDetail;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.WalletBean;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BlacklistActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BlacklistActivity.java
index 7c0928c8..215c2724 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BlacklistActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BlacklistActivity.java
@@ -7,7 +7,7 @@ import com.xscm.modulemain.adapter.BlackAdapter;
import com.xscm.modulemain.databinding.ActivityBlacklistBinding;
import com.xscm.modulemain.activity.user.conacts.BlacklistConacts;
import com.xscm.modulemain.activity.user.presenter.BlacklistPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.BlackUserBean;
import java.util.ArrayList;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BriefIntroductionActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BriefIntroductionActivity.java
index 98d89b20..0aa3afad 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BriefIntroductionActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/BriefIntroductionActivity.java
@@ -12,7 +12,7 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivityBriefIntroductionBinding;
import com.xscm.modulemain.activity.user.conacts.BriefIntroductionConacts;
import com.xscm.modulemain.activity.user.presenter.BriefIntroductionPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.UserTagBean;
import java.util.ArrayList;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/ChangPassActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/ChangPassActivity.java
index 368cce5c..0523b724 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/ChangPassActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/ChangPassActivity.java
@@ -7,7 +7,7 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivityChangePasswordBinding;
import com.xscm.modulemain.activity.user.conacts.ChangePasswordConactos;
import com.xscm.modulemain.activity.user.presenter.ChangePasswordPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.UserBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ColorManager;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/ChangeNicknameActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/ChangeNicknameActivity.java
index 6d9b2746..8b7317b9 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/ChangeNicknameActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/ChangeNicknameActivity.java
@@ -8,7 +8,7 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivityChangeNicknameBinding;
import com.xscm.modulemain.activity.user.conacts.ChangeNicknameConacts;
import com.xscm.modulemain.activity.user.presenter.ChangeNicknamePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.UserBean;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.utils.SpUtil;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CreateAlbumActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CreateAlbumActivity.java
index de2bc5d8..1174a85b 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CreateAlbumActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CreateAlbumActivity.java
@@ -16,7 +16,7 @@ import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia;
import com.xscm.modulemain.activity.user.conacts.MyAlbumConacts;
import com.xscm.modulemain.activity.user.presenter.MyAlbumPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.AlbumBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ARouteConstants;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CreatedRoomActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CreatedRoomActivity.java
index c0dfa005..537da875 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CreatedRoomActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CreatedRoomActivity.java
@@ -23,7 +23,7 @@ import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia;
import com.xscm.modulemain.activity.user.conacts.CreatedRoomConactos;
import com.xscm.modulemain.activity.user.presenter.CreatedRoomPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ARouteConstants;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CurrencyExchangeActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CurrencyExchangeActivity.java
index 62859caf..61a6e759 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CurrencyExchangeActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/CurrencyExchangeActivity.java
@@ -8,7 +8,7 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivityCurrencyExchangeBinding;
import com.xscm.modulemain.activity.user.conacts.CurrencyExchangeConacts;
import com.xscm.modulemain.activity.user.presenter.CurrencyExchangePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.WalletConfig;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java
index 2a0c33c1..040fd2c9 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java
@@ -16,10 +16,10 @@ import com.xscm.modulemain.databinding.ActivityDailyTasksBinding;
import com.hjq.toast.ToastUtils;
import com.xscm.modulemain.activity.user.conacts.DailyTasksConacts;
import com.xscm.modulemain.activity.user.presenter.DailyTasksPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
-import com.xscm.moduleutil.activity.WebViewActivity;
+import com.xscm.modulemain.BaseMvpActivity;
+import com.xscm.modulemain.activity.WebViewActivity;
+import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.base.CommonAppContext;
-import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.GiftBoxBean;
import com.xscm.moduleutil.bean.GiftName;
import com.xscm.moduleutil.bean.TaskItem;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/EditUserInfoActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/EditUserInfoActivity.java
index cf559b1b..e5ab94af 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/EditUserInfoActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/EditUserInfoActivity.java
@@ -31,7 +31,7 @@ import com.luck.picture.lib.entity.LocalMedia;
import com.stx.xhb.xbanner.XBanner;
import com.xscm.modulemain.activity.user.conacts.EditUserConactos;
import com.xscm.modulemain.activity.user.presenter.EditUserPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.HeatedBean;
import com.xscm.moduleutil.bean.UserBean;
import com.xscm.moduleutil.bean.UserInfo;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/GiftBoxRecordActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/GiftBoxRecordActivity.java
index 0226ee03..7bf22747 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/GiftBoxRecordActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/GiftBoxRecordActivity.java
@@ -8,7 +8,7 @@ import com.xscm.modulemain.adapter.GiftBoxAdapter;
import com.xscm.modulemain.databinding.ActivityGiftBoxRecordBinding;
import com.xscm.modulemain.activity.user.conacts.GiftBoxRecordConacts;
import com.xscm.modulemain.activity.user.presenter.GiftBoxRecordPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.GiftBoxRecordBean;
import java.util.List;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyBagActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyBagActivity.java
index 563e8dba..0c9f7015 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyBagActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyBagActivity.java
@@ -11,7 +11,7 @@ import com.xscm.modulemain.activity.user.conacts.MyBagConacts;
import com.xscm.modulemain.activity.user.fragment.mybag.MyBagFragment;
import com.xscm.modulemain.activity.user.fragment.mybag.MyBagListFragment;
import com.xscm.modulemain.activity.user.presenter.MyBagPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.GiftPackBean;
import com.xscm.moduleutil.bean.MyBagBean;
import com.xscm.moduleutil.bean.MyBagDataBean;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyMoneyActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyMoneyActivity.java
index 2e89f4ec..0456562b 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyMoneyActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyMoneyActivity.java
@@ -9,7 +9,7 @@ import com.xscm.modulemain.databinding.ActivityMyMoneyBinding;
import com.hjq.toast.ToastUtils;
import com.xscm.modulemain.activity.user.conacts.MyMoneyConactos;
import com.xscm.modulemain.activity.user.presenter.MyMoneyPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.WalletBean;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyRoomActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyRoomActivity.java
index f06141bb..a6bd8d12 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyRoomActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/MyRoomActivity.java
@@ -24,9 +24,9 @@ import com.xscm.modulemain.activity.user.fragment.MyFollowFragment;
import com.xscm.modulemain.activity.user.fragment.MyManageFragment;
import com.xscm.modulemain.activity.user.fragment.MyRoomListFragment;
import com.xscm.modulemain.activity.user.presenter.MyRoomPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
+import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.base.CommonAppContext;
-import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.AttentionResp;
import com.xscm.moduleutil.bean.ManageRoomResp;
import com.xscm.moduleutil.bean.MyCpRoom;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/PersonalityActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/PersonalityActivity.java
index 93cb2a07..64b992ad 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/PersonalityActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/PersonalityActivity.java
@@ -14,8 +14,8 @@ import com.xscm.modulemain.databinding.ActivityPersonalityBinding;
import com.xscm.modulemain.activity.user.conacts.PersonalityConacts;
import com.xscm.modulemain.activity.user.fragment.zhuangb.ZhuangBanShangChengFragment;
import com.xscm.modulemain.activity.user.presenter.PersonalityPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
-import com.xscm.moduleutil.activity.WebViewActivity;
+import com.xscm.modulemain.BaseMvpActivity;
+import com.xscm.modulemain.activity.WebViewActivity;
import com.xscm.moduleutil.adapter.MyPagerAdapter;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.PersonaltyBean;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/PhoneReplacementActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/PhoneReplacementActivity.java
index b67c240b..942a2bcf 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/PhoneReplacementActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/PhoneReplacementActivity.java
@@ -8,7 +8,7 @@ import com.xscm.modulemain.databinding.ActivityPhoneReplacementBinding;
import com.hjq.toast.ToastUtils;
import com.xscm.modulemain.activity.user.conacts.PhoneReplacementConacts;
import com.xscm.modulemain.activity.user.presenter.PhoneReplacementPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.SpUtil;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RealDetailActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RealDetailActivity.java
index b58d7b3f..a03b9899 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RealDetailActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RealDetailActivity.java
@@ -7,7 +7,7 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivityRealDeatilBinding;
import com.xscm.modulemain.activity.user.conacts.RealDetailConacts;
import com.xscm.modulemain.activity.user.presenter.RealDetailPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.RealNameBean;
import com.xscm.moduleutil.utils.ARouteConstants;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RealNameActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RealNameActivity.java
index b9a94921..c7ef4a1e 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RealNameActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RealNameActivity.java
@@ -22,7 +22,7 @@ import com.tencent.cloud.huiyansdkface.facelight.api.result.WbFaceVerifyResult;
import com.tencent.cloud.huiyansdkface.facelight.process.FaceVerifyStatus;
import com.xscm.modulemain.activity.user.conacts.RealNameConacts;
import com.xscm.modulemain.activity.user.presenter.RealNamePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.RealNameBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.dialog.ConfirmDialog;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RechargeActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RechargeActivity.java
index fc826b89..ea9feaf4 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RechargeActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RechargeActivity.java
@@ -26,7 +26,7 @@ import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import com.xscm.modulemain.activity.user.conacts.RechargeConactos;
import com.xscm.modulemain.activity.user.presenter.RechargePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.adapter.BalanceRechargeAdapter;
import com.xscm.moduleutil.adapter.PayMethodAdapter;
import com.xscm.moduleutil.base.CommonAppContext;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RevenueActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RevenueActivity.java
index be9bde01..8b60dda5 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RevenueActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RevenueActivity.java
@@ -14,7 +14,7 @@ import com.xscm.modulemain.databinding.ActivityRevenueBinding;
import com.xscm.modulemain.activity.user.conacts.RevenueConacts;
import com.xscm.modulemain.activity.user.fragment.RevenueFragment;
import com.xscm.modulemain.activity.user.presenter.RevenuePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.MyBagBean;
import com.xscm.moduleutil.bean.RevenueBean;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomAllowanceActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomAllowanceActivity.java
index d99d3d30..8e3e44d0 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomAllowanceActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomAllowanceActivity.java
@@ -11,7 +11,7 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivityRoomAllowanceBinding;
import com.xscm.modulemain.activity.user.conacts.RoomAllowanceContacts;
import com.xscm.modulemain.activity.user.presenter.RoomAllowancePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.RoomSubsidy;
import com.xscm.moduleutil.bean.RoomSubsidyDetails;
import com.xscm.moduleutil.utils.ARouteConstants;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomAllowanceDetailActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomAllowanceDetailActivity.java
index c3d9dea8..8da6c5ea 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomAllowanceDetailActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomAllowanceDetailActivity.java
@@ -14,7 +14,7 @@ import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xscm.modulemain.activity.user.conacts.RoomAllowanceContacts;
import com.xscm.modulemain.activity.user.presenter.RoomAllowancePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.RoomSubsidy;
import com.xscm.moduleutil.bean.RoomSubsidyDetails;
import com.xscm.moduleutil.utils.ARouteConstants;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomDetailsActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomDetailsActivity.java
index 60bd0650..3bcd425f 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomDetailsActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/RoomDetailsActivity.java
@@ -16,7 +16,7 @@ import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xscm.modulemain.activity.user.conacts.MyRoomListContacts;
import com.xscm.modulemain.activity.user.presenter.RoomDetailsPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.bean.RoomDetails;
import com.xscm.moduleutil.bean.details.BaseMultiItemEntity;
import com.xscm.moduleutil.bean.details.RoomDeatailList;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/SettingActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/SettingActivity.java
index 20d27680..368e0fee 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/SettingActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/SettingActivity.java
@@ -13,7 +13,7 @@ import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivitySettingBinding;
import com.xscm.modulemain.activity.user.conacts.SettingConacts;
import com.xscm.modulemain.activity.user.presenter.SettingPresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
+import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.dialog.RealNameDialog;
import com.xscm.moduleutil.utils.ARouteConstants;
diff --git a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/UnderageActivity.java b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/UnderageActivity.java
index 97891a87..4f964305 100644
--- a/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/UnderageActivity.java
+++ b/modulemain/src/main/java/com/xscm/modulemain/activity/user/activity/UnderageActivity.java
@@ -7,12 +7,13 @@ import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
+import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivityUnderageBinding;
import com.xscm.modulemain.activity.user.presenter.UnderagePresenter;
-import com.xscm.moduleutil.activity.BaseMvpActivity;
-import com.xscm.moduleutil.activity.WebViewActivity;
+import com.xscm.modulemain.BaseMvpActivity;
+import com.xscm.modulemain.activity.WebViewActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ColorManager;
@@ -127,7 +128,7 @@ public class UnderageActivity extends BaseMvpActivity 0 && box_price > 0) {
if (type == 10) {
@@ -522,61 +519,61 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment() {
-//
-// @Override
-// public void onSubscribe(Disposable d) {
-// }
-//
-// @Override
-// public void onNext(RoomInfoResp resp) {
-// String appId = CommonAppContext.getInstance().getCurrentEnvironment().getSwSdkAppId();
-// String token = resp.getUser_info().getAgora_token(); // 如果启用了鉴权才需要
-// String roomId = resp.getRoom_info().getRoom_id(); // 房间 ID
-// String rtm_token=resp.getUser_info().getAgora_rtm_token();
-// SpUtil.setRtmToken(rtm_token);
-// int uid = SpUtil.getUserId(); // 0 表示由 Agora 自动生成 UID
-// boolean enableMic = false; // 是否开启麦克风
-// boolean enableJs=false; // 是否开启角色
-// if (resp.getUser_info().getPit_number()!=0){
-// enableJs=true;
-// }
-// LogUtils.e("token",token);
-// LogUtils.e("roomId:",roomId);
-//// 初始化 Agora 并加入房间
-// AgoraManager.getInstance(context)
-// .joinRoom(token, roomId, uid, enableMic,enableJs);
-// cacheRoomData(roomId, resp);
-// navigateToRoom(context, roomId, password, resp);
-// }
-// });
-
- // 临时实现 - 直接跳转(因为缺少具体的网络请求代码)
-// navigateToRoom(context, roomId, password, null);
}
private void upInfo(Context context, String roomId, String password, boolean isOnline, RoomInfoResp roomInfo, boolean isCurrentRoom,String taskId) {
-
-
if (isOnline) {
RetrofitClient.getInstance().postRoomInfo(roomId, new BaseObserver() {
@@ -215,7 +155,6 @@ public class RoomManager {
navigateToRoom(context, roomId, password, roomInfoResp, false,taskId);
}
});
-// navigateToRoom(context, roomId, password, roomInfo, isOnline);
} else {
fetchAndJoinRoom(context, roomId, password,taskId);
}
@@ -230,14 +169,6 @@ public class RoomManager {
*/
private void fetchAndJoinRoom(Context context, String roomId, String password,String taskId) {
// 获取房间数据
-
- // 等待一段时间确保退出完成
-// try {
-// Thread.sleep(50);
-// } catch (InterruptedException e) {
-// Thread.currentThread().interrupt();
-// }
-// navigateToRoom(context, roomId, password, null, false);
RetrofitClient.getInstance().roomGetIn(roomId, password, new BaseObserver() {
@Override
@@ -259,7 +190,7 @@ public class RoomManager {
}
LogUtils.e("token", token);
LogUtils.e("roomId:", roomId);
-// 初始化 Agora 并加入房间
+ // 初始化 Agora 并加入房间
AgoraManager.getInstance(context)
.joinRoom(token, roomId, uid, enableMic, enableJs);
cacheRoomData(roomId, resp);
@@ -308,30 +239,33 @@ public class RoomManager {
try {
// 构建跳转参数
- Bundle bundle = new Bundle();
- bundle.putString("roomId", roomId);
- bundle.putBoolean("isOnline", isOnline);
- bundle.putSerializable("roomInfo", roomInfo);
+ Intent intent = new Intent(ActivityUtils.getTopActivity(), RoomActivity.class);
+ intent.putExtra("roomId", roomId);
+ intent.putExtra("isOnline", isOnline);
+ intent.putExtra("roomInfo", roomInfo);
if (!TextUtils.isEmpty(password)) {
- bundle.putString("password", password);
+ intent.putExtra("password", password);
}
if (taskId != null){
- bundle.putString("taskId", taskId);
+ intent.putExtra("taskId", taskId);
}
if (roomInfo == null){
LogUtils.dTag("RoomActivity", "navigateToRoom:房间信息获取存在问题");
return;
}
-
// 使用ARouter跳转到房间页面
- ARouter.getInstance()
- .build(ARouteConstants.ROOM_DETAILS)
- .with(bundle)
- .navigation(context);
+// ARouter.getInstance()
+// .build(ARouteConstants.ROOM_DETAILS)
+// .with(bundle)
+// .navigation(context);
+
+
+ ActivityUtils.getTopActivity().startActivity(intent);
+
+
} catch (Exception e) {
Logger.e(TAG, "跳转房间页面失败: " + e.getMessage());
- }finally {
}
}
@@ -390,14 +324,6 @@ public class RoomManager {
// 这里应该实现检查用户是否在线的逻辑
// 可以通过检查Agora是否还在房间中,或者通过服务端接口查询用户状态等方式实现
// 目前返回false,需要根据实际需求实现具体逻辑
-// boolean isCurrentRoom=isCurrentRoom(roomId);
-// try {
-// Thread.sleep(300);
-// } catch (InterruptedException e) {
-// Thread.currentThread().interrupt();
-// }
-
-
final boolean[] isOnline = {false};
RetrofitClient.getInstance().getRoomOnline(roomId, "1", "50", new BaseObserver() {
diff --git a/moduleUtil/src/main/res/layout/activity_official_notice.xml b/modulemain/src/main/res/layout/activity_official_notice.xml
similarity index 97%
rename from moduleUtil/src/main/res/layout/activity_official_notice.xml
rename to modulemain/src/main/res/layout/activity_official_notice.xml
index 83aae5db..4c01430e 100644
--- a/moduleUtil/src/main/res/layout/activity_official_notice.xml
+++ b/modulemain/src/main/res/layout/activity_official_notice.xml
@@ -1,4 +1,3 @@
-
+ tools:context="com.xscm.modulemain.activity.WebViewActivity">
diff --git a/moduleUtil/src/main/res/layout/dialog_gift_lottery.xml b/modulemain/src/main/res/layout/dialog_gift_lottery.xml
similarity index 100%
rename from moduleUtil/src/main/res/layout/dialog_gift_lottery.xml
rename to modulemain/src/main/res/layout/dialog_gift_lottery.xml
diff --git a/modulemain/src/main/res/layout/dialog_gift_lottery_fragment.xml b/modulemain/src/main/res/layout/dialog_gift_lottery_fragment.xml
new file mode 100644
index 00000000..552697f0
--- /dev/null
+++ b/modulemain/src/main/res/layout/dialog_gift_lottery_fragment.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/moduleUtil/src/main/res/layout/dialog_pinnacle_time.xml b/modulemain/src/main/res/layout/dialog_pinnacle_time.xml
similarity index 100%
rename from moduleUtil/src/main/res/layout/dialog_pinnacle_time.xml
rename to modulemain/src/main/res/layout/dialog_pinnacle_time.xml
diff --git a/moduleUtil/src/main/res/layout/dialog_polic.xml b/modulemain/src/main/res/layout/dialog_polic.xml
similarity index 98%
rename from moduleUtil/src/main/res/layout/dialog_polic.xml
rename to modulemain/src/main/res/layout/dialog_polic.xml
index 05124156..899fedeb 100644
--- a/moduleUtil/src/main/res/layout/dialog_polic.xml
+++ b/modulemain/src/main/res/layout/dialog_polic.xml
@@ -7,7 +7,7 @@
+ type="com.xscm.modulemain.dialog.PolicyDialog.PolicyClickProxy" />