1:修改送礼中趣味的岁月之城和时空之巅,不需要选择人员就可以打开

2:优化用在房间点击用户,点击抱麦出现的错误
3: 在岁月之城和时空之巅中查看记录的时候,进行判断,当返回的nickname是null的时候,就直接不展示赠与
4:修改任务UI,
5:添加房间暴币功能
6:修改房间暴币飘屏
7:添加启动页动画
8:修改房间的设置
This commit is contained in:
2025-12-22 09:02:22 +08:00
parent f34a67c2e8
commit 53b9f0f034
54 changed files with 1016 additions and 209 deletions

View File

@@ -7,6 +7,7 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.view.GestureDetector;
import android.view.LayoutInflater;
@@ -152,20 +153,25 @@ public class GiftRoomAdapter extends BaseAdapter {
} else {
viewHolder.iv_gift_select.setVisibility(VISIBLE);
}
if (giftModel.getIs_cp() == 0 && giftModel.getIs_teacher() == 0 ) {//这是cp礼物
if (TextUtils.isEmpty(giftModel.getIcon())) {
viewHolder.im_heart.setVisibility(GONE);
} else {
if (viewHolder.im_heart != null) {
viewHolder.im_heart.setVisibility(VISIBLE);
if (giftModel.getIs_cp() == 1) {
viewHolder.im_heart.setImageResource(R.mipmap.icon_heart);
}else if (giftModel.getIs_teacher() == 1) {
viewHolder.im_heart.setImageResource(R.mipmap.icon_teacher);
}
}
}else {
ImageUtils.loadHead(giftModel.getIcon(), viewHolder.im_heart);
}
// if (giftModel.getIs_cp() == 0 && giftModel.getIs_teacher() == 0 ) {//这是cp礼物
// viewHolder.im_heart.setVisibility(GONE);
// } else {
// if (viewHolder.im_heart != null) {
// viewHolder.im_heart.setVisibility(VISIBLE);
// if (giftModel.getIs_cp() == 1) {
// viewHolder.im_heart.setImageResource(R.mipmap.icon_heart);
// }else if (giftModel.getIs_teacher() == 1) {
// viewHolder.im_heart.setImageResource(R.mipmap.icon_teacher);
// }
// }
// }
/*
* 在给View绑定显示的数据时计算正确的position = position + curIndex * pageSize

View File

@@ -62,6 +62,7 @@ public class GiftBoxBean {
private int task_type_id;
private String task_type_name;
private int is_lock;//锁:0 不开启锁 1 开启锁
private int wait_reward_num;//待领取奖励数量
@Data
public static class DailyTasksBean {

View File

@@ -54,6 +54,7 @@ public class MyRoomBean {
private String come_count; //房间进入数
private Double today_income; //今日收益;
private int earnings_ratio;//房间收益比例
private String lucky_water="";//房间幸运流水
@Data
static class CpRoom {

View File

@@ -47,7 +47,7 @@ public class RoomMessageEvent extends BaseEvent {
private List<RoomAuction.AuctionListBean> auction_list; //拍卖列表
private long duration;//时间
private RoomAuction.AuctionListBean recipient;//是否成功,有值的是成功的,没有值的时候,是失败的
private int type;//拍卖者1上麦、2下麦
private int type;//拍卖者1上麦、2下麦 暴币的时候1是大奖 2是小奖
private String hot_value;
private String SendRoomId;//发起者所在的房间ID
private String AcceptRoomId;//接收者所在的房间id
@@ -114,6 +114,8 @@ public class RoomMessageEvent extends BaseEvent {
private String status = "";
private String from_id = "";
private String play_image;//暴币播放动画地址
}
@Data

View File

@@ -34,6 +34,7 @@ public class RoonGiftModel {
private int activities_id;//4盲盒 5天空之境
private int gift_bag;//10天空之境 11岁月之城 12时空之巅
private int is_lock;//爵位礼物 0不锁 1
private String icon="";//礼物标签图片
private int is_cp;//1:是 0不是 是不是cp心动礼物
private int is_teacher;//1:是 0不是 是不是师徒礼物

View File

@@ -158,6 +158,8 @@ public class EMMessageInfo implements MultiItemEntity {
/// 被签约者提示弹窗
public static final int QXRoomMessageTypeSignTipText = 1094;
/// 暴币展示动画列表
public static final int QXRoomMessageTypeSignChat = 1100;
private RoomMessageEvent emMessage;
private int custom = 0;
@@ -212,6 +214,7 @@ public class EMMessageInfo implements MultiItemEntity {
case QXRoomMessageTypeRoomFriendPartDidChanged:
case QXRoomMessageTypeSeatDidChanged:
case QXRoomMessageTypehm:
case QXRoomMessageTypeSignChat:
return 1;
case QXRoomMessageTypeRoomOMh:
case QXRoomMessageTypeGift:

View File

@@ -2,6 +2,8 @@ package com.xscm.moduleutil.bean.room;
import com.chad.library.adapter.base.entity.MultiItemEntity;
import java.util.List;
import lombok.Data;
@Data
@@ -57,6 +59,10 @@ public class RoomSettingBean implements MultiItemEntity {
public static final int QXRoomSettingTypeRoomFloatingScreen = 29;//关闭飘屏
public static final int QXRoomSettingTypeRoomFloatingRed = 30;//红包
public static final int QXRoomSettingTypeRoomTheCityYears = 33;//岁月之城
public static final int QXRoomSettingTypeRoomTimeSpace = 34;//时空之巅
public static final int QXRoomSettingTypeRoomTimeRedSound = 35;//红包声音
public static final int ITEM_TYPE_DEFAULT = 0;
public static final int ITEM_TYPE_WITH_ICON = 1;
@@ -70,7 +76,7 @@ public class RoomSettingBean implements MultiItemEntity {
private boolean isSelected;//是否在麦位上
private boolean status;
private boolean select;//是否选中
private List<RoomSettingBean> children; // 新增子项列表
public RoomSettingBean(String name, String icon, String selectName, String selectIcon, int type, int read, boolean isSelected, boolean status, boolean select) {
this.name = name;
@@ -96,6 +102,7 @@ public class RoomSettingBean implements MultiItemEntity {
this.itemType = ITEM_TYPE_WITH_ICON;
}
}
// public void updateItemType() {
// switch (type) {
// case QXRoomSettingTypeRoomSubsidy:

View File

@@ -45,13 +45,13 @@ public class GiftLotteryAdapter extends BaseQuickAdapter<GiftBean, BaseViewHolde
@Override
protected void convert(BaseViewHolder helper, GiftBean item) {
helper.setText(R.id.tv_gift_time, item.getCreatetime());
ImageUtils.loadHeadCC(item.getBase_image(),helper.getView(R.id.iv_gift_image));
ImageUtils.loadHeadCC(item.getBase_image(), helper.getView(R.id.iv_gift_image));
// 使用 SpannableString 给 "x4" 设置不同颜色
TextView giftNameTextView = helper.getView(R.id.gift_name);
TextView nickNameTextView = helper.getView(R.id.tv_user_name);
if (giftNameTextView != null) {
String baseName = item.getGift_name();
String countText = "x"+item.getCount();
String countText = "x" + item.getCount();
String fullText = baseName + countText;
SpannableStringBuilder spannable = new SpannableStringBuilder(fullText);
@@ -67,7 +67,7 @@ public class GiftLotteryAdapter extends BaseQuickAdapter<GiftBean, BaseViewHolde
giftNameTextView.setText(spannable);
}
if (nickNameTextView!=null){
if (nickNameTextView != null && item.getNickname() != null) {
nickNameTextView.setText(item.getNickname());
String nickName = "赠予";
String fullText = nickName + " " + item.getNickname();

View File

@@ -683,6 +683,9 @@ public interface ApiServer {
@POST(Constants.POST_AGREE_SONG)
Call<BaseModel<String>> agreeSong(@Field("room_id") String roomId, @Field("type") String type);
@GET(Constants.GET_BLIND_BOX_STATUS)
Call<BaseModel<List<BlindBoxStatus>>> blindBoxStatus();
@FormUrlEncoded
@POST(Constants.POST_END_SONG)
Call<BaseModel<String>> endSong(@Field("room_id") String roomId);

View File

@@ -209,6 +209,9 @@ public class RetrofitClient {
private <T> void handleNetworkUnavailable(BaseObserver<T> observer) {
ToastUtils.showShort("网络不可用,请检查网络设置");
observer.onError(new Throwable("网络不可用,请检查网络设置"));
if (joinRoomLoadListener != null) {
joinRoomLoadListener.onJoinRoomLoad("网络部可用");
}
}
public <T> T createApiClient(Class<T> apiClientClass) {
@@ -241,8 +244,8 @@ public class RetrofitClient {
});
}
public void mobileView(String mobile, String new_mobile, String sms_code,String new_sms_code, BaseObserver<String> observer) {
sApiServer.mobileView(mobile, new_mobile, sms_code,new_sms_code).enqueue(new Callback<BaseModel<String>>() {
public void mobileView(String mobile, String new_mobile, String sms_code, String new_sms_code, BaseObserver<String> observer) {
sApiServer.mobileView(mobile, new_mobile, sms_code, new_sms_code).enqueue(new Callback<BaseModel<String>>() {
@Override
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
if (response.code() == 200) {
@@ -2080,9 +2083,9 @@ public class RetrofitClient {
BaseModel<UserInfo> listBaseModel = response.body();
if (listBaseModel.getCode() == 1) {
observer.onNext(listBaseModel.getData());
}else if (listBaseModel.getCode() == 0){
} else if (listBaseModel.getCode() == 0) {
ToastUtils.showShort(listBaseModel.getMsg());
if (ActivityUtils.getTopActivity().getComponentName().getClassName().contains("UserHomepageActivity")){
if (ActivityUtils.getTopActivity().getComponentName().getClassName().contains("UserHomepageActivity")) {
ActivityUtils.getTopActivity().finish();
}
}
@@ -2312,6 +2315,9 @@ public class RetrofitClient {
MessageListenerSingleton.getInstance().quitGroup(roomId);
CommonAppContext.getInstance().isRoomJoininj = false;
observer.onError(t);
if (joinRoomLoadListener != null) {
joinRoomLoadListener.onJoinRoomLoad("网络异常");
}
}
});
}
@@ -3623,6 +3629,35 @@ public class RetrofitClient {
});
}
public void blindBoxStatus(BaseObserver<List<BlindBoxStatus>> observer) {
sApiServer.blindBoxStatus().enqueue(new Callback<BaseModel<List<BlindBoxStatus>>>() {
@Override
public void onResponse(Call<BaseModel<List<BlindBoxStatus>>> call, Response<BaseModel<List<BlindBoxStatus>>> response) {
if (response.code() == 200) {
BaseModel<List<BlindBoxStatus>> baseModel = response.body();
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
} else if (baseModel.getCode() == 301) {
try {
ToastUtils.showShort(baseModel.getMsg());
CommonAppContext.getInstance().clearLoginInfo();
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
} else {
ToastUtils.showShort(baseModel.getMsg());
}
}
}
@Override
public void onFailure(Call<BaseModel<List<BlindBoxStatus>>> call, Throwable t) {
LogUtils.e("盲盒转盘", t.fillInStackTrace());
}
});
}
public void endSong(String room_id, BaseObserver<String> observer) {
sApiServer.endSong(room_id).enqueue(new Callback<BaseModel<String>>() {
@Override
@@ -3717,8 +3752,8 @@ public class RetrofitClient {
});
}
public void changeSong(String room_id, String now_did,String isAutoNext, BaseObserver<String> observer) {
sApiServer.changeSong(room_id, now_did,isAutoNext).enqueue(new Callback<BaseModel<String>>() {
public void changeSong(String room_id, String now_did, String isAutoNext, BaseObserver<String> observer) {
sApiServer.changeSong(room_id, now_did, isAutoNext).enqueue(new Callback<BaseModel<String>>() {
@Override
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
onNextRetu(response, observer);

View File

@@ -18,6 +18,7 @@ public class SPConstants {
public static final String VOLUME = "VOLUME"; //音量
public static final String CURRENT_MUSIC = "CURRENT_MUSIC"; //当前播放音乐
public static final String OPEN_EFFECT = "OPEN_EFFECT"; //开启特效
public static final String RED_SOUND = "RED_SOUND"; //开启红包声音
public static final String OPEN_AU_BACK = "OPEN_AU_BACK"; //开启耳返
public static final String ORDER_NEWS_COUNT = "orderNewsCount";
public static final String ORDER_LAST_MSG = "lastOrderMsg";

View File

@@ -370,6 +370,14 @@ public class SpUtil {
SPUtils.getInstance(SPConstants.PREFERENCE_NAME).put(SPConstants.OPEN_EFFECT, i);
}
public static void setRedSound(int i){
SPUtils.getInstance(SPConstants.PREFERENCE_NAME).put(SPConstants.RED_SOUND, i);
}
public static int getRedSound(){
return SPUtils.getInstance(SPConstants.PREFERENCE_NAME).getInt(SPConstants.RED_SOUND, 1);
}
//获取开启特效
public static int getOpenEffect() {
return SPUtils.getInstance(SPConstants.PREFERENCE_NAME).getInt(SPConstants.OPEN_EFFECT, 1);

View File

@@ -300,6 +300,7 @@ public class Constants {
public static final String HELP_APPLY = "/api/RoomPit/help_apply_pit";//上麦助力
public static final String POST_APPLY_SONG = "/api/RoomSong/apply_song";//申请点歌
public static final String POST_AGREE_SONG = "/api/RoomSong/agree_song";//同意、拒绝点歌
public static final String GET_BLIND_BOX_STATUS = "/api/BlindBoxTurntable/blind_box_status";//盲盒转盘状态
public static final String POST_SONG_LIST = "/api/RoomSong/song_list";//获取已点歌曲
public static final String POST_SONG = "/api/RoomSong/song";//点歌
public static final String POST_UP_SONG = "/api/RoomSong/up_song";//移动歌曲

View File

@@ -67,7 +67,8 @@
app:layout_constraintStart_toEndOf="@+id/textView1"
app:layout_constraintTop_toTopOf="@+id/textView1"
app:layout_constraintWidth_default="percent"
app:layout_constraintWidth_percent="0.2" />
app:layout_constraintWidth_percent="0.2"
android:visibility="gone" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.scwang.smartrefresh.layout.SmartRefreshLayout

View File

@@ -54,7 +54,8 @@
android:gravity="center"
android:text="抽奖榜单"
android:textColor="@drawable/text_color_radio_selector"
android:textSize="@dimen/sp_14" />
android:textSize="@dimen/sp_14"
android:visibility="gone"/>
<RadioButton

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -165,6 +165,7 @@
<color name="color_A9A9A9">#A9A9A9</color>
<color name="color_EDF2F8">#EDF2F8</color>
<color name="color_E24171">#E24171</color>
<color name="color_FFEA00">#FFEA00</color>
<color name="color_e2e2e2">#E2E2E2</color>
<color name="color_FFB8CD">#FFB8CD</color>
<color name="color_EDF2F8_6_percent">#F0EDF2F8</color>