1:完成cp效果展示,

This commit is contained in:
2025-11-20 09:40:53 +08:00
parent 68dc7574bc
commit 57b8ded0eb
40 changed files with 572 additions and 217 deletions

View File

@@ -28,21 +28,29 @@ import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.databinding.ViewDataBinding;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.GsonUtils;
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.activity.WebViewActivity;
import com.xscm.modulemain.activity.main.activity.MainActivity;
import com.xscm.modulemain.manager.RoomManager;
import com.xscm.moduleutil.BaseEvent;
import com.xscm.moduleutil.R;
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.base.WebUrlConstants;
import com.xscm.moduleutil.bean.RoomGiftData;
import com.xscm.moduleutil.bean.RoomMessageEvent;
import com.xscm.moduleutil.bean.UserBean;
import com.xscm.moduleutil.bean.XLHBean;
import com.xscm.moduleutil.dialog.ConfirmDialog;
@@ -50,7 +58,10 @@ 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.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.listener.CPListener;
import com.xscm.moduleutil.listener.MessageListenerSingleton;
import com.xscm.moduleutil.utils.ClickUtils;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.LanguageUtil;
@@ -64,16 +75,22 @@ import com.xscm.moduleutil.utils.SystemUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.jetbrains.annotations.NotNull;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import io.reactivex.disposables.Disposable;
public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewDataBinding> extends BaseAppCompatActivity<VDB> implements
IView<Activity> {
protected P MvpPre;
private ConfirmDialog confirmDialog;
protected abstract P bindPresenter();
@@ -102,6 +119,23 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
disLoading();
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RetrofitClient.getInstance ().CpListener(new CPListener() {
@Override
public void onReceiveMsg(@NotNull RoomMessageEvent roomMessageEvent) {
cpReceiver(roomMessageEvent);
}
@Override
public void onSendCpMsg(@NotNull RoomGiftData gitData) {
cpMsg(gitData);
}
});
}
@Override
protected void onDestroy() {
ClickUtils.clearAllClickRecords();
@@ -154,6 +188,46 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
super.attachBaseContext(LanguageUtil.attachBaseContext(newBase));
}
public void cpMsg(RoomGiftData event) {
String cpTypeJson = GsonUtils.toJson(event.getCp_type());
if (event.getCp_type().getCp_type() == 1) {
if (event.getGift_user_data()!=null && event.getGift_user_data().size()>0){
for (int i = 0; i <event.getGift_user_data().size(); i++)
// 创建自定义消息
MessageListenerSingleton.getInstance().sendCustomC2CMessage(130,cpTypeJson,
event.getGift_user_data().get(i).getUser_id()
);
}
}else if (event.getCp_type().getCp_type() == 2) {
if (event.getGift_user_data()!=null && event.getGift_user_data().size()>0){
for (int i = 0; i < event.getGift_user_data().size(); i++)
// 创建自定义消息
MessageListenerSingleton.getInstance().sendCustomC2CMessage(131,cpTypeJson,
event.getGift_user_data().get(i).getUser_id()
);
}
}
}
public void cpReceiver(BaseEvent event) {
String a = ActivityUtils.getTopActivity().getLocalClassName();
if (event instanceof RoomMessageEvent) {
com.xscm.moduleutil.bean.RoomGiftData.CpType text = GsonUtils.fromJson(((RoomMessageEvent) event).getText().getText().toString(),com.xscm.moduleutil.bean.RoomGiftData.CpType.class);
if (text.getCp_type() == 1) {
queren1(1,text.getText(),text.getGift_id()+"",((RoomMessageEvent) event).getText().getFromUserInfo().getUser_id()+"",((RoomMessageEvent) event).getRoomId());
}else if (text.getCp_type() == 2) {
queren1(2,text.getText1(),text.getGift_id()+"",((RoomMessageEvent) event).getText().getFromUserInfo().getUser_id()+"",((RoomMessageEvent) event).getRoomId());
}
}
}
// TODO: 2025/11/19 登录腾讯
@Subscribe(threadMode = ThreadMode.MAIN)
public void logOutEvent(UserBean userBean) {
// 在用户 UI 点击登录的时候调用
@@ -235,30 +309,37 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
}
};
private void queren1() {
private void queren1(int type,String content,String giftid,String userId,String roomId) {
// 创建并显示确认对话框
new ConfirmDialog(this,
"温馨提示",
"您的账号已在别处登录,请确认密码是否已经泄露",
"知道了",
"",
new ConfirmDialog(ActivityUtils.getTopActivity(),
type==1?"心动信号":"缘定三生 此刻同心",
content,
type==1?"回赠同心锁":"进入心动空间",
type==1?"再想想":"我知道了",
v -> {
// 点击“确认”按钮时执行删除操作
if (type==1) {
// 点击“确认”按钮时执行删除操作
RetrofitClient.getInstance().cpGiveGift(userId, giftid, roomId, new BaseObserver<RoomGiftData>() {
@Override
public void onSubscribe(Disposable d) {
if (CommonAppContext.getInstance().playId != null) {
RoomManager.getInstance().exitRoom(CommonAppContext.getInstance().playId);
}
try {
CommonAppContext.getInstance().clearLoginInfo();
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@Override
public void onNext(RoomGiftData roomGiftData) {
if (roomGiftData.getCp_type() != null) {
if (roomGiftData.getCp_type().getCp_type()==2){
queren1(2,roomGiftData.getCp_type().getText(),"",SpUtil.getUserId()+"","");
}
}
}
});
}
},
v -> {
// 点击“取消”按钮时什么都不做
}, false, 0).show();
}, false,0).show();
}
@@ -298,7 +379,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
private final Object hourlyQueueLock = new Object(); // 小时榜队列同步锁
private boolean isHourlyProcessing = false; // 小时榜处理状态标志
// TODO: 2025/11/19 收到小时榜
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageReceived(List<HourlyBean> hourlyBean) {
LogUtils.e("收到小时榜", hourlyBean);
@@ -1008,7 +1089,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
public void onEvent(ChatInfo event) {
String id = event.getId().replace("g", "");
Intent intent = new Intent(this, WebViewActivity.class);
intent.putExtra("url", String.format(WebUrlConstants.INSTANCE.getWEB_SET_GROUP_URL(), SpUtil.getToken(),id));
intent.putExtra("url", String.format(WebUrlConstants.INSTANCE.getWEB_SET_GROUP_URL(), SpUtil.getToken(), id));
startActivity(intent);
}