1:修改BUG
This commit is contained in:
@@ -22,6 +22,7 @@ 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.moduleutil.bean.RecordSection;
|
||||
import com.xscm.moduleutil.bean.RoomSearchResp;
|
||||
import com.xscm.moduleutil.bean.UserResultResp;
|
||||
@@ -151,7 +152,9 @@ public class SearchActivity extends BaseMvpActivity<SearchPresenter, ActivitySea
|
||||
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
RoomSearchResp item = mSearchRoomResultAdapter.getItem(position);
|
||||
if (item != null) {
|
||||
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "搜索界面").withString("roomId", item.getId()).navigation();
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), item.getId() ,"");
|
||||
|
||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "搜索界面").withString("roomId", item.getId()).navigation();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -384,13 +384,19 @@ public class PlaceholderFragment extends BaseMvpFragment<PlaceholderPresenter, F
|
||||
imUser1.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
|
||||
// ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
|
||||
}
|
||||
});
|
||||
} else if (type.equals("1") || type.equals("2")) {
|
||||
tvUsername1.setText(data.getNickname());
|
||||
ImageUtils.loadHeadCC(data.getAvatar(), imUser1);
|
||||
tvId1.setText(data.getUser_code() != null ? "ID:" + data.getUser_code() : "");
|
||||
imUser1.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", data.getUser_id()).navigation();
|
||||
}
|
||||
});
|
||||
}
|
||||
// else if (type.equals("3")) {
|
||||
// tvUsername1.setText(data.getGuild_name());
|
||||
|
||||
@@ -24,36 +24,28 @@ public class HotAdapter extends BaseMultiItemQuickAdapter<TopRoom, BaseViewHolde
|
||||
super(data);
|
||||
// addItemType(1, R.layout.index_rv_item_room_hot1);
|
||||
addItemType(1, R.layout.index_rv_item_room_hot0);
|
||||
|
||||
|
||||
}
|
||||
// 定义点击事件监听器接口
|
||||
public interface OnRoomClickListener {
|
||||
void onRoomClick(TopRoom room, int position);
|
||||
}
|
||||
|
||||
// 声明监听器实例
|
||||
private OnRoomClickListener mOnRoomClickListener;
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, TopRoom item) {
|
||||
|
||||
ImageUtils.loadHeadCC(item.getRoom_cover(), helper.getView(R.id.iv_follow_bg));
|
||||
// if (item.getLabel_id().equals("23")){
|
||||
// helper.setImageResource(R.id.iv_type, com.qxcm.moduleutil.R.mipmap.diang_c);
|
||||
// }else if (item.getLabel_id().equals("108")){
|
||||
// helper.setImageResource(R.id.iv_type, R.mipmap.jiaoyou);
|
||||
// }else if (item.getLabel_id().equals("101")){
|
||||
// helper.setImageResource(R.id.iv_type, com.qxcm.moduleutil.R.mipmap.youxi);
|
||||
// }else if (item.getLabel_id().equals("120")){//女神
|
||||
// helper.setImageResource(R.id.iv_type, com.qxcm.moduleutil.R.mipmap.nvshen);
|
||||
// }else if (item.getLabel_id().equals("121")){//男神
|
||||
// helper.setImageResource(R.id.iv_type, com.qxcm.moduleutil.R.mipmap.nans);
|
||||
// }
|
||||
|
||||
TextView tv_name = helper.getView(R.id.tv_name);
|
||||
tv_name.setText(item.getRoom_name());
|
||||
tv_name.setSelected(true);
|
||||
|
||||
// helper.setText(R.id.tv_name, item.getRoom_name());
|
||||
|
||||
ImageView iv = helper.getView(R.id.iv_play);
|
||||
if (item.getUser_list()!=null && item.getUser_list().size() > 0) {
|
||||
iv.setVisibility(View.VISIBLE);
|
||||
// ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, iv);
|
||||
}else {
|
||||
iv.setVisibility(GONE);
|
||||
}
|
||||
@@ -64,8 +56,11 @@ public class HotAdapter extends BaseMultiItemQuickAdapter<TopRoom, BaseViewHolde
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form","首页热门列表").withString("roomId", item.getId()).navigation();
|
||||
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()).navigation();
|
||||
|
||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()).navigation();
|
||||
// 如果外部设置了监听器,则触发外部监听器
|
||||
if (mOnRoomClickListener != null) {
|
||||
mOnRoomClickListener.onRoomClick(item, helper.getAdapterPosition());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -79,7 +74,10 @@ public class HotAdapter extends BaseMultiItemQuickAdapter<TopRoom, BaseViewHolde
|
||||
return String.valueOf(hotValue);
|
||||
}
|
||||
}
|
||||
|
||||
// 提供设置监听器的方法
|
||||
public void setOnRoomClickListener(OnRoomClickListener listener) {
|
||||
this.mOnRoomClickListener = listener;
|
||||
}
|
||||
@Override
|
||||
public void onViewRecycled(@NonNull BaseViewHolder holder) {
|
||||
Logger.e("onViewRecycled", "onViewRecycled");
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.example.modulevoice.adapter;
|
||||
|
||||
import static android.app.PendingIntent.getActivity;
|
||||
import static android.view.View.GONE;
|
||||
|
||||
import android.view.View;
|
||||
@@ -9,6 +10,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.example.modulevoice.R;
|
||||
import com.xscm.moduleutil.base.RoomManager;
|
||||
import com.xscm.moduleutil.bean.RoomSearchResp;
|
||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
@@ -40,8 +42,10 @@ public class SearchRoomResultAdapter extends BaseQuickAdapter<RoomSearchResp, Ba
|
||||
helper.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(mContext.getApplicationContext(), item.getId() ,"");
|
||||
|
||||
// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form","首页热门列表").withString("roomId", item.getId()).navigation();
|
||||
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getId()).navigation();
|
||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getId()).navigation();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.xscm.moduleutil.activity.IPresenter;
|
||||
import com.xscm.moduleutil.activity.IView;
|
||||
import com.xscm.moduleutil.bean.HomeBean;
|
||||
import com.xscm.moduleutil.bean.TopRoom;
|
||||
import com.xscm.moduleutil.bean.room.RoomInfoResp;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -19,6 +20,12 @@ public class HotListContacts {
|
||||
void finishRefreshLoadMore();
|
||||
|
||||
void getMoreRoomList(List<HomeBean> data);
|
||||
|
||||
void roomInfo(RoomInfoResp resp);
|
||||
|
||||
void showPasswordDialog();
|
||||
|
||||
void enterFail();
|
||||
}
|
||||
|
||||
public interface IHotListPre extends IPresenter {
|
||||
@@ -27,5 +34,7 @@ public class HotListContacts {
|
||||
void getMoreRoomList(String userId);
|
||||
|
||||
void getRoomListTow();
|
||||
|
||||
void getRoomIn(String roomId, String password);
|
||||
}
|
||||
}
|
||||
@@ -14,11 +14,15 @@ import com.example.modulevoice.contacts.HotListContacts;
|
||||
import com.example.modulevoice.databinding.FragmentHotListBinding;
|
||||
import com.example.modulevoice.presenter.HotListPresenter;
|
||||
import com.xscm.moduleutil.base.BaseMvpFragment;
|
||||
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;
|
||||
import com.xscm.moduleutil.listener.MessageListenerSingleton;
|
||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
|
||||
import com.xscm.moduleutil.utils.ClickUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -104,13 +108,32 @@ public class HotListFragment extends BaseMvpFragment<HotListPresenter, FragmentH
|
||||
MvpPre.getRoomList(2, page+"", "20", "1", label_id);
|
||||
}
|
||||
});
|
||||
mAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
|
||||
|
||||
mAdapter.setOnRoomClickListener(new HotAdapter.OnRoomClickListener() {
|
||||
|
||||
@Override
|
||||
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
public void onRoomClick(TopRoom room, int position) {
|
||||
if ( ClickUtils.isFastDoubleClick()){
|
||||
return;
|
||||
}
|
||||
// 添加索引有效性检查
|
||||
if (position < 0 || position >= mAdapter.getData().size()) {
|
||||
return;
|
||||
}
|
||||
TopRoom item = mAdapter.getItem(position);
|
||||
if (item != null) {
|
||||
// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form","首页热门列表").withString("roomId", item.getId()).navigation();
|
||||
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()).navigation();
|
||||
if (item != null ) {
|
||||
// MessageListenerSingleton.getInstance().joinGroup(item.getRoom_id());
|
||||
// RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id() +"","");
|
||||
MessageListenerSingleton.getInstance().joinGroup(item.getRoom_id());
|
||||
|
||||
// 等待一段时间确保退出完成
|
||||
try {
|
||||
Thread.sleep(500);
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id(), "");
|
||||
// MvpPre.getRoomIn(item.getRoom_id(), "");
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -161,4 +184,19 @@ public class HotListFragment extends BaseMvpFragment<HotListPresenter, FragmentH
|
||||
public void getMoreRoomList(List<HomeBean> data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void roomInfo(RoomInfoResp resp) {
|
||||
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withSerializable("roomInfo", resp).withString("roomId", resp.getRoom_info().getRoom_id()).navigation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showPasswordDialog() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enterFail() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,7 @@ import com.example.modulevoice.presenter.VoiceCategoryPresenter;
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
import com.google.android.material.tabs.TabLayoutMediator;
|
||||
import com.xscm.moduleutil.base.BaseMvpFragment;
|
||||
import com.xscm.moduleutil.base.RoomManager;
|
||||
import com.xscm.moduleutil.bean.BannerModel;
|
||||
import com.xscm.moduleutil.bean.RoomTypeModel;
|
||||
import com.xscm.moduleutil.bean.TopRoom;
|
||||
@@ -151,19 +152,14 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
carouselBannerAdapter.setOnItemClickListener((view, data, position) -> {
|
||||
// 示例:跳转到房间详情页
|
||||
if (data != null) {
|
||||
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS)
|
||||
.withString("form", "首页热门列表")
|
||||
.withString("roomId", data.getRoom_id())
|
||||
.navigation();
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), data.getRoom_id() ,"");
|
||||
|
||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS)
|
||||
// .withString("form", "首页热门列表")
|
||||
// .withString("roomId", data.getRoom_id())
|
||||
// .navigation();
|
||||
}
|
||||
});
|
||||
// mBinding.marqueeView.setOnItemClickListener(new MarqueeView.OnItemClickListener() {
|
||||
// @Override
|
||||
// public void onItemClick(int position, TextView textView) {
|
||||
//
|
||||
// ToastUtils.show("点击了第 " + position + " 个 item");
|
||||
// }
|
||||
// });
|
||||
mBinding.tvWg.setOnClickListener(v -> {
|
||||
if (mBinding.marqueeView == null || mqttList == null || mqttList.isEmpty()) {
|
||||
// 可以选择在这里添加日志或提示
|
||||
@@ -182,11 +178,13 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
if (item != null) { // 再次检查 item 是否为 null
|
||||
String roomId = item.getRoom_id(); // 或者 item.getRoomId(); 确保方法名正确
|
||||
if (roomId != null && !roomId.isEmpty()) { // 检查 roomId 是否有效
|
||||
ARouter.getInstance()
|
||||
.build(ARouteConstants.ROOM_DETAILS)
|
||||
.withString("form", "首页热门列表")
|
||||
.withString("roomId", roomId)
|
||||
.navigation();
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), roomId,"");
|
||||
|
||||
// ARouter.getInstance()
|
||||
// .build(ARouteConstants.ROOM_DETAILS)
|
||||
// .withString("form", "首页热门列表")
|
||||
// .withString("roomId", roomId)
|
||||
// .navigation();
|
||||
} else {
|
||||
// Log.d(TAG, "Room ID is null or empty for item at position: " + position);
|
||||
}
|
||||
|
||||
@@ -2,11 +2,16 @@ package com.example.modulevoice.presenter;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.example.modulevoice.contacts.HotListContacts;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.xscm.moduleutil.base.CommonAppContext;
|
||||
import com.xscm.moduleutil.bean.TopRoom;
|
||||
import com.xscm.moduleutil.bean.room.RoomInfoResp;
|
||||
import com.xscm.moduleutil.http.APIException;
|
||||
import com.xscm.moduleutil.http.BaseObserver;
|
||||
import com.xscm.moduleutil.presenter.BasePresenter;
|
||||
import com.xscm.moduleutil.rtc.AgoraManager;
|
||||
import com.xscm.moduleutil.utils.GsonUtils;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
|
||||
@@ -58,6 +63,68 @@ public class HotListPresenter extends BasePresenter<HotListContacts.View> implem
|
||||
});
|
||||
}
|
||||
|
||||
// TODO: 2025/6/10 加入房间
|
||||
@Override
|
||||
public void getRoomIn(String roomId, String password) {
|
||||
|
||||
// Type listType = new TypeToken<RoomInfoResp>() {}.getType();
|
||||
// RoomInfoResp restoredRoomModels = GsonUtils.getGSON().fromJson(SpUtil.getRoomInfoResp(), listType);
|
||||
// if (restoredRoomModels!= null ) {
|
||||
// MvpRef.get().roomInfo(restoredRoomModels);
|
||||
// }
|
||||
|
||||
api.roomGetIn(roomId, password, new BaseObserver<RoomInfoResp>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(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(getView().getSelfActivity())
|
||||
.joinRoom(token, roomId, uid, enableMic,enableJs);
|
||||
// 2. 加入房间
|
||||
// rtcCore.joinRoom(token, roomId, uid, enableMic);
|
||||
if (MvpRef==null){
|
||||
MvpRef=new WeakReference<>(mView);
|
||||
}
|
||||
MvpRef.get().roomInfo(resp);
|
||||
|
||||
}
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
super.onError(e);
|
||||
if (MvpRef==null){
|
||||
MvpRef=new WeakReference<>(mView);
|
||||
}
|
||||
if (e instanceof APIException) {
|
||||
APIException apiException = (APIException) e;
|
||||
if (apiException.getCode() == 10000) {
|
||||
MvpRef.get().showPasswordDialog();
|
||||
} else {
|
||||
MvpRef.get().enterFail();
|
||||
}
|
||||
} else {
|
||||
MvpRef.get().enterFail();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getMoreRoomList(String userId) {
|
||||
// Type listType = new TypeToken<List<HomeBean>>() {}.getType();
|
||||
|
||||
Reference in New Issue
Block a user