1:完成cp效果展示,
This commit is contained in:
@@ -122,6 +122,7 @@ public class GiftPackAdapter extends BaseAdapter {
|
|||||||
viewHolder.ivDownOn = (ImageView) convertView.findViewById(R.id.iv_down_on);
|
viewHolder.ivDownOn = (ImageView) convertView.findViewById(R.id.iv_down_on);
|
||||||
viewHolder.cl_iv_down_on = (ConstraintLayout) convertView.findViewById(R.id.cl_iv_down_on);
|
viewHolder.cl_iv_down_on = (ConstraintLayout) convertView.findViewById(R.id.cl_iv_down_on);
|
||||||
viewHolder.integral = (TextView) convertView.findViewById(R.id.integral);
|
viewHolder.integral = (TextView) convertView.findViewById(R.id.integral);
|
||||||
|
viewHolder.im_heart = (ImageView) convertView.findViewById(R.id.im_heartssss);
|
||||||
convertView.setTag(viewHolder);
|
convertView.setTag(viewHolder);
|
||||||
} else {
|
} else {
|
||||||
viewHolder = (GiftPackAdapter.ViewHolder) convertView.getTag();
|
viewHolder = (GiftPackAdapter.ViewHolder) convertView.getTag();
|
||||||
@@ -168,5 +169,6 @@ public class GiftPackAdapter extends BaseAdapter {
|
|||||||
public TextView tv_gift_change_love_values;
|
public TextView tv_gift_change_love_values;
|
||||||
public ImageView ivDownOn;
|
public ImageView ivDownOn;
|
||||||
public ConstraintLayout cl_iv_down_on;
|
public ConstraintLayout cl_iv_down_on;
|
||||||
|
public ImageView im_heart;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.xscm.moduleutil.adapter;
|
package com.xscm.moduleutil.adapter;
|
||||||
|
|
||||||
import static android.view.View.GONE;
|
import static android.view.View.GONE;
|
||||||
|
import static android.view.View.VISIBLE;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -122,14 +123,16 @@ public class GiftRoomAdapter extends BaseAdapter {
|
|||||||
if (convertView == null) {
|
if (convertView == null) {
|
||||||
convertView = inflater.inflate(R.layout.item_gift_room, parent, false);
|
convertView = inflater.inflate(R.layout.item_gift_room, parent, false);
|
||||||
viewHolder = new ViewHolder();
|
viewHolder = new ViewHolder();
|
||||||
|
viewHolder.item_layout = (ConstraintLayout) convertView.findViewById(R.id.cl_gift);
|
||||||
|
viewHolder.cl_iv_down_on = (ConstraintLayout) convertView.findViewById(R.id.cl_iv_down_on);
|
||||||
viewHolder.tv_gift_name = (TextView) convertView.findViewById(R.id.tv_gift_name);
|
viewHolder.tv_gift_name = (TextView) convertView.findViewById(R.id.tv_gift_name);
|
||||||
viewHolder.tv_gift_price = (TextView) convertView.findViewById(R.id.tv_gift_price);
|
viewHolder.tv_gift_price = (TextView) convertView.findViewById(R.id.tv_gift_price);
|
||||||
viewHolder.iv_gift_pic = (ImageView) convertView.findViewById(R.id.iv_gift_pic);
|
viewHolder.iv_gift_pic = (ImageView) convertView.findViewById(R.id.iv_gift_pic);
|
||||||
viewHolder.item_layout = (ConstraintLayout) convertView.findViewById(R.id.cl_gift);
|
|
||||||
viewHolder.ivDownOn = (ImageView) convertView.findViewById(R.id.iv_down_on);
|
viewHolder.ivDownOn = (ImageView) convertView.findViewById(R.id.iv_down_on);
|
||||||
viewHolder.cl_iv_down_on = (ConstraintLayout) convertView.findViewById(R.id.cl_iv_down_on);
|
|
||||||
viewHolder.iv_gift_select= (ImageView) convertView.findViewById(R.id.iv_gift_select);
|
viewHolder.iv_gift_select= (ImageView) convertView.findViewById(R.id.iv_gift_select);
|
||||||
|
|
||||||
|
// im_heart现在位于顶层布局中
|
||||||
|
viewHolder.im_heart = (ImageView) convertView.findViewById(R.id.im_heartssss);
|
||||||
convertView.setTag(viewHolder);
|
convertView.setTag(viewHolder);
|
||||||
} else {
|
} else {
|
||||||
viewHolder = (ViewHolder) convertView.getTag();
|
viewHolder = (ViewHolder) convertView.getTag();
|
||||||
@@ -146,7 +149,15 @@ public class GiftRoomAdapter extends BaseAdapter {
|
|||||||
if (giftModel.getIs_lock()==0){
|
if (giftModel.getIs_lock()==0){
|
||||||
viewHolder.iv_gift_select.setVisibility(GONE);
|
viewHolder.iv_gift_select.setVisibility(GONE);
|
||||||
}else {
|
}else {
|
||||||
viewHolder.iv_gift_select.setVisibility(View.VISIBLE);
|
viewHolder.iv_gift_select.setVisibility(VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (giftModel.getIs_cp()==0) {//这是cp礼物
|
||||||
|
viewHolder.im_heart.setVisibility(GONE);
|
||||||
|
}else {
|
||||||
|
if (viewHolder.im_heart != null) {
|
||||||
|
viewHolder.im_heart.setVisibility(VISIBLE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* 在给View绑定显示的数据时,计算正确的position = position + curIndex * pageSize,
|
* 在给View绑定显示的数据时,计算正确的position = position + curIndex * pageSize,
|
||||||
@@ -214,6 +225,7 @@ public class GiftRoomAdapter extends BaseAdapter {
|
|||||||
public TextView tv_gift_change_love_values;
|
public TextView tv_gift_change_love_values;
|
||||||
public ImageView ivDownOn;
|
public ImageView ivDownOn;
|
||||||
public ImageView iv_gift_select;
|
public ImageView iv_gift_select;
|
||||||
|
public ImageView im_heart;
|
||||||
public ConstraintLayout cl_iv_down_on;
|
public ConstraintLayout cl_iv_down_on;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package com.xscm.moduleutil.bean;
|
||||||
|
|
||||||
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
|
||||||
|
import org.greenrobot.eventbus.EventBus;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 送礼后的成功回调
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
public class RoomGiftData extends BaseEvent {
|
||||||
|
private int gift_total;
|
||||||
|
|
||||||
|
private List<GiftUserData> gift_user_data;
|
||||||
|
|
||||||
|
private CpType cp_type;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class GiftUserData {
|
||||||
|
private String user_id;//受理人id
|
||||||
|
private String gift_price;//礼物价格
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class CpType {
|
||||||
|
private int cp_type;//0:不处理 1:表明心意 2:组成cp
|
||||||
|
private String text;//发送方弹起的信息
|
||||||
|
private String text1;//接收方弹起的信息
|
||||||
|
private int gift_id;//礼物id
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,14 +1,17 @@
|
|||||||
package com.xscm.moduleutil.bean;
|
package com.xscm.moduleutil.bean;
|
||||||
|
|
||||||
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
import com.xscm.moduleutil.bean.blindboxwheel.BlindBoxBean;
|
import com.xscm.moduleutil.bean.blindboxwheel.BlindBoxBean;
|
||||||
import com.xscm.moduleutil.bean.room.*;
|
import com.xscm.moduleutil.bean.room.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class RoomMessageEvent {
|
public class RoomMessageEvent extends BaseEvent {
|
||||||
private int MsgType; // 消息类型,如 QXRoomMessageTypeJoin
|
private int MsgType; // 消息类型,如 QXRoomMessageTypeJoin
|
||||||
private String RoomId; // 房间 ID
|
private String RoomId; // 房间 ID
|
||||||
private T Text; // 携带的数据对象
|
private T Text; // 携带的数据对象
|
||||||
@@ -100,12 +103,15 @@ public class RoomMessageEvent {
|
|||||||
|
|
||||||
private SingerInfo.SongInfo song_info;
|
private SingerInfo.SongInfo song_info;
|
||||||
private SingerInfo.SongInfo next_song_info;
|
private SingerInfo.SongInfo next_song_info;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public static class text {
|
public static class text {
|
||||||
private long position;
|
private long position;
|
||||||
private int is_mute;
|
private int is_mute;
|
||||||
|
private RoomGiftData.CpType cp_type;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ public class RoonGiftModel {
|
|||||||
private int activities_id;//4:盲盒 ;5:天空之境;
|
private int activities_id;//4:盲盒 ;5:天空之境;
|
||||||
private int gift_bag;//10:天空之境 11:岁月之城 12:时空之巅
|
private int gift_bag;//10:天空之境 11:岁月之城 12:时空之巅
|
||||||
private int is_lock;//爵位礼物 0:不锁 1:锁
|
private int is_lock;//爵位礼物 0:不锁 1:锁
|
||||||
|
|
||||||
|
private int is_cp;//1:是 0:不是
|
||||||
public boolean isCan_send_self() {
|
public boolean isCan_send_self() {
|
||||||
if ( isManghe()) {
|
if ( isManghe()) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -89,6 +89,10 @@ public class EMMessageInfo implements MultiItemEntity {
|
|||||||
public static final int QXRoomMessageTypeMuteRemoteAudio = 125;
|
public static final int QXRoomMessageTypeMuteRemoteAudio = 125;
|
||||||
///小黑屋 关麦
|
///小黑屋 关麦
|
||||||
public static final int QXRoomMessageTypeMuteLocalAudio = 126;
|
public static final int QXRoomMessageTypeMuteLocalAudio = 126;
|
||||||
|
public static final int QXRoomMessageTypeCPDx = 130;//心动礼物,单向发送
|
||||||
|
public static final int QXRoomMessageTypeCPSx = 131;//心动礼物,双向发送
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// 交友房阶段发生变化
|
/// 交友房阶段发生变化
|
||||||
public static final int QXRoomMessageTypeRoomFriendPartDidChanged = 1049;
|
public static final int QXRoomMessageTypeRoomFriendPartDidChanged = 1049;
|
||||||
|
|||||||
@@ -0,0 +1,160 @@
|
|||||||
|
package com.xscm.moduleutil.dialog;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.os.CountDownTimer;
|
||||||
|
import android.view.Gravity;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.Window;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
|
|
||||||
|
import com.xscm.moduleutil.R;
|
||||||
|
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
|
||||||
|
import com.xscm.moduleutil.utils.ColorManager;
|
||||||
|
|
||||||
|
public class BaseCpDialog extends Dialog {
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
private String message;
|
||||||
|
private String positiveButtonText;
|
||||||
|
private String negativeButtonText;
|
||||||
|
private View.OnClickListener positiveButtonClickListener;
|
||||||
|
private View.OnClickListener negativeButtonClickListener;
|
||||||
|
private boolean isCountdownEnabled = false; // 是否启用倒计时
|
||||||
|
private int countdownSeconds = 0; // 倒计时秒数
|
||||||
|
private CountDownTimer countDownTimer; // 倒计时对象
|
||||||
|
|
||||||
|
|
||||||
|
public BaseCpDialog(Context context, String title, String message,
|
||||||
|
String positiveButtonText, String negativeButtonText,
|
||||||
|
View.OnClickListener positiveButtonClickListener,
|
||||||
|
View.OnClickListener negativeButtonClickListener,
|
||||||
|
boolean isCountdownEnabled, int countdownSeconds) {
|
||||||
|
super(context);
|
||||||
|
this.title = title;
|
||||||
|
this.message = message;
|
||||||
|
this.positiveButtonText = positiveButtonText;
|
||||||
|
this.negativeButtonText = negativeButtonText;
|
||||||
|
this.positiveButtonClickListener = positiveButtonClickListener;
|
||||||
|
this.negativeButtonClickListener = negativeButtonClickListener;
|
||||||
|
this.isCountdownEnabled = isCountdownEnabled;
|
||||||
|
this.countdownSeconds = countdownSeconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
Window window = getWindow();
|
||||||
|
if (window != null) {
|
||||||
|
window.setGravity(Gravity.CENTER); // 居中显示
|
||||||
|
window.setBackgroundDrawableResource(R.drawable.bg_r16_fff); // 透明背景
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
setContentView(R.layout.dialog_confirm);
|
||||||
|
init();
|
||||||
|
// 动态设置背景
|
||||||
|
// getWindow().setBackgroundDrawableResource(R.drawable.bg_r16_fff);
|
||||||
|
|
||||||
|
// 初始化视图
|
||||||
|
TextView tvTitle = findViewById(R.id.tv_title);
|
||||||
|
TextView tvMessage = findViewById(R.id.tv_message);
|
||||||
|
Button btnPositive = findViewById(R.id.btn_positive);
|
||||||
|
Button btnNegative = findViewById(R.id.btn_negative);
|
||||||
|
@SuppressLint({"MissingInflatedId", "LocalSuppress"})
|
||||||
|
ConstraintLayout rootView =(ConstraintLayout) findViewById(R.id.root_view);
|
||||||
|
|
||||||
|
// 设置文本
|
||||||
|
tvTitle.setText(title);
|
||||||
|
tvMessage.setText(message);
|
||||||
|
btnPositive.setText(positiveButtonText);
|
||||||
|
btnNegative.setText(negativeButtonText);
|
||||||
|
|
||||||
|
// 设置点击监听器
|
||||||
|
btnPositive.setOnClickListener(v -> {
|
||||||
|
isCountdownCancelled = true; // 标记倒计时被取消
|
||||||
|
if (countDownTimer != null) {
|
||||||
|
countDownTimer.cancel(); // 取消倒计时
|
||||||
|
countDownTimer = null;
|
||||||
|
}
|
||||||
|
if (positiveButtonClickListener != null) {
|
||||||
|
positiveButtonClickListener.onClick(v);
|
||||||
|
}
|
||||||
|
dismiss();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 判断是否需要显示取消按钮
|
||||||
|
if (negativeButtonText != null && !negativeButtonText.isEmpty()) {
|
||||||
|
btnNegative.setText(negativeButtonText);
|
||||||
|
btnNegative.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
btnNegative.setOnClickListener(v -> {
|
||||||
|
if (negativeButtonClickListener != null) {
|
||||||
|
negativeButtonClickListener.onClick(v);
|
||||||
|
}
|
||||||
|
dismiss();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 倒计时逻辑
|
||||||
|
if (isCountdownEnabled && countdownSeconds > 0) {
|
||||||
|
startCountdown(btnNegative);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 隐藏取消按钮
|
||||||
|
btnNegative.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
// 倒计时逻辑
|
||||||
|
if (isCountdownEnabled && countdownSeconds > 0) {
|
||||||
|
startCountdown(btnNegative);
|
||||||
|
}
|
||||||
|
|
||||||
|
ThemeableDrawableUtils.setThemeableRoundedBackground(btnPositive, ColorManager.getInstance().getPrimaryColorInt(), 53);
|
||||||
|
btnPositive.setTextColor(ColorManager.getInstance().getButtonColorInt());
|
||||||
|
|
||||||
|
// 找到根布局并应用动画
|
||||||
|
|
||||||
|
// if (rootView != null) {
|
||||||
|
// Animation slideDown = AnimationUtils.loadAnimation(context, R.anim.slide_down);
|
||||||
|
// Animation shake = AnimationUtils.loadAnimation(context, R.anim.shake);
|
||||||
|
//
|
||||||
|
// rootView.startAnimation(slideDown);
|
||||||
|
// rootView.startAnimation(shake);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
private boolean isCountdownCancelled = false; // 添加标志位
|
||||||
|
private void startCountdown(Button btnNegative) {
|
||||||
|
countDownTimer = new CountDownTimer(countdownSeconds * 1000L, 1000) {
|
||||||
|
@Override
|
||||||
|
public void onTick(long millisUntilFinished) {
|
||||||
|
int secondsLeft = (int) (millisUntilFinished / 1000);
|
||||||
|
btnNegative.setText(negativeButtonText + " (" + secondsLeft + "s)");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFinish() {
|
||||||
|
// 检查是否被主动取消
|
||||||
|
if (!isCountdownCancelled) {
|
||||||
|
btnNegative.setText(negativeButtonText);
|
||||||
|
if (negativeButtonClickListener != null) {
|
||||||
|
negativeButtonClickListener.onClick(btnNegative); // 自动触发取消
|
||||||
|
}
|
||||||
|
dismiss();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.start();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void dismiss() {
|
||||||
|
if (countDownTimer != null) {
|
||||||
|
countDownTimer.cancel(); // 取消倒计时
|
||||||
|
countDownTimer = null;
|
||||||
|
}
|
||||||
|
super.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -515,7 +515,11 @@ public interface ApiServer {
|
|||||||
|
|
||||||
@FormUrlEncoded
|
@FormUrlEncoded
|
||||||
@POST(Constants.GET_ROOM_GIFT)
|
@POST(Constants.GET_ROOM_GIFT)
|
||||||
Call<BaseModel<String>> roomGift(@Field("room_id") String room_id, @Field("gift_id") String gift_id, @Field("gift_num") String num, @Field("to_uid") String to_uid, @Field("type") String gift_type, @Field("pit_number") String pit_number, @Field("heart_id") String heat_id);
|
Call<BaseModel<RoomGiftData>> roomGift(@Field("room_id") String room_id, @Field("gift_id") String gift_id, @Field("gift_num") String num, @Field("to_uid") String to_uid, @Field("type") String gift_type, @Field("pit_number") String pit_number, @Field("heart_id") String heat_id);
|
||||||
|
|
||||||
|
@FormUrlEncoded
|
||||||
|
@POST(Constants.POST_CP_GIVE_GIFT)
|
||||||
|
Call<BaseModel<RoomGiftData>> cpGiveGift(@Field("user_id") String user_id, @Field("gift_id") String gift_id, @Field("room_id") String room_id);
|
||||||
|
|
||||||
@GET(Constants.GET_FIRST_CHARGE_GIFT)
|
@GET(Constants.GET_FIRST_CHARGE_GIFT)
|
||||||
Call<BaseModel<FirstChargeGiftBean>> firstChargeGift();
|
Call<BaseModel<FirstChargeGiftBean>> firstChargeGift();
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import com.xscm.moduleutil.bean.blindboxwheel.BlindReslutBean;
|
|||||||
import com.xscm.moduleutil.bean.blindboxwheel.XlhDrawBean;
|
import com.xscm.moduleutil.bean.blindboxwheel.XlhDrawBean;
|
||||||
import com.xscm.moduleutil.bean.room.*;
|
import com.xscm.moduleutil.bean.room.*;
|
||||||
import com.xscm.moduleutil.bean.zhuangb.ZhuangBanShangChengBean;
|
import com.xscm.moduleutil.bean.zhuangb.ZhuangBanShangChengBean;
|
||||||
|
import com.xscm.moduleutil.listener.CPListener;
|
||||||
import com.xscm.moduleutil.listener.MessageListenerSingleton;
|
import com.xscm.moduleutil.listener.MessageListenerSingleton;
|
||||||
import com.xscm.moduleutil.utils.SpUtil;
|
import com.xscm.moduleutil.utils.SpUtil;
|
||||||
import com.xscm.moduleutil.utils.SystemUtils;
|
import com.xscm.moduleutil.utils.SystemUtils;
|
||||||
@@ -39,7 +40,6 @@ import java.security.SecureRandom;
|
|||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.EventListener;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@@ -48,7 +48,6 @@ import javax.net.ssl.SSLContext;
|
|||||||
import javax.net.ssl.TrustManager;
|
import javax.net.ssl.TrustManager;
|
||||||
import javax.net.ssl.X509TrustManager;
|
import javax.net.ssl.X509TrustManager;
|
||||||
|
|
||||||
import io.reactivex.disposables.Disposable;
|
|
||||||
import okhttp3.Cache;
|
import okhttp3.Cache;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import okhttp3.ResponseBody;
|
import okhttp3.ResponseBody;
|
||||||
@@ -142,6 +141,15 @@ public class RetrofitClient {
|
|||||||
mRetrofit = provideRetrofit(provideOkHttpClient());
|
mRetrofit = provideRetrofit(provideOkHttpClient());
|
||||||
sApiServer = mRetrofit.create(ApiServer.class);
|
sApiServer = mRetrofit.create(ApiServer.class);
|
||||||
}
|
}
|
||||||
|
private CPListener cpListener;
|
||||||
|
public void CpListener(CPListener cpListenter) {
|
||||||
|
this.cpListener = cpListenter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CPListener getCpListener() {
|
||||||
|
return cpListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static RetrofitClient getInstance() {
|
public static RetrofitClient getInstance() {
|
||||||
if (INSTANCE == null) {
|
if (INSTANCE == null) {
|
||||||
@@ -3054,21 +3062,75 @@ public class RetrofitClient {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void roomGift(String room_id, String gift_id, String gift_num, String to_uid, String
|
public void roomGift(String room_id, String gift_id, String gift_num, String to_uid, String type, String pit_number, String heart_id, BaseObserver<RoomGiftData> observer) {
|
||||||
type, String pit_number, String heart_id, BaseObserver<String> observer) {
|
sApiServer.roomGift(room_id, gift_id, gift_num, to_uid, type, pit_number, heart_id).enqueue(new Callback<BaseModel<RoomGiftData>>() {
|
||||||
sApiServer.roomGift(room_id, gift_id, gift_num, to_uid, type, pit_number, heart_id).enqueue(new Callback<BaseModel<String>>() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
|
public void onResponse(Call<BaseModel<RoomGiftData>> call, Response<BaseModel<RoomGiftData>> response) {
|
||||||
onNextRetu(response, observer);
|
if (response.code()==200){
|
||||||
|
BaseModel<RoomGiftData> data = response.body();
|
||||||
|
if (data.getCode()==1) {
|
||||||
|
if (data.getData().getCp_type()!=null){
|
||||||
|
if (cpListener !=null){
|
||||||
|
cpListener.onSendCpMsg(data.getData());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
observer.onNext(data.getData());
|
||||||
|
|
||||||
|
}else if (data.getCode()==0){
|
||||||
|
ToastUtils.showShort(data.getMsg());
|
||||||
|
}else if (data.getCode()==301) {
|
||||||
|
try {
|
||||||
|
ToastUtils.showShort(data.getMsg());
|
||||||
|
CommonAppContext.getInstance().clearLoginInfo();
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Call<BaseModel<String>> call, Throwable t) {
|
public void onFailure(Call<BaseModel<RoomGiftData>> call, Throwable t) {
|
||||||
ToastUtils.showShort(t.toString());
|
ToastUtils.showShort(t.toString());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void cpGiveGift(String user_id, String gift_id,String room_id,BaseObserver<RoomGiftData> observer) {
|
||||||
|
sApiServer.cpGiveGift(user_id, gift_id,room_id).enqueue(new Callback<BaseModel<RoomGiftData>>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<BaseModel<RoomGiftData>> call, Response<BaseModel<RoomGiftData>> response) {
|
||||||
|
if (response.code()==200){
|
||||||
|
BaseModel<RoomGiftData> data = response.body();
|
||||||
|
if (data.getCode()==1) {
|
||||||
|
if (data.getData().getCp_type()!=null){
|
||||||
|
if (cpListener !=null){
|
||||||
|
cpListener.onSendCpMsg(data.getData());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
observer.onNext(data.getData());
|
||||||
|
|
||||||
|
}else if (data.getCode()==0){
|
||||||
|
ToastUtils.showShort(data.getMsg());
|
||||||
|
}else if (data.getCode()==301) {
|
||||||
|
try {
|
||||||
|
ToastUtils.showShort(data.getMsg());
|
||||||
|
CommonAppContext.getInstance().clearLoginInfo();
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<BaseModel<RoomGiftData>> call, Throwable t) {
|
||||||
|
LogUtils.e("cpGiveGift",t.fillInStackTrace());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void getDayDropGift(BaseObserver<HeavenGiftBean> observer) {
|
public void getDayDropGift(BaseObserver<HeavenGiftBean> observer) {
|
||||||
sApiServer.getDayDropGift().enqueue(new Callback<BaseModel<HeavenGiftBean>>() {
|
sApiServer.getDayDropGift().enqueue(new Callback<BaseModel<HeavenGiftBean>>() {
|
||||||
@Override
|
@Override
|
||||||
@@ -3383,8 +3445,7 @@ public class RetrofitClient {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void roomRelationList(String
|
public void roomRelationList(String type, BaseObserver<List<RoomRelationBean>> observer) {
|
||||||
type, BaseObserver<List<RoomRelationBean>> observer) {
|
|
||||||
sApiServer.roomRelationList(type).enqueue(new Callback<BaseModel<List<RoomRelationBean>>>() {
|
sApiServer.roomRelationList(type).enqueue(new Callback<BaseModel<List<RoomRelationBean>>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<BaseModel<List<RoomRelationBean>>> call, Response<BaseModel<List<RoomRelationBean>>> response) {
|
public void onResponse(Call<BaseModel<List<RoomRelationBean>>> call, Response<BaseModel<List<RoomRelationBean>>> response) {
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.xscm.moduleutil.listener
|
||||||
|
|
||||||
|
import com.xscm.moduleutil.bean.RoomGiftData
|
||||||
|
import com.xscm.moduleutil.bean.RoomMessageEvent
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 这是cp的监听器,方便在各个模块中调用
|
||||||
|
*/
|
||||||
|
interface CPListener {
|
||||||
|
/**
|
||||||
|
* 发送CP消息的处理函数
|
||||||
|
* @param gitData 礼物数据信息,包含房间礼物相关的数据
|
||||||
|
*/
|
||||||
|
fun onSendCpMsg(gitData: RoomGiftData)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接收房间消息事件的处理函数
|
||||||
|
* @param roomMessageEvent 房间消息事件对象,包含消息相关的所有信息
|
||||||
|
*/
|
||||||
|
fun onReceiveMsg(roomMessageEvent: RoomMessageEvent)
|
||||||
|
}
|
||||||
@@ -15,6 +15,7 @@ import com.xscm.moduleutil.bean.RoomMessageEvent;
|
|||||||
import com.xscm.moduleutil.bean.room.EMMessageInfo;
|
import com.xscm.moduleutil.bean.room.EMMessageInfo;
|
||||||
import com.xscm.moduleutil.event.RoomJoinMountModel;
|
import com.xscm.moduleutil.event.RoomJoinMountModel;
|
||||||
import com.xscm.moduleutil.event.UnreadCountEvent;
|
import com.xscm.moduleutil.event.UnreadCountEvent;
|
||||||
|
import com.xscm.moduleutil.http.RetrofitClient;
|
||||||
import com.xscm.moduleutil.rtc.MusicPlayBean;
|
import com.xscm.moduleutil.rtc.MusicPlayBean;
|
||||||
import com.xscm.moduleutil.utils.SpUtil;
|
import com.xscm.moduleutil.utils.SpUtil;
|
||||||
import com.tencent.imsdk.v2.V2TIMAdvancedMsgListener;
|
import com.tencent.imsdk.v2.V2TIMAdvancedMsgListener;
|
||||||
@@ -103,6 +104,7 @@ public class MessageListenerSingleton {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改 notify 方法以增加保护
|
// 修改 notify 方法以增加保护
|
||||||
private void notifyPublicScreenListeners(RoomMessageEvent message) {
|
private void notifyPublicScreenListeners(RoomMessageEvent message) {
|
||||||
synchronized (publicScreenListeners) {
|
synchronized (publicScreenListeners) {
|
||||||
@@ -217,7 +219,7 @@ public class MessageListenerSingleton {
|
|||||||
try {
|
try {
|
||||||
// 先退出当前群组(如果需要)
|
// 先退出当前群组(如果需要)
|
||||||
if (groupId != null && !groupId.equals(roomId)) {
|
if (groupId != null && !groupId.equals(roomId)) {
|
||||||
LogUtils.d("MessageListener", "开始退出群组: " + groupId +"____room:"+ roomId);
|
LogUtils.d("MessageListener", "开始退出群组: " + groupId + "____room:" + roomId);
|
||||||
CountDownLatch quitLatch = new CountDownLatch(1);
|
CountDownLatch quitLatch = new CountDownLatch(1);
|
||||||
boolean[] quitSuccess = {false};
|
boolean[] quitSuccess = {false};
|
||||||
|
|
||||||
@@ -225,14 +227,14 @@ public class MessageListenerSingleton {
|
|||||||
V2TIMManager.getInstance().quitGroup("room" + groupId, new V2TIMCallback() {
|
V2TIMManager.getInstance().quitGroup("room" + groupId, new V2TIMCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
LogUtils.d("MessageListener", "退出群组成功: " + groupId+"____room:"+ roomId);
|
LogUtils.d("MessageListener", "退出群组成功: " + groupId + "____room:" + roomId);
|
||||||
quitSuccess[0] = true;
|
quitSuccess[0] = true;
|
||||||
quitLatch.countDown();
|
quitLatch.countDown();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(int code, String desc) {
|
public void onError(int code, String desc) {
|
||||||
LogUtils.e("MessageListener", "退出群组失败: " + groupId +"____room:"+ roomId + ", code=" + code + ", desc=" + desc);
|
LogUtils.e("MessageListener", "退出群组失败: " + groupId + "____room:" + roomId + ", code=" + code + ", desc=" + desc);
|
||||||
quitSuccess[0] = false;
|
quitSuccess[0] = false;
|
||||||
quitLatch.countDown();
|
quitLatch.countDown();
|
||||||
}
|
}
|
||||||
@@ -313,7 +315,12 @@ public class MessageListenerSingleton {
|
|||||||
LogUtils.d("C2C 自定义(信令)消息 " + sender.getNickName());
|
LogUtils.d("C2C 自定义(信令)消息 " + sender.getNickName());
|
||||||
String message = new String(customData, StandardCharsets.UTF_8);
|
String message = new String(customData, StandardCharsets.UTF_8);
|
||||||
RoomMessageEvent event = GsonUtils.fromJson(message, RoomMessageEvent.class);
|
RoomMessageEvent event = GsonUtils.fromJson(message, RoomMessageEvent.class);
|
||||||
notifyMessageReceived(event);
|
if (event.getMsgType() == 130 || event.getMsgType() == 131) {
|
||||||
|
// EventBus.getDefault().post(event);
|
||||||
|
RetrofitClient.getInstance().getCpListener().onReceiveMsg(event);
|
||||||
|
} else {
|
||||||
|
notifyMessageReceived(event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -486,7 +493,7 @@ public class MessageListenerSingleton {
|
|||||||
|
|
||||||
if (instance != null) {
|
if (instance != null) {
|
||||||
instance.listeners.clear();
|
instance.listeners.clear();
|
||||||
removeAllListeners();
|
// removeAllListeners();
|
||||||
isInitialized = false;
|
isInitialized = false;
|
||||||
groupId = null;
|
groupId = null;
|
||||||
LogUtils.e("@@@", "重置成功");
|
LogUtils.e("@@@", "重置成功");
|
||||||
@@ -497,7 +504,7 @@ public class MessageListenerSingleton {
|
|||||||
public static void reset(String roomId) {
|
public static void reset(String roomId) {
|
||||||
if (instance != null) {
|
if (instance != null) {
|
||||||
instance.listeners.clear();
|
instance.listeners.clear();
|
||||||
removeAllListeners();
|
// removeAllListeners();
|
||||||
isInitialized = false;
|
isInitialized = false;
|
||||||
groupId = null;
|
groupId = null;
|
||||||
// instance = null;
|
// instance = null;
|
||||||
@@ -508,7 +515,7 @@ public class MessageListenerSingleton {
|
|||||||
|
|
||||||
|
|
||||||
// 确保监听器已添加
|
// 确保监听器已添加
|
||||||
private void ensureListenersAdded() {
|
public void ensureListenersAdded() {
|
||||||
initListeners();
|
initListeners();
|
||||||
addAllListeners();
|
addAllListeners();
|
||||||
}
|
}
|
||||||
@@ -574,7 +581,32 @@ public class MessageListenerSingleton {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendCustomC2CMessage(String userId, byte[] binaryData) {
|
// TODO: 2025/11/19 添加发送公共方法,messageType:发送的type;message:发送的内容 userId:发送给谁
|
||||||
|
public void sendCustomC2CMessage(int messageType, String message, String userId) {
|
||||||
|
|
||||||
|
RoomMessageEvent.T t = new RoomMessageEvent.T();
|
||||||
|
t.setFromUserInfo(SpUtil.getUserInfo());
|
||||||
|
t.setText(message);
|
||||||
|
RoomMessageEvent roomMessageEvent = new RoomMessageEvent(messageType, mRoomId, t);
|
||||||
|
String json = com.blankj.utilcode.util.GsonUtils.toJson(roomMessageEvent);
|
||||||
|
// 转换为 byte[]
|
||||||
|
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
|
||||||
|
|
||||||
|
// 创建自定义群消息
|
||||||
|
V2TIMMessage v2TIMMessage = V2TIMManager.getMessageManager().createCustomMessage(binaryData);
|
||||||
|
v2TIMMessage.setExcludedFromUnreadCount(true);
|
||||||
|
v2TIMMessage.setExcludedFromContentModeration(true);
|
||||||
|
// v2TIMMessage.setNeedReadReceipt(true);
|
||||||
|
//
|
||||||
|
// // 发送消息
|
||||||
|
V2TIMManager.getMessageManager().sendMessage(v2TIMMessage, "u" + userId, null, V2TIMMessage.V2TIM_PRIORITY_HIGH,
|
||||||
|
true,
|
||||||
|
null,
|
||||||
|
sendCallback);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendCustomC2CMessage125(String userId, byte[] binaryData) {
|
||||||
// 创建自定义群消息
|
// 创建自定义群消息
|
||||||
V2TIMMessage v2TIMMessage = V2TIMManager.getMessageManager().createCustomMessage(binaryData);
|
V2TIMMessage v2TIMMessage = V2TIMManager.getMessageManager().createCustomMessage(binaryData);
|
||||||
v2TIMMessage.setExcludedFromUnreadCount(true);
|
v2TIMMessage.setExcludedFromUnreadCount(true);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.xscm.moduleutil.bean.GiftLabelBean;
|
|||||||
import com.xscm.moduleutil.bean.GiftPackBean;
|
import com.xscm.moduleutil.bean.GiftPackBean;
|
||||||
import com.xscm.moduleutil.bean.GiftPackListCount;
|
import com.xscm.moduleutil.bean.GiftPackListCount;
|
||||||
import com.xscm.moduleutil.bean.RewardUserBean;
|
import com.xscm.moduleutil.bean.RewardUserBean;
|
||||||
|
import com.xscm.moduleutil.bean.RoomGiftData;
|
||||||
import com.xscm.moduleutil.bean.RoonGiftModel;
|
import com.xscm.moduleutil.bean.RoonGiftModel;
|
||||||
import com.xscm.moduleutil.bean.WalletBean;
|
import com.xscm.moduleutil.bean.WalletBean;
|
||||||
import com.xscm.moduleutil.bean.room.RoomAuction;
|
import com.xscm.moduleutil.bean.room.RoomAuction;
|
||||||
@@ -102,7 +103,7 @@ public class RewardGiftPresenter extends BasePresenter<RewardGiftContacts.View>
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void roomGift(String room_id, String gift_id, String gift_num, String to_uid, String type, String pit_number, String heart_id) {
|
public void roomGift(String room_id, String gift_id, String gift_num, String to_uid, String type, String pit_number, String heart_id) {
|
||||||
api.roomGift(room_id, gift_id, gift_num, to_uid, type, pit_number, heart_id, new BaseObserver<String>() {
|
api.roomGift(room_id, gift_id, gift_num, to_uid, type, pit_number, heart_id, new BaseObserver<RoomGiftData>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
@@ -110,7 +111,7 @@ public class RewardGiftPresenter extends BasePresenter<RewardGiftContacts.View>
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNext(String s) {
|
public void onNext(RoomGiftData s) {
|
||||||
if (MvpRef == null) {
|
if (MvpRef == null) {
|
||||||
MvpRef = new WeakReference<>(mView);
|
MvpRef = new WeakReference<>(mView);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import java.util.Map;
|
|||||||
public class ColorManager {
|
public class ColorManager {
|
||||||
private static ColorManager instance;
|
private static ColorManager instance;
|
||||||
private String primaryColor = "#3ABC6D"; // 默认主题色
|
private String primaryColor = "#3ABC6D"; // 默认主题色
|
||||||
private String buttonColor = "#6D6D6D"; // 默认按钮色
|
private String buttonColor = "#FFFFFF"; // 默认按钮色
|
||||||
|
|
||||||
// 监听器列表,用于通知颜色变化
|
// 监听器列表,用于通知颜色变化
|
||||||
private List<ColorChangeListener> listeners = new ArrayList<>();
|
private List<ColorChangeListener> listeners = new ArrayList<>();
|
||||||
@@ -80,7 +80,7 @@ public class ColorManager {
|
|||||||
try {
|
try {
|
||||||
return Color.parseColor(buttonColor);
|
return Color.parseColor(buttonColor);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return Color.parseColor("#6D6D6D"); // 默认颜色
|
return Color.parseColor("#FFFFFF"); // 默认颜色
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ public class ImageUtils {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Glide.with(mImageView).load(path).diskCacheStrategy(DiskCacheStrategy.ALL).into(mImageView);
|
Glide.with(mImageView).load(path).placeholder(R.mipmap.default_avatar).diskCacheStrategy(DiskCacheStrategy.ALL).into(mImageView);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void loadHeadCC(String path, ImageView mImageView) {
|
public static void loadHeadCC(String path, ImageView mImageView) {
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public class MeHeadView extends ConstraintLayout {
|
|||||||
|
|
||||||
if (nobilityImage!=null && !TextUtils.isEmpty(nobilityImage)){
|
if (nobilityImage!=null && !TextUtils.isEmpty(nobilityImage)){
|
||||||
iv_frame_bg.setVisibility(VISIBLE);
|
iv_frame_bg.setVisibility(VISIBLE);
|
||||||
ImageUtils.loadHead(nobilityImage, iv_frame_bg);
|
ImageUtils.loadRoomItem(nobilityImage, iv_frame_bg);
|
||||||
}else {
|
}else {
|
||||||
iv_frame_bg.setVisibility(GONE);
|
iv_frame_bg.setVisibility(GONE);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -278,6 +278,7 @@ public class Constants {
|
|||||||
public static final String POST_GRAB = "/api/Redpacket/grab";//抢红包
|
public static final String POST_GRAB = "/api/Redpacket/grab";//抢红包
|
||||||
|
|
||||||
public static final String GET_ROOM_GIFT = "/api/Room/room_give_gift";//直播间送礼
|
public static final String GET_ROOM_GIFT = "/api/Room/room_give_gift";//直播间送礼
|
||||||
|
public static final String POST_CP_GIVE_GIFT = "/api/UserCp/cpGiveGift";//用户CP礼物回赠
|
||||||
public static final String GET_ROOM_USER = "/api/Room/room_user_home";//房间内点击头像
|
public static final String GET_ROOM_USER = "/api/Room/room_user_home";//房间内点击头像
|
||||||
public static final String APPLY_PIT = "/api/RoomPit/apply_pit";//申请上麦
|
public static final String APPLY_PIT = "/api/RoomPit/apply_pit";//申请上麦
|
||||||
public static final String DOWN_PIT = "/api/RoomPit/down_pit";//下麦
|
public static final String DOWN_PIT = "/api/RoomPit/down_pit";//下麦
|
||||||
|
|||||||
@@ -53,7 +53,10 @@
|
|||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:layout_marginStart="@dimen/dp_20"
|
android:layout_marginStart="@dimen/dp_20"
|
||||||
android:text="取消"
|
android:text="取消"
|
||||||
|
android:gravity="center"
|
||||||
android:textSize="@dimen/sp_14"
|
android:textSize="@dimen/sp_14"
|
||||||
|
android:paddingHorizontal="@dimen/dp_20"
|
||||||
|
android:paddingVertical="@dimen/dp_10"
|
||||||
android:textColor="@color/color_FF999999"
|
android:textColor="@color/color_FF999999"
|
||||||
android:background="@drawable/bg_r53_f3f3f3"
|
android:background="@drawable/bg_r53_f3f3f3"
|
||||||
|
|
||||||
@@ -65,7 +68,11 @@
|
|||||||
android:layout_height="@dimen/dp_42"
|
android:layout_height="@dimen/dp_42"
|
||||||
android:layout_centerInParent="true"
|
android:layout_centerInParent="true"
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
|
android:paddingHorizontal="@dimen/dp_20"
|
||||||
|
android:paddingVertical="@dimen/dp_10"
|
||||||
android:text="确认"
|
android:text="确认"
|
||||||
|
android:textSize="@dimen/sp_14"
|
||||||
|
android:gravity="center"
|
||||||
android:background="@drawable/cs"/>
|
android:background="@drawable/cs"/>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -86,6 +86,17 @@
|
|||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/im_heartssss"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@mipmap/icon_heart"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
android:scaleType="fitCenter"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/iv_gift_select"
|
android:id="@+id/iv_gift_select"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
android:scaleType="fitXY"
|
android:scaleType="fitXY"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintDimensionRatio="1:1"
|
app:layout_constraintDimensionRatio="1:1"
|
||||||
|
app:layout_constraintWidth_percent="0.85"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
@@ -49,7 +50,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/dp_1"
|
android:layout_height="@dimen/dp_1"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
app:layout_constraintGuide_percent="0.5" />
|
app:layout_constraintGuide_percent="0.53" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/iv_frame_bg"
|
android:id="@+id/iv_frame_bg"
|
||||||
|
|||||||
BIN
BaseModule/src/main/res/mipmap-hdpi/icon_heart.webp
Normal file
BIN
BaseModule/src/main/res/mipmap-hdpi/icon_heart.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 890 B |
BIN
BaseModule/src/main/res/mipmap-xhdpi/icon_heart.webp
Normal file
BIN
BaseModule/src/main/res/mipmap-xhdpi/icon_heart.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
BaseModule/src/main/res/mipmap-xxhdpi/icon_heart.webp
Normal file
BIN
BaseModule/src/main/res/mipmap-xxhdpi/icon_heart.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
@@ -28,21 +28,29 @@ import android.widget.FrameLayout;
|
|||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.databinding.ViewDataBinding;
|
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.LogUtils;
|
||||||
import com.blankj.utilcode.util.ToastUtils;
|
import com.blankj.utilcode.util.ToastUtils;
|
||||||
import com.tencent.imsdk.v2.V2TIMSDKListener;
|
import com.tencent.imsdk.v2.V2TIMSDKListener;
|
||||||
import com.tencent.imsdk.v2.V2TIMValueCallback;
|
import com.tencent.imsdk.v2.V2TIMValueCallback;
|
||||||
import com.tencent.qcloud.tuikit.tuichat.bean.ChatInfo;
|
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.modulemain.manager.RoomManager;
|
||||||
|
import com.xscm.moduleutil.BaseEvent;
|
||||||
|
import com.xscm.moduleutil.R;
|
||||||
import com.xscm.moduleutil.activity.BaseAppCompatActivity;
|
import com.xscm.moduleutil.activity.BaseAppCompatActivity;
|
||||||
import com.xscm.moduleutil.activity.IPresenter;
|
import com.xscm.moduleutil.activity.IPresenter;
|
||||||
import com.xscm.moduleutil.activity.IView;
|
import com.xscm.moduleutil.activity.IView;
|
||||||
import com.xscm.modulemain.activity.WebViewActivity;
|
|
||||||
import com.xscm.moduleutil.base.CommonAppContext;
|
import com.xscm.moduleutil.base.CommonAppContext;
|
||||||
import com.xscm.moduleutil.base.WebUrlConstants;
|
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.UserBean;
|
||||||
import com.xscm.moduleutil.bean.XLHBean;
|
import com.xscm.moduleutil.bean.XLHBean;
|
||||||
import com.xscm.moduleutil.dialog.ConfirmDialog;
|
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.MqttBean;
|
||||||
import com.xscm.moduleutil.event.RedBean;
|
import com.xscm.moduleutil.event.RedBean;
|
||||||
import com.xscm.moduleutil.event.UnreadCountEvent;
|
import com.xscm.moduleutil.event.UnreadCountEvent;
|
||||||
|
import com.xscm.moduleutil.http.BaseObserver;
|
||||||
import com.xscm.moduleutil.http.RetrofitClient;
|
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.ClickUtils;
|
||||||
import com.xscm.moduleutil.utils.ImageUtils;
|
import com.xscm.moduleutil.utils.ImageUtils;
|
||||||
import com.xscm.moduleutil.utils.LanguageUtil;
|
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.EventBus;
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
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
|
public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewDataBinding> extends BaseAppCompatActivity<VDB> implements
|
||||||
IView<Activity> {
|
IView<Activity> {
|
||||||
|
|
||||||
protected P MvpPre;
|
protected P MvpPre;
|
||||||
|
private ConfirmDialog confirmDialog;
|
||||||
|
|
||||||
protected abstract P bindPresenter();
|
protected abstract P bindPresenter();
|
||||||
|
|
||||||
@@ -102,6 +119,23 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
|
|||||||
disLoading();
|
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
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
ClickUtils.clearAllClickRecords();
|
ClickUtils.clearAllClickRecords();
|
||||||
@@ -154,6 +188,46 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
|
|||||||
super.attachBaseContext(LanguageUtil.attachBaseContext(newBase));
|
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)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
public void logOutEvent(UserBean userBean) {
|
public void logOutEvent(UserBean userBean) {
|
||||||
// 在用户 UI 点击登录的时候调用
|
// 在用户 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 -> {
|
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 -> {
|
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 final Object hourlyQueueLock = new Object(); // 小时榜队列同步锁
|
||||||
private boolean isHourlyProcessing = false; // 小时榜处理状态标志
|
private boolean isHourlyProcessing = false; // 小时榜处理状态标志
|
||||||
|
|
||||||
|
// TODO: 2025/11/19 收到小时榜
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
public void onMessageReceived(List<HourlyBean> hourlyBean) {
|
public void onMessageReceived(List<HourlyBean> hourlyBean) {
|
||||||
LogUtils.e("收到小时榜", hourlyBean);
|
LogUtils.e("收到小时榜", hourlyBean);
|
||||||
@@ -1008,7 +1089,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
|
|||||||
public void onEvent(ChatInfo event) {
|
public void onEvent(ChatInfo event) {
|
||||||
String id = event.getId().replace("g", "");
|
String id = event.getId().replace("g", "");
|
||||||
Intent intent = new Intent(this, WebViewActivity.class);
|
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);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import com.xscm.moduleutil.bean.UserBean;
|
|||||||
import com.xscm.moduleutil.utils.BarUtils;
|
import com.xscm.moduleutil.utils.BarUtils;
|
||||||
import com.xscm.moduleutil.utils.PreferencesUtils;
|
import com.xscm.moduleutil.utils.PreferencesUtils;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ import androidx.core.content.ContextCompat;
|
|||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||||
import com.blankj.utilcode.util.ActivityUtils;
|
|
||||||
import com.blankj.utilcode.util.FragmentUtils;
|
import com.blankj.utilcode.util.FragmentUtils;
|
||||||
import com.blankj.utilcode.util.LogUtils;
|
import com.blankj.utilcode.util.LogUtils;
|
||||||
import com.blankj.utilcode.util.ToastUtils;
|
import com.blankj.utilcode.util.ToastUtils;
|
||||||
@@ -69,6 +68,7 @@ import com.xscm.moduleutil.dialog.NewPeopleDialog;
|
|||||||
import com.xscm.moduleutil.dialog.RechargeDialogFragment;
|
import com.xscm.moduleutil.dialog.RechargeDialogFragment;
|
||||||
import com.xscm.moduleutil.event.RoomOutEvent;
|
import com.xscm.moduleutil.event.RoomOutEvent;
|
||||||
import com.xscm.moduleutil.event.UnreadCountEvent;
|
import com.xscm.moduleutil.event.UnreadCountEvent;
|
||||||
|
import com.xscm.moduleutil.listener.MessageListenerSingleton;
|
||||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||||
import com.xscm.moduleutil.utils.BackgroundManager;
|
import com.xscm.moduleutil.utils.BackgroundManager;
|
||||||
import com.xscm.moduleutil.utils.ColorManager;
|
import com.xscm.moduleutil.utils.ColorManager;
|
||||||
@@ -168,6 +168,8 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MessageListenerSingleton.getInstance().ensureListenersAdded();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.xscm.modulemain.activity.plaza.activity;
|
package com.xscm.modulemain.activity.plaza.activity;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.ClipboardManager;
|
import android.content.ClipboardManager;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ import com.xscm.modulemain.activity.main.activity.MainActivity
|
|||||||
import com.xscm.modulemain.activity.room.contacts.RoomContacts
|
import com.xscm.modulemain.activity.room.contacts.RoomContacts
|
||||||
import com.xscm.modulemain.activity.room.fragment.ChatRoomFragment
|
import com.xscm.modulemain.activity.room.fragment.ChatRoomFragment
|
||||||
import com.xscm.modulemain.activity.room.fragment.RedEnvelopesFragment
|
import com.xscm.modulemain.activity.room.fragment.RedEnvelopesFragment
|
||||||
import com.xscm.modulemain.activity.room.fragment.RequestSongFragment
|
|
||||||
import com.xscm.modulemain.activity.room.fragment.RoomCabinFragment
|
import com.xscm.modulemain.activity.room.fragment.RoomCabinFragment
|
||||||
import com.xscm.modulemain.activity.room.fragment.RoomChartsFragment
|
import com.xscm.modulemain.activity.room.fragment.RoomChartsFragment
|
||||||
import com.xscm.modulemain.activity.room.fragment.RoomFragment
|
import com.xscm.modulemain.activity.room.fragment.RoomFragment
|
||||||
@@ -108,6 +107,7 @@ import com.xscm.moduleutil.bean.HeadlineBean
|
|||||||
import com.xscm.moduleutil.bean.MqttXlhEnd
|
import com.xscm.moduleutil.bean.MqttXlhEnd
|
||||||
import com.xscm.moduleutil.bean.RedPacketInfo
|
import com.xscm.moduleutil.bean.RedPacketInfo
|
||||||
import com.xscm.moduleutil.bean.RoomCharmRankBean
|
import com.xscm.moduleutil.bean.RoomCharmRankBean
|
||||||
|
import com.xscm.moduleutil.bean.RoomGiftData
|
||||||
import com.xscm.moduleutil.bean.RoomInputEvent
|
import com.xscm.moduleutil.bean.RoomInputEvent
|
||||||
import com.xscm.moduleutil.bean.RoomMessageEvent
|
import com.xscm.moduleutil.bean.RoomMessageEvent
|
||||||
import com.xscm.moduleutil.bean.RoomMessageEvent.T
|
import com.xscm.moduleutil.bean.RoomMessageEvent.T
|
||||||
@@ -122,7 +122,6 @@ import com.xscm.moduleutil.bean.room.FriendInfo.HeartList
|
|||||||
import com.xscm.moduleutil.bean.room.FriendUserBean
|
import com.xscm.moduleutil.bean.room.FriendUserBean
|
||||||
import com.xscm.moduleutil.bean.room.RoomAuction
|
import com.xscm.moduleutil.bean.room.RoomAuction
|
||||||
import com.xscm.moduleutil.bean.room.RoomAuction.AuctionListBean
|
import com.xscm.moduleutil.bean.room.RoomAuction.AuctionListBean
|
||||||
import com.xscm.moduleutil.bean.room.RoomBean
|
|
||||||
import com.xscm.moduleutil.bean.room.RoomHourBean
|
import com.xscm.moduleutil.bean.room.RoomHourBean
|
||||||
import com.xscm.moduleutil.bean.room.RoomInfoResp
|
import com.xscm.moduleutil.bean.room.RoomInfoResp
|
||||||
import com.xscm.moduleutil.bean.room.RoomOnline
|
import com.xscm.moduleutil.bean.room.RoomOnline
|
||||||
@@ -1106,11 +1105,11 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
|||||||
"1",
|
"1",
|
||||||
giftGiveEvent!!.getPit(),
|
giftGiveEvent!!.getPit(),
|
||||||
giftGiveEvent!!.heart_id,
|
giftGiveEvent!!.heart_id,
|
||||||
object : BaseObserver<String?>() {
|
object : BaseObserver<RoomGiftData?>() {
|
||||||
override fun onSubscribe(d: Disposable) {
|
override fun onSubscribe(d: Disposable) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onNext(s: String) {
|
override fun onNext(s: RoomGiftData) {
|
||||||
showGiftGiveProgress()
|
showGiftGiveProgress()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -798,23 +798,6 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void isMute(int is_mute) {
|
|
||||||
RoomMessageEvent.text text = new RoomMessageEvent.text();
|
|
||||||
text.setIs_mute(is_mute);
|
|
||||||
String s = com.blankj.utilcode.util.GsonUtils.toJson(text);
|
|
||||||
RoomMessageEvent.T t = new RoomMessageEvent.T();
|
|
||||||
t.setFromUserInfo(SpUtil.getUserInfo());
|
|
||||||
t.setText(s);
|
|
||||||
RoomMessageEvent roomMessageEvent = new RoomMessageEvent(126, mRoomInfoResp.getRoom_info().getRoom_id(), t);
|
|
||||||
String json = com.blankj.utilcode.util.GsonUtils.toJson(roomMessageEvent);
|
|
||||||
// 转换为 byte[]
|
|
||||||
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
|
|
||||||
// 创建自定义消息
|
|
||||||
MessageListenerSingleton.getInstance().sendCustomC2CMessage(
|
|
||||||
SpUtil.getUserInfo().getUser_id() + "",
|
|
||||||
binaryData
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Subscribe(threadMode = ThreadMode.MAIN)
|
// @Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
public void roomInfoEvent(RoomMessageEvent messageEvent) {
|
public void roomInfoEvent(RoomMessageEvent messageEvent) {
|
||||||
|
|||||||
@@ -166,7 +166,40 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
MvpPre.singerSongCut(songId+"");
|
MvpPre.singerSongCut(songId + "");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mBinding.ciNetAva.setOnClickListener(new View.OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
if (ClickUtils.isFastDoubleClick(v)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (roomInfoResp.getSinger_info() != null && roomInfoResp.getSinger_info().getSong_info() != null) {
|
||||||
|
if (roomInfoResp.getSinger_info().getSong_info().getBoss_user_id() != 0) {
|
||||||
|
RoomUserInfoFragment.show(roomId, roomInfoResp.getSinger_info().getSong_info().getBoss_user_id() + "", "0", getHostUser(), false, 1, isNumberWhether(), getChildFragmentManager());
|
||||||
|
} else {
|
||||||
|
com.hjq.toast.ToastUtils.show("暂无老板点歌");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mBinding.ciUserAva.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
if (ClickUtils.isFastDoubleClick(v)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (roomInfoResp.getSinger_info() != null && roomInfoResp.getSinger_info().getSong_info() != null) {
|
||||||
|
if (roomInfoResp.getSinger_info().getSong_info().getSinger_user_id() != 0) {
|
||||||
|
RoomUserInfoFragment.show(roomId, roomInfoResp.getSinger_info().getSong_info().getSinger_user_id() + "", "0", getHostUser(), false, 1, isNumberWhether(), getChildFragmentManager());
|
||||||
|
} else {
|
||||||
|
com.hjq.toast.ToastUtils.show("暂无演唱者");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -321,40 +354,40 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
|||||||
}
|
}
|
||||||
adapter.setNewData(roomPitBeans);
|
adapter.setNewData(roomPitBeans);
|
||||||
|
|
||||||
if (roomInfoResp.getSinger_info()!=null){
|
if (roomInfoResp.getSinger_info() != null) {
|
||||||
if (roomInfoResp.getSinger_info().getSong_info()!=null){
|
if (roomInfoResp.getSinger_info().getSong_info() != null) {
|
||||||
mBinding.tvPerformerName.setVisibility(GONE);
|
mBinding.tvPerformerName.setVisibility(GONE);
|
||||||
mBinding.tvNetName.setVisibility(VISIBLE);
|
mBinding.tvNetName.setVisibility(VISIBLE);
|
||||||
mBinding.ciNetAva.setVisibility(VISIBLE);
|
mBinding.ciNetAva.setVisibility(VISIBLE);
|
||||||
ImageUtils.loadHead(roomInfoResp.getSinger_info().getSong_info().getSinger_avatar(),mBinding.ciUserAva);
|
ImageUtils.loadHead(roomInfoResp.getSinger_info().getSong_info().getSinger_avatar(), mBinding.ciUserAva);
|
||||||
mBinding.tvSong.setText("演唱歌曲:"+roomInfoResp.getSinger_info().getSong_info().getSong_name());
|
mBinding.tvSong.setText("演唱歌曲:" + roomInfoResp.getSinger_info().getSong_info().getSong_name());
|
||||||
ImageUtils.loadHead(roomInfoResp.getSinger_info().getSong_info().getBoss_avatar(),mBinding.ciNetAva);
|
ImageUtils.loadHead(roomInfoResp.getSinger_info().getSong_info().getBoss_avatar(), mBinding.ciNetAva);
|
||||||
mBinding.tvNetName.setText("老板");
|
mBinding.tvNetName.setText("老板");
|
||||||
songId= roomInfoResp.getSinger_info().getSong_info().getSinger_song_id();
|
songId = roomInfoResp.getSinger_info().getSong_info().getSinger_song_id();
|
||||||
|
|
||||||
if (roomInfoResp.getSinger_info().getNext_song_info()!=null){
|
if (roomInfoResp.getSinger_info().getNext_song_info() != null) {
|
||||||
mBinding.guestContainer.setVisibility(View.VISIBLE);
|
mBinding.guestContainer.setVisibility(View.VISIBLE);
|
||||||
ImageUtils.loadHead(roomInfoResp.getSinger_info().getNext_song_info().getSinger_avatar(),mBinding.ciGsAva);
|
ImageUtils.loadHead(roomInfoResp.getSinger_info().getNext_song_info().getSinger_avatar(), mBinding.ciGsAva);
|
||||||
mBinding.tvGsName.setText(roomInfoResp.getSinger_info().getNext_song_info().getSinger_nickname());
|
mBinding.tvGsName.setText(roomInfoResp.getSinger_info().getNext_song_info().getSinger_nickname());
|
||||||
}else {
|
} else {
|
||||||
mBinding.guestContainer.setVisibility(GONE);
|
mBinding.guestContainer.setVisibility(GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
String userId= String.valueOf(roomInfoResp.getSinger_info().getSong_info().getSinger_user_id());
|
String userId = String.valueOf(roomInfoResp.getSinger_info().getSong_info().getSinger_user_id());
|
||||||
if(mBinding.wvZc.getUserId().equals(userId)){
|
if (mBinding.wvZc.getUserId().equals(userId)) {
|
||||||
mBinding.wvZc.pitBean.setImageType(true);
|
mBinding.wvZc.pitBean.setImageType(true);
|
||||||
mBinding.wvZc.setData(mBinding.wvZc.pitBean);
|
mBinding.wvZc.setData(mBinding.wvZc.pitBean);
|
||||||
}else {
|
} else {
|
||||||
for (RoomPitBean roomPitBean : roomPitBeans) {
|
for (RoomPitBean roomPitBean : roomPitBeans) {
|
||||||
if (roomPitBean.getUser_id().equals(userId)){
|
if (roomPitBean.getUser_id().equals(userId)) {
|
||||||
roomPitBean.setImageType(true);
|
roomPitBean.setImageType(true);
|
||||||
}else {
|
} else {
|
||||||
roomPitBean.setImageType(false);
|
roomPitBean.setImageType(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
adapter.notifyDataSetChanged();
|
adapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
}else {
|
} else {
|
||||||
mBinding.tvNetName.setVisibility(GONE);
|
mBinding.tvNetName.setVisibility(GONE);
|
||||||
mBinding.ciNetAva.setVisibility(GONE);
|
mBinding.ciNetAva.setVisibility(GONE);
|
||||||
}
|
}
|
||||||
@@ -509,9 +542,9 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
|||||||
List<RoomPitBean> dataList = new ArrayList<>(adapter.getData());
|
List<RoomPitBean> dataList = new ArrayList<>(adapter.getData());
|
||||||
int fromIndex = Integer.parseInt(fromPit) - 1;
|
int fromIndex = Integer.parseInt(fromPit) - 1;
|
||||||
int toIndex = Integer.parseInt(toPit) - 1;
|
int toIndex = Integer.parseInt(toPit) - 1;
|
||||||
if(toIndex>adapter.getData().size()-1){
|
if (toIndex > adapter.getData().size() - 1) {
|
||||||
UserInfo fromUserInfo=event.getText().getFromUserInfo();
|
UserInfo fromUserInfo = event.getText().getFromUserInfo();
|
||||||
pitNumber= toPit;
|
pitNumber = toPit;
|
||||||
RoomPitBean pitBean = new RoomPitBean();
|
RoomPitBean pitBean = new RoomPitBean();
|
||||||
pitBean.setPit_number(pitNumber);
|
pitBean.setPit_number(pitNumber);
|
||||||
pitBean.setUser_id(fromUserInfo.getUser_id() + "");
|
pitBean.setUser_id(fromUserInfo.getUser_id() + "");
|
||||||
@@ -533,7 +566,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
|||||||
temp.setSex("");
|
temp.setSex("");
|
||||||
temp.setCharm("");
|
temp.setCharm("");
|
||||||
temp.setDress("");
|
temp.setDress("");
|
||||||
dataList.set(fromIndex,temp);
|
dataList.set(fromIndex, temp);
|
||||||
adapter.notifyDataSetChanged();
|
adapter.notifyDataSetChanged();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -576,35 +609,37 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
|||||||
|
|
||||||
// TODO: 2025/11/18 下一首歌的演唱者
|
// TODO: 2025/11/18 下一首歌的演唱者
|
||||||
public void event1071(RoomMessageEvent messageEvent) {
|
public void event1071(RoomMessageEvent messageEvent) {
|
||||||
if (messageEvent.getText().getNext_song_info()!=null){
|
if (messageEvent.getText().getNext_song_info() != null) {
|
||||||
mBinding.guestContainer.setVisibility(View.VISIBLE);
|
mBinding.guestContainer.setVisibility(View.VISIBLE);
|
||||||
ImageUtils.loadHead(messageEvent.getText().getNext_song_info().getSinger_avatar(),mBinding.ciGsAva);
|
ImageUtils.loadHead(messageEvent.getText().getNext_song_info().getSinger_avatar(), mBinding.ciGsAva);
|
||||||
mBinding.tvGsName.setText(messageEvent.getText().getNext_song_info().getSinger_nickname());
|
mBinding.tvGsName.setText(messageEvent.getText().getNext_song_info().getSinger_nickname());
|
||||||
|
roomInfoResp.getSinger_info().setNext_song_info(messageEvent.getText().getNext_song_info());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: 2025/11/18 当前 歌曲的演唱者
|
// TODO: 2025/11/18 当前 歌曲的演唱者
|
||||||
public void event1070(RoomMessageEvent messageEvent) {
|
public void event1070(RoomMessageEvent messageEvent) {
|
||||||
|
|
||||||
if(messageEvent.getText().getSong_info()!=null){
|
if (messageEvent.getText().getSong_info() != null) {
|
||||||
mBinding.tvPerformerName.setVisibility(GONE);
|
mBinding.tvPerformerName.setVisibility(GONE);
|
||||||
mBinding.tvNetName.setVisibility(VISIBLE);
|
mBinding.tvNetName.setVisibility(VISIBLE);
|
||||||
mBinding.ciNetAva.setVisibility(VISIBLE);
|
mBinding.ciNetAva.setVisibility(VISIBLE);
|
||||||
ImageUtils.loadHead(messageEvent.getText().getSong_info().getSinger_avatar(),mBinding.ciUserAva);
|
ImageUtils.loadHead(messageEvent.getText().getSong_info().getSinger_avatar(), mBinding.ciUserAva);
|
||||||
mBinding.tvSong.setText("演唱歌曲:"+messageEvent.getText().getSong_info().getSong_name());
|
mBinding.tvSong.setText("演唱歌曲:" + messageEvent.getText().getSong_info().getSong_name());
|
||||||
|
|
||||||
ImageUtils.loadHead(messageEvent.getText().getSong_info().getBoss_avatar(),mBinding.ciNetAva);
|
roomInfoResp.getSinger_info().setSong_info(messageEvent.getText().getSong_info());
|
||||||
|
ImageUtils.loadHead(messageEvent.getText().getSong_info().getBoss_avatar(), mBinding.ciNetAva);
|
||||||
mBinding.tvNetName.setText("老板");
|
mBinding.tvNetName.setText("老板");
|
||||||
songId= messageEvent.getText().getSong_info().getSinger_song_id();
|
songId = messageEvent.getText().getSong_info().getSinger_song_id();
|
||||||
String userId= String.valueOf(messageEvent.getText().getSong_info().getSinger_user_id());
|
String userId = String.valueOf(messageEvent.getText().getSong_info().getSinger_user_id());
|
||||||
if(mBinding.wvZc.getUserId().equals(userId)){
|
if (mBinding.wvZc.getUserId().equals(userId)) {
|
||||||
mBinding.wvZc.pitBean.setImageType(true);
|
mBinding.wvZc.pitBean.setImageType(true);
|
||||||
mBinding.wvZc.setData(mBinding.wvZc.pitBean);
|
mBinding.wvZc.setData(mBinding.wvZc.pitBean);
|
||||||
}else {
|
} else {
|
||||||
for (RoomPitBean roomPitBean : adapter.getData()) {
|
for (RoomPitBean roomPitBean : adapter.getData()) {
|
||||||
if (roomPitBean.getUser_id().equals(userId)){
|
if (roomPitBean.getUser_id().equals(userId)) {
|
||||||
roomPitBean.setImageType(true);
|
roomPitBean.setImageType(true);
|
||||||
}else {
|
} else {
|
||||||
roomPitBean.setImageType(false);
|
roomPitBean.setImageType(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -589,7 +589,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
|||||||
// 转换为 byte[]
|
// 转换为 byte[]
|
||||||
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
|
byte[] binaryData = json.getBytes(StandardCharsets.UTF_8);
|
||||||
// 创建自定义消息
|
// 创建自定义消息
|
||||||
MessageListenerSingleton.getInstance().sendCustomC2CMessage(
|
MessageListenerSingleton.getInstance().sendCustomC2CMessage125(
|
||||||
roomInfoRespPk.getRoom_info().getPit_list().get(8).getUser_id(),
|
roomInfoRespPk.getRoom_info().getPit_list().get(8).getUser_id(),
|
||||||
binaryData
|
binaryData
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.xscm.modulemain.activity.room.presenter;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import com.xscm.modulemain.activity.room.contacts.WheatContacts;
|
import com.xscm.modulemain.activity.room.contacts.WheatContacts;
|
||||||
|
import com.xscm.moduleutil.bean.RoomGiftData;
|
||||||
import com.xscm.moduleutil.bean.room.RoomApplyListBean;
|
import com.xscm.moduleutil.bean.room.RoomApplyListBean;
|
||||||
import com.xscm.moduleutil.http.BaseObserver;
|
import com.xscm.moduleutil.http.BaseObserver;
|
||||||
import com.xscm.moduleutil.presenter.BasePresenter;
|
import com.xscm.moduleutil.presenter.BasePresenter;
|
||||||
@@ -131,7 +132,7 @@ public class WheatPresenter extends BasePresenter<WheatContacts.View> implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void roomGift(String room_id, String gift_id, String gift_num, String to_uid, String type, String pit_number) {
|
public void roomGift(String room_id, String gift_id, String gift_num, String to_uid, String type, String pit_number) {
|
||||||
api.roomGift(room_id, gift_id, gift_num, to_uid, type, pit_number,"", new BaseObserver<String>() {
|
api.roomGift(room_id, gift_id, gift_num, to_uid, type, pit_number,"", new BaseObserver<RoomGiftData>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
@@ -139,7 +140,7 @@ public class WheatPresenter extends BasePresenter<WheatContacts.View> implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNext(String s) {
|
public void onNext(RoomGiftData s) {
|
||||||
if (MvpRef==null){
|
if (MvpRef==null){
|
||||||
MvpRef=new WeakReference<>(mView);
|
MvpRef=new WeakReference<>(mView);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,9 +16,7 @@ import androidx.annotation.Nullable;
|
|||||||
|
|
||||||
import com.alibaba.android.arouter.facade.annotation.Autowired;
|
import com.alibaba.android.arouter.facade.annotation.Autowired;
|
||||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||||
import com.alibaba.android.arouter.launcher.ARouter;
|
|
||||||
import com.xscm.modulemain.R;
|
import com.xscm.modulemain.R;
|
||||||
import com.xscm.modulemain.activity.main.activity.MainActivity;
|
|
||||||
import com.xscm.modulemain.databinding.ActivityCreatedRoomBinding;
|
import com.xscm.modulemain.databinding.ActivityCreatedRoomBinding;
|
||||||
import com.example.zhouwei.library.CustomPopWindow;
|
import com.example.zhouwei.library.CustomPopWindow;
|
||||||
import com.hjq.toast.ToastUtils;
|
import com.hjq.toast.ToastUtils;
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import com.xscm.modulemain.activity.user.presenter.DailyTasksPresenter;
|
|||||||
import com.xscm.modulemain.BaseMvpActivity;
|
import com.xscm.modulemain.BaseMvpActivity;
|
||||||
import com.xscm.modulemain.activity.WebViewActivity;
|
import com.xscm.modulemain.activity.WebViewActivity;
|
||||||
import com.xscm.modulemain.manager.RoomManager;
|
import com.xscm.modulemain.manager.RoomManager;
|
||||||
import com.xscm.moduleutil.base.CommonAppContext;
|
|
||||||
import com.xscm.moduleutil.base.WebUrlConstants;
|
import com.xscm.moduleutil.base.WebUrlConstants;
|
||||||
import com.xscm.moduleutil.bean.GiftBoxBean;
|
import com.xscm.moduleutil.bean.GiftBoxBean;
|
||||||
import com.xscm.moduleutil.bean.GiftName;
|
import com.xscm.moduleutil.bean.GiftName;
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import com.rmondjone.locktableview.LockTableView;
|
|||||||
import com.rmondjone.xrecyclerview.ProgressStyle;
|
import com.rmondjone.xrecyclerview.ProgressStyle;
|
||||||
import com.xscm.modulemain.BaseMvpActivity;
|
import com.xscm.modulemain.BaseMvpActivity;
|
||||||
import com.xscm.modulemain.R;
|
import com.xscm.modulemain.R;
|
||||||
import com.xscm.modulemain.activity.user.conacts.NobleTitleConacts;
|
|
||||||
import com.xscm.modulemain.activity.user.presenter.NobleTitlePresenter;
|
import com.xscm.modulemain.activity.user.presenter.NobleTitlePresenter;
|
||||||
import com.xscm.modulemain.databinding.ActivityNobleTitleBinding;
|
import com.xscm.modulemain.databinding.ActivityNobleTitleBinding;
|
||||||
import com.xscm.modulemain.dialog.RoomAuctionWebViewDialog;
|
import com.xscm.modulemain.dialog.RoomAuctionWebViewDialog;
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import com.xscm.modulemain.activity.user.presenter.PersonalityPresenter;
|
|||||||
import com.xscm.modulemain.BaseMvpActivity;
|
import com.xscm.modulemain.BaseMvpActivity;
|
||||||
import com.xscm.modulemain.activity.WebViewActivity;
|
import com.xscm.modulemain.activity.WebViewActivity;
|
||||||
import com.xscm.moduleutil.adapter.MyPagerAdapter;
|
import com.xscm.moduleutil.adapter.MyPagerAdapter;
|
||||||
import com.xscm.moduleutil.base.CommonAppContext;
|
|
||||||
import com.xscm.moduleutil.base.WebUrlConstants;
|
import com.xscm.moduleutil.base.WebUrlConstants;
|
||||||
import com.xscm.moduleutil.bean.PersonaltyBean;
|
import com.xscm.moduleutil.bean.PersonaltyBean;
|
||||||
import com.xscm.moduleutil.utils.ColorManager;
|
import com.xscm.moduleutil.utils.ColorManager;
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import android.Manifest;
|
|||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.media.MediaPlayer;
|
import android.media.MediaPlayer;
|
||||||
import android.media.MediaRecorder;
|
import android.media.MediaRecorder;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import com.xscm.modulemain.databinding.ActivityUnderageBinding;
|
|||||||
import com.xscm.modulemain.activity.user.presenter.UnderagePresenter;
|
import com.xscm.modulemain.activity.user.presenter.UnderagePresenter;
|
||||||
import com.xscm.modulemain.BaseMvpActivity;
|
import com.xscm.modulemain.BaseMvpActivity;
|
||||||
import com.xscm.modulemain.activity.WebViewActivity;
|
import com.xscm.modulemain.activity.WebViewActivity;
|
||||||
import com.xscm.moduleutil.base.CommonAppContext;
|
|
||||||
import com.xscm.moduleutil.base.WebUrlConstants;
|
import com.xscm.moduleutil.base.WebUrlConstants;
|
||||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||||
import com.xscm.moduleutil.utils.ColorManager;
|
import com.xscm.moduleutil.utils.ColorManager;
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
tools:src="@mipmap/ic_launcher"
|
tools:src="@mipmap/ic_launcher"
|
||||||
android:scaleType="fitCenter"
|
android:scaleType="fitCenter"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/im_performer"
|
app:layout_constraintEnd_toEndOf="@+id/im_performer"
|
||||||
app:layout_constraintTop_toTopOf="@+id/im_performer"
|
app:layout_constraintTop_toTopOf="@+id/im_performer"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -368,7 +368,7 @@
|
|||||||
android:layout_marginStart="@dimen/dp_15"
|
android:layout_marginStart="@dimen/dp_15"
|
||||||
android:layout_marginTop="@dimen/dp_20"
|
android:layout_marginTop="@dimen/dp_20"
|
||||||
android:layout_marginEnd="@dimen/dp_15"
|
android:layout_marginEnd="@dimen/dp_15"
|
||||||
android:visibility="invisible">
|
android:visibility="visible">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/im_noblesse"
|
android:id="@+id/im_noblesse"
|
||||||
|
|||||||
@@ -1,101 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:id="@+id/cl_gift"
|
|
||||||
android:layout_width="@dimen/dp_77"
|
|
||||||
android:layout_height="@dimen/dp_119"
|
|
||||||
android:background="@mipmap/gift_bj"
|
|
||||||
>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:id="@+id/cl_iv_down_on"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
tools:ignore="MissingConstraints"
|
|
||||||
>
|
|
||||||
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/iv_gift_pic"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginLeft="9dp"
|
|
||||||
android:layout_marginTop="5dp"
|
|
||||||
android:layout_marginRight="9dp"
|
|
||||||
android:src="@mipmap/default_image"
|
|
||||||
app:layout_constraintDimensionRatio="1:1.2"
|
|
||||||
app:layout_constraintHorizontal_bias="0.0"
|
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
|
||||||
app:layout_constraintRight_toRightOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/iv_down_on"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginLeft="9dp"
|
|
||||||
android:layout_marginTop="5dp"
|
|
||||||
android:layout_marginRight="9dp"
|
|
||||||
android:scaleType="fitXY"
|
|
||||||
android:src="@mipmap/room_gift_select_bg"
|
|
||||||
android:visibility="gone"
|
|
||||||
app:layout_constraintDimensionRatio="1:1.2"
|
|
||||||
app:layout_constraintHorizontal_bias="0.0"
|
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
|
||||||
app:layout_constraintRight_toRightOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_gift_name"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:text="甜蜜奶酪"
|
|
||||||
android:textColor="@color/color_FFA9A9A9"
|
|
||||||
android:textSize="11sp"
|
|
||||||
app:layout_constraintLeft_toLeftOf="@+id/iv_gift_pic"
|
|
||||||
app:layout_constraintRight_toRightOf="@+id/iv_gift_pic"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/iv_gift_pic" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_gift_price"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="1"
|
|
||||||
android:drawableLeft="@mipmap/jinb"
|
|
||||||
android:drawablePadding="@dimen/dp_3"
|
|
||||||
android:layout_marginBottom="@dimen/dp_5"
|
|
||||||
android:textColor="@color/color_FFFFBC00"
|
|
||||||
android:textSize="11sp"
|
|
||||||
app:layout_constraintLeft_toLeftOf="@+id/iv_gift_pic"
|
|
||||||
app:layout_constraintRight_toRightOf="@+id/iv_gift_pic"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_gift_name" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/integral"
|
|
||||||
android:layout_width="@dimen/dp_35"
|
|
||||||
android:layout_height="@dimen/dp_13"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:background="@mipmap/text_bj"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
android:gravity="center"
|
|
||||||
android:text="x30"
|
|
||||||
android:textColor="@color/color_FF333333"
|
|
||||||
android:textSize="@dimen/sp_10"
|
|
||||||
android:visibility="gone"/>
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:src="@mipmap/noble_is_lock"
|
|
||||||
android:visibility="gone"
|
|
||||||
android:scaleType="fitCenter"
|
|
||||||
android:id="@+id/iv_gift_select"
|
|
||||||
tools:visibility="visible"
|
|
||||||
/>
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
Reference in New Issue
Block a user