fix bugs.3

This commit is contained in:
2025-12-05 21:05:01 +08:00
parent b4ffa086fb
commit 60b910c38f
6 changed files with 61 additions and 234 deletions

View File

@@ -184,7 +184,7 @@ public class AgoraManager {
rtcEngine = (RtcEngineEx) RtcEngine.create(config);
} catch (Exception e) {
Log.e("AgoraManager", "Failed to create RtcEngine", e);
LogUtils.e("AgoraManager", "Failed to create RtcEngine", e);
return;
}
@@ -213,13 +213,13 @@ public class AgoraManager {
"}");
rtcEngine.setParameters("{\"che.video.mobile_1080p\":true}");
} catch (Exception e) {
Log.w("AgoraManager", "Failed to set parameters", e);
LogUtils.w("AgoraManager", "Failed to set parameters", e);
}
rtcEngine.enableVideo();
rtcEngine.setDefaultAudioRoutetoSpeakerphone(true);
} catch (Exception e) {
Log.e("AgoraManager", "Failed to configure RtcEngine", e);
LogUtils.e("AgoraManager", "Failed to configure RtcEngine", e);
}
}
}
@@ -240,7 +240,7 @@ public class AgoraManager {
*/
public void joinRoom(String token, String roomId, int uid, boolean isMicrophoneEnabled, boolean isCamerJs) {
if (rtcEngine == null) {
Log.e("AgoraManager", "RtcEngine not initialized");
LogUtils.e("AgoraManager", "RtcEngine not initialized");
init(CommonAppContext.getInstance().getCurrentEnvironment().getSwSdkAppId());
}
if (!mRoomId.isEmpty()) {
@@ -294,7 +294,7 @@ public class AgoraManager {
rtcEngine.leaveChannel();
}
} catch (Exception e) {
Log.e("AgoraManager", "Error during cleanup", e);
LogUtils.e("AgoraManager", "Error during cleanup", e);
} finally {
// 注意不要在这里将rtcEngine设置为null
// 应该在destroy方法中处理
@@ -563,7 +563,7 @@ public class AgoraManager {
@Override
public void onFirstRemoteAudioFrame(int uid, int elapsed) {
super.onFirstRemoteAudioFrame(uid, elapsed);
Log.i("RoomCabinFragment", "onFirstRemoteAudioFrame: uid->" + uid);
LogUtils.i("RoomCabinFragment", "onFirstRemoteAudioFrame: uid->" + uid);
}
@@ -584,7 +584,7 @@ public class AgoraManager {
@Override
public void onRemoteVideoStateChanged(int uid, int state, int reason, int elapsed) {
super.onRemoteVideoStateChanged(uid, state, reason, elapsed);
Log.i("RoomCabinFragment", "onRemoteVideoStateChanged:uid->" + uid + ", state->" + state);
LogUtils.i("RoomCabinFragment", "onRemoteVideoStateChanged:uid->" + uid + ", state->" + state);
if (state == Constants.REMOTE_AUDIO_STATE_STOPPED) {
ColoseCardEvent renderView = new ColoseCardEvent();
EventBus.getDefault().post(renderView);
@@ -1002,7 +1002,7 @@ public class AgoraManager {
LogUtils.e("AgoraManager", "isPreload: " + songCode);
// 确保 rtcEngine 已初始化
if (rtcEngine == null) {
Log.e("AgoraManager", "RtcEngine not initialized, cannot preload music");
LogUtils.e("AgoraManager", "RtcEngine not initialized, cannot preload music");
init(CommonAppContext.getInstance().getCurrentEnvironment().getSwSdkAppId());
return;
}
@@ -1012,11 +1012,11 @@ public class AgoraManager {
try {
musicContentCenter = IAgoraMusicContentCenter.create(rtcEngine);
if (musicContentCenter == null) {
Log.e("AgoraManager", "Failed to create musicContentCenter");
LogUtils.e("AgoraManager", "Failed to create musicContentCenter");
return;
}
} catch (Exception e) {
Log.e("AgoraManager", "Exception creating musicContentCenter", e);
LogUtils.e("AgoraManager", "Exception creating musicContentCenter", e);
return;
}
}
@@ -1026,11 +1026,11 @@ public class AgoraManager {
try {
musicPlayer = musicContentCenter.createMusicPlayer();
if (musicPlayer == null) {
Log.e("AgoraManager", "Failed to create musicPlayer");
LogUtils.e("AgoraManager", "Failed to create musicPlayer");
return;
}
} catch (Exception e) {
Log.e("AgoraManager", "Exception creating musicPlayer", e);
LogUtils.e("AgoraManager", "Exception creating musicPlayer", e);
return;
}
}
@@ -1039,7 +1039,7 @@ public class AgoraManager {
try {
code = musicContentCenter.isPreloaded(mSongCode);
} catch (Exception e) {
Log.e("AgoraManager", "Exception checking if song is preloaded", e);
LogUtils.e("AgoraManager", "Exception checking if song is preloaded", e);
return;
}
@@ -1050,13 +1050,13 @@ public class AgoraManager {
executeInBackground(() -> {
try {
Thread.sleep(3000); // 3秒延迟
Log.d("AgoraManager", "Preload result: " + result);
LogUtils.d("AgoraManager", "Preload result: " + result);
// 切换回主线程执行后续操作
createTrackedHandler(Looper.getMainLooper()).post(() -> {
isPreload(mSongCode, type);
});
} catch (Exception e) {
Log.e("AgoraManager", "Preload song failed: songCode=" + mSongCode, e);
LogUtils.e("AgoraManager", "Preload song failed: songCode=" + mSongCode, e);
}
});
} else {
@@ -1069,20 +1069,20 @@ public class AgoraManager {
executeInBackground(() -> {
try {
Thread.sleep(3000); // 3秒延迟
Log.d("AgoraManager", "Preload result: " + result);
LogUtils.d("AgoraManager", "Preload result: " + result);
// 切换回主线程执行后续操作
createTrackedHandler(Looper.getMainLooper()).post(() -> {
isPreload(mSongCode, type);
});
} catch (Exception e) {
Log.e("AgoraManager", "Preload song failed: songCode=" + mSongCode, e);
LogUtils.e("AgoraManager", "Preload song failed: songCode=" + mSongCode, e);
}
});
} else {
try {
musicPlayer.open(mSongCode, 0);
} catch (Exception e) {
Log.e("AgoraManager", "Open music failed: songCode=" + mSongCode, e);
LogUtils.e("AgoraManager", "Open music failed: songCode=" + mSongCode, e);
}
}
}
@@ -1091,7 +1091,7 @@ public class AgoraManager {
// 提取音乐播放器状态处理逻辑到单独的方法
private void handleMusicPlayerState(long songCode) {
if (musicPlayer == null) {
Log.e("AgoraManager", "Music player is null, cannot handle state");
LogUtils.e("AgoraManager", "Music player is null, cannot handle state");
return;
}
@@ -1114,7 +1114,7 @@ public class AgoraManager {
isPreload(songCode, 1);
});
} catch (Exception e) {
Log.e("AgoraManager", "Error in idle state handling", e);
LogUtils.e("AgoraManager", "Error in idle state handling", e);
}
});
break;
@@ -1150,7 +1150,7 @@ public class AgoraManager {
break;
}
} catch (Exception e) {
Log.e("AgoraManager", "Exception handling music player state", e);
LogUtils.e("AgoraManager", "Exception handling music player state", e);
}
}
@@ -1305,7 +1305,7 @@ public class AgoraManager {
musicList.remove(musicList.get(0));
});
} catch (Exception e) {
Log.e("AgoraManager", "Error in nextSong", e);
LogUtils.e("AgoraManager", "Error in nextSong", e);
}
});
@@ -1393,7 +1393,7 @@ public class AgoraManager {
public static byte[] convertFileToByteArray(File file) {
if (file == null || !file.exists()) {
Log.e("AgoraManager", "File is null or does not exist");
LogUtils.e("AgoraManager", "File is null or does not exist");
return null;
}
@@ -1404,16 +1404,16 @@ public class AgoraManager {
byteArray = new byte[(int) file.length()];
int bytesRead = fis.read(byteArray);
if (bytesRead != byteArray.length) {
Log.w("AgoraManager", "Could not read entire file: " + file.getPath());
LogUtils.w("AgoraManager", "Could not read entire file: " + file.getPath());
}
} catch (Exception e) {
Log.e("AgoraManager", "Error converting file to byte array", e);
LogUtils.e("AgoraManager", "Error converting file to byte array", e);
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.e("AgoraManager", "Error closing file input stream", e);
LogUtils.e("AgoraManager", "Error closing file input stream", e);
}
}
}

View File

@@ -18,6 +18,8 @@ open class Application : CommonAppContext() {
var LOGUTILS_SAVE_PATH = ""
var CRASHUTILS_SAVE_PATH = ""
var isAgoraStop = false
// 单例实例
companion object {
@Volatile

View File

@@ -302,10 +302,7 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
btnConfirm.setOnClickListener(v -> {
topicId=new ArrayList<>();
List<HeatedBean> selectedTopics = adapter.getSelectedItems();
if (selectedTopics==null || selectedTopics.isEmpty()){
ToastUtils.showShort("请选择话题");
return;
}
// 返回结果给调用页面(可使用接口或 onActivityResult 等方式)
Log.d("Selected Topics", selectedTopics.toString());
List<String> selectedTopicIds = new ArrayList<>();
@@ -317,7 +314,9 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
topicId.add(topic.getTopic_id());
}
// 示例:更新 UI
((TextView)findViewById(R.id.tv_ht)).setText("已选:" + TextUtils.join(",", selectedTopicIds));
if (!selectedTopicIds.isEmpty()) {
((TextView) findViewById(R.id.tv_ht)).setText("已选:" + TextUtils.join(",", selectedTopicIds));
}
dialog.dismiss();
});

View File

@@ -1912,7 +1912,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
RoomType.JUKEBOX -> {
mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber)
// getPitBean(messageEvent, 1)
roomFragment!!.upRoomInfoData(mRoomInfoResp)
roomFragment?.handleRoomMessage(messageEvent)
}
@@ -3269,7 +3268,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
// TODO:不进入 2025/8/26 加入房间
override fun roomInfo(resp: RoomInfoResp) {
getHour()
mRoomInfoResp = resp
isOnline = true
password = ""
@@ -3652,6 +3650,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
roomId2 = event.room_id
MessageListenerSingleton.getInstance().joinGroup(event.room_id)
getHour()
MvpPre?.getRoomIn(event.room_id, "")
}
@@ -3693,6 +3692,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
private var roomId2: String? = null //这是点击小时榜后记录的房间id
private fun getHour() {
MvpPre?.quitRoom(roomId, SpUtil.getUserId().toString())
ClickUtils.clearAllClickRecords()
AgoraManager.getInstance().cleanup()
roomId = roomId2
@@ -3769,6 +3772,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
super.onResume()
//在后台关闭礼物弹出,前台恢复礼物弹出
GiftDisplayManager.getInstance().setupDisplayView(mBinding?.giftContainer)
// AgoraManager.getInstance().cleanup()
// AgoraManager.getInstance()
// .joinRoom(SpUtil.getRtmToken(), roomId, SpUtil.getUserId(), false, false);
// MvpPre?.postRoomInfo(roomId)
}
fun refreshRoomInfo(roomId: String) {
@@ -3940,10 +3947,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
setView(resp, true)
}
fun upRoomInfoFragment(resp: RoomInfoResp?) {
this.mRoomInfoResp = resp
}
fun upHeight() {
val vpRoomPager: View = mBinding!!.vpRoomPager
val params = ConstraintLayout.LayoutParams(

View File

@@ -21,6 +21,7 @@ import com.blankj.utilcode.util.TimeUtils;
import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.room.activity.RoomActivity;
import com.xscm.modulemain.databinding.FragmentRoomBinding;
import com.xscm.modulemain.dialog.RoomUserInfoFragment;
import com.xscm.modulemain.dialog.WheatFeedingDialogFragment;
import com.xscm.modulemain.activity.room.contacts.RoomContacts;
import com.xscm.modulemain.activity.room.presenter.RoomPresenter;
@@ -52,6 +53,7 @@ import org.greenrobot.eventbus.ThreadMode;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* @author qx
@@ -79,14 +81,8 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
private RoomActivity mRoomActivity;
private RoomInfoResp mRoomInfoResp;
private String password;
private String roomId;
private int role;
private boolean isSwith;
private boolean aBoolean = true;//上下麦按钮
private boolean voive = false;//声音开关
String[] permissions = {Manifest.permission.RECORD_AUDIO};
private WheatFeedingDialogFragment wheatFeedingDialogFragment;
public SingSongFragment singSongFragment;
@@ -152,12 +148,10 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
if (EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().unregister(this);
}
// ImageUtils.clearDiskCache(getActivity());
// 释放SVGA动画资源
if (mBinding != null && mBinding.svgaNobility != null) {
mBinding.svgaNobility.release();
}
releaseAllResources();
}
@@ -194,21 +188,27 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
// 检查Fragment是否实现了特定的销毁接口
if (fragment instanceof SingSongFragment) {
((SingSongFragment) fragment).releaseResources();
singSongFragment = null;
} else if (fragment instanceof RoomKtvFragment) {
((RoomKtvFragment) fragment).releaseResources();
ktvFragment = null;
} else if (fragment instanceof FriendshipRoomFragment) {
((FriendshipRoomFragment) fragment).releaseResources();
friendshipRoomFragment = null;
} else if (fragment instanceof RoomCabinFragment) {
((RoomCabinFragment) fragment).releaseResources();
roomCabinFragment = null;
} else if (fragment instanceof RoomAuctionFragment) {
((RoomAuctionFragment) fragment).releaseResources();
roomAuctionFragment = null;
} else if (fragment instanceof RoomJukeboxFragment) {
// ((RoomJukeboxFragment) fragment).releaseResources();
roomJukeboxFragment = null;
}else if (fragment instanceof RoomMentorShipFragment){
mentorShipFragment = null;
}
}
}
// 最后移除所有Fragment
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
for (Fragment fragment : fragments) {
@@ -237,7 +237,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
if (EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().unregister(this);
}
// 提前释放计时器资源
releaseCountDownTimer();
}
@@ -333,16 +332,13 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
/// 交友房时间发生延时
public void friendTimeDelayWithTime(long end_time) {
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
if (friendshipRoomFragment != null) {
friendshipRoomFragment.friendTimeDelayWithTime(end_time);
}
}
/// 心动值发生变化
public void friendHeartNumberDidChanged(List<FriendInfo.HeartList> heartLists) {
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
if (friendshipRoomFragment != null) {
friendshipRoomFragment.friendHeartNumberDidChanged(heartLists);
}
@@ -350,14 +346,12 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
/// 交友房麦位发生变化
public void friendSeatDidChanged(List<RoomPitBean> pitArr) {
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
if (friendshipRoomFragment != null) {
friendshipRoomFragment.friendSeatDidChanged(pitArr);
}
}
public void upFriendList(List<RoomPitBean> pitArr) {
FriendshipRoomFragment friendshipRoomFragment = findFragmentByTag(FriendshipRoomFragment.class);
if (friendshipRoomFragment != null) {
friendshipRoomFragment.upFriendList();
}
@@ -365,7 +359,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
/// 小黑屋修改倒计时
public void upCabinFragment(long time) {
RoomCabinFragment roomCabinFragment = findFragmentByTag(RoomCabinFragment.class);
if (roomCabinFragment != null)
roomCabinFragment.upCabinFragment(time);
}
@@ -376,6 +369,9 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
}
private void performLoadSubFragment(QXRoomSeatViewType qxRoomSeatViewType) {
// 释放子Fragment
releaseChildFragments();
this.qxRoomSeatViewType = qxRoomSeatViewType;
if (mRoomInfoResp == null || mRoomInfoResp.getRoom_info() == null) return;
String typeId = mRoomInfoResp.getRoom_info().getType_id();
@@ -437,19 +433,12 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
}
if (newFragment != null) {
replaceNestedFragment(newFragment, R.id.container);
performFragmentReplacement(newFragment, R.id.container);
} else {
LogUtils.e("newFragment==null");
}
setView();
// if (mRoomInfoResp.getUser_info().getPit_number() != 0) {
// mRoomActivity.switchMic(CommonAppContext.getInstance().isMai ? 1 : 2);
// AgoraManager.getInstance().muteLocalAudioStream(CommonAppContext.getInstance().isMai);
// } else {
// AgoraManager.getInstance().muteLocalAudioStream(true);
// }
}
/// 这是在进入电影放的时候,隐藏下面的和排麦视图
@@ -459,66 +448,16 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
}
}
public void replaceNestedFragment(@NonNull Fragment newFragment, int containerId) {
// 检查Fragment是否已经附加到Activity
if (!isAdded() || getActivity() == null) {
// 如果Fragment还没有附加则延迟执行
if (getView() != null) {
getView().post(() -> {
if (isAdded() && getActivity() != null) {
performFragmentReplacement(newFragment, containerId);
}
});
}
return;
}
performFragmentReplacement(newFragment, containerId);
}
private void performFragmentReplacement(@NonNull Fragment newFragment, int containerId) {
String tag = newFragment.getClass().getSimpleName(); // 使用类名作为 tag
FragmentManager fragmentManager = getChildFragmentManager();
Fragment existingFragment = fragmentManager.findFragmentByTag(tag);
FragmentTransaction transaction = fragmentManager.beginTransaction();
// 如果已添加,隐藏其他 Fragment假设需要隐藏其他 Fragment并显示已添加的 Fragment
for (Fragment fragment : fragmentManager.getFragments()) {
transaction.hide(fragment);
}
if (existingFragment != null) {
transaction.show(existingFragment);
} else {
transaction.add(containerId, newFragment, tag);
}
transaction.replace(containerId, newFragment, tag);
transaction.commitNowAllowingStateLoss();
}
/**
* 调用特定Fragment的销毁方法
*
* @param fragment 需要销毁的Fragment
*/
private void callSpecificDestroyMethod(Fragment fragment) {
try {
// 尝试调用Fragment的特定销毁方法
if (fragment instanceof SingSongFragment) {
((SingSongFragment) fragment).releaseResources();
} else if (fragment instanceof RoomKtvFragment) {
((RoomKtvFragment) fragment).releaseResources();
} else if (fragment instanceof FriendshipRoomFragment) {
((FriendshipRoomFragment) fragment).releaseResources();
} else if (fragment instanceof RoomCabinFragment) {
((RoomCabinFragment) fragment).releaseResources();
} else if (fragment instanceof RoomAuctionFragment) {
((RoomAuctionFragment) fragment).releaseResources();
}
} catch (Exception e) {
LogUtils.e("callSpecificDestroyMethod error: " + e.getMessage());
}
}
public void updateWheatStatus(RoomPitBean roomPitBean, int pit, boolean isOccupied, boolean isMine) {
mRoomInfoResp.getRoom_info().getPit_list().set(pit - 1, roomPitBean);
@@ -571,55 +510,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
setView();
}
private void instView() {//隐藏视图
if (mRoomInfoResp.getUser_info().getPit_number() != 0) {
aBoolean = false;
((RoomActivity) getActivity()).ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding_up);
((RoomActivity) getActivity()).setrlMic(true);
((RoomActivity) getActivity()).setBoolean(aBoolean);
} else {
aBoolean = true;
((RoomActivity) getActivity()).ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding);
((RoomActivity) getActivity()).setrlMic(false);
((RoomActivity) getActivity()).setBoolean(aBoolean);
}
int pitNumber = mRoomInfoResp.getUser_info().getPit_number();
int roleType;
if (pitNumber == 9) {
roleType = mRoomInfoResp.getUser_info().getIs_room_owner() != 0 ? 1 :
mRoomInfoResp.getUser_info().getIs_host() != 0 ? 2 : 0;
} else if (pitNumber != 0 && pitNumber != 9) {
roleType = 3;
} else {
roleType = 0;
}
if (mRoomInfoResp.getUser_info().getPit_number() == 9) {
((RoomActivity) getActivity()).ivSoundEffects(true);
} else {
((RoomActivity) getActivity()).ivSoundEffects(false);
}
if (mRoomInfoResp.getUser_info().getUser_id() == SpUtil.getUserId() && mRoomInfoResp.getUser_info().getPit_number() == 9
&& !mRoomInfoResp.getRoom_info().getType_id().equals("2") && !mRoomInfoResp.getRoom_info().getType_id().equals("6")) {
((RoomActivity) getActivity()).rlMore(true);
} else {
((RoomActivity) getActivity()).rlMore(false);
}
String countText = String.valueOf(mRoomInfoResp.getRoom_info().getQueue_number());
String fullText = countText + "人排队";
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(fullText);
spannableStringBuilder.setSpan(
new ForegroundColorSpan(ContextCompat.getColor(getContext(), com.xscm.moduleutil.R.color.colorPrimary)), // 设置颜色为红色
0, // 起始位置
countText.length(), // 结束位置
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
((RoomActivity) getActivity()).tvFirst(spannableStringBuilder);
((RoomActivity) getActivity()).setRoleType(roleType, pitNumber);
}
private CountDownTimer mCountDownTimer;
@@ -631,22 +521,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
}
}
private void queren() {
// 创建并显示确认对话框
new ConfirmDialog(getActivity(),
"提示",
"您将要发起点歌申请?",
"确认",
"取消",
v -> {
// 点击“确认”按钮时执行删除操作
MvpPre.applySong(roomId);
},
v -> {
// 点击“取消”按钮时什么都不做
}, false, 0).show();
}
public void showWheatFeedingDialog(String roomId, int displayMode) {
wheatFeedingDialogFragment = new WheatFeedingDialogFragment();
Bundle args = new Bundle();
@@ -801,8 +675,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
roomActivity.setrlMic(true);
if (AgoraManager.getInstance().isLocalAudioEnabled()) {
roomActivity.ivMic(com.xscm.moduleutil.R.mipmap.room_microphone);
} else {
// roomActivity.ivMic(com.xscm.moduleutil.R.mipmap.room_microphone_off);
}
}
}
@@ -816,56 +688,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
}
// @Subscribe(threadMode = ThreadMode.MAIN)
public void roomInfoEvent(RoomMessageEvent messageEvent) {
if (messageEvent.getMsgType() == 123) {
// // 获取 PublicScreenEaseChatFragment 实例
ChatRoomFragment publicScreenEaseChatFragment = (ChatRoomFragment) getChildFragmentManager()
.findFragmentByTag("PublicScreenEaseChatFragment");
if (publicScreenEaseChatFragment != null) {
// 调用 someMethod 方法
publicScreenEaseChatFragment.someMethod();
}
}
if (messageEvent.getMsgType() == 1034) {
int count = messageEvent.getText().getCount();
if (count == 0) {
((RoomActivity) getActivity()).tvFirst(new SpannableStringBuilder("0人排队"));
return;
}
String countText = String.valueOf(count);
String fullText = countText + "人排队";
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(fullText);
spannableStringBuilder.setSpan(
new ForegroundColorSpan(ContextCompat.getColor(getContext(), com.xscm.moduleutil.R.color.colorPrimary)), // 设置颜色为红色
0, // 起始位置
countText.length(), // 结束位置
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
((RoomActivity) getActivity()).tvFirst(spannableStringBuilder);
} else if (messageEvent.getMsgType() == 1016) {
if (messageEvent.getText().getFromUserInfo().getUser_id() == SpUtil.getUserId()) {
if (messageEvent.getText().getIs_mute_pit() == 1) {
((RoomActivity) getActivity()).switchMic(2);
}
mRoomInfoResp.getUser_info().setIs_mute_pit(String.valueOf(messageEvent.getText().getIs_mute_pit()));
mRoomInfoResp.getUser_info().setIs_mute(String.valueOf(messageEvent.getText().getIs_mute()));
}
} else if (messageEvent.getMsgType() == 1007) {
mRoomInfoResp.getUser_info().setIs_host(1);
} else if (messageEvent.getMsgType() == 1018) {
mRoomInfoResp.getUser_info().setIs_host(0);
} else if (messageEvent.getMsgType() == 1024) {
mRoomInfoResp.getRoom_auction().getAuction_list().clear();
mRoomInfoResp.getRoom_auction().getAuction_list().addAll(messageEvent.getText().getAuction_list());
}
}
// TODO: 2025/9/3 小黑屋火热值更新
public void handleMsgType1028(RoomMessageEvent messageEvent) {
RoomCabinFragment cabinFragment = (RoomCabinFragment) getChildFragmentManager()

View File

@@ -508,13 +508,14 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
if (userInfo != null) {
mBinding.tvGh.setVisibility(VISIBLE);
mBinding.tvJoinGuild.setVisibility(GONE);
if (userInfo.getGuild_name() == null ||userInfo.getGuild_name().isEmpty()) {
if (userInfo.getGuild_name() == null || userInfo.getGuild_name().isEmpty()) {
mBinding.tvGh.setText("所属公会:无");
} else {
if (userInfo.getUser_id() != SpUtil.getUserId() || (userInfo.getMe_guild_name() != null && !userInfo.getMe_guild_name().isEmpty())) {
if (userInfo.getUser_id() == SpUtil.getUserId()){
mBinding.tvJoinGuild.setVisibility(GONE);
}else if (userInfo.getMe_guild_name() == null || userInfo.getMe_guild_name().isEmpty()){
mBinding.tvJoinGuild.setVisibility(VISIBLE);
}
mBinding.tvGh.setText("所属公会:" + userInfo.getGuild_name());
}
} else {