1:红包发布和打开

2:抢最标准的红包
This commit is contained in:
2025-10-14 17:15:31 +08:00
parent fcb538a621
commit 320b8b9ab9
27 changed files with 741 additions and 266 deletions

View File

@@ -97,7 +97,7 @@ android {
}
buildTypes {
release {
minifyEnabled false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release

View File

@@ -96,6 +96,7 @@ public class RoomMessageEvent {
private String gift_num;
private RedPacketInfo redpacketInfo;
}
@Data

View File

@@ -104,6 +104,8 @@ public class EMMessageInfo implements MultiItemEntity {
public static final int QXRoomMessageTypezailx = 1058;
///清除个人魅力值
public static final int QXRoomMessageTypeQingGRMl = 1059;
//有红包列表
public static final int QXRoomMessageTypeQXRoomMessageRed = 1060;
///房间内换麦
public static final int QXRoomMessageTypehm = 1039;

View File

@@ -474,6 +474,22 @@ public interface ApiServer {
@GET(Constants.GET_WALLET)
Call<BaseModel<WalletBean>> wallet();
@FormUrlEncoded
@POST(Constants.REDPACKET_CREATE)
Call<ResponseBody> redPacketCreate(@Field("type") int type, @Field("password") String password, @Field("coin_type") int coin_type, @Field("total_amount") String total_amount,
@Field("total_count")String total_count, @Field("conditions") String conditions, @Field("countdown") String countdown, @Field("room_id") String room_id,
@Field("remark") String remark);
@GET(Constants.ROOM_REDPACKET)
Call<BaseModel<List<RedPacketInfo>>> roomRedPackets(@Query("room_id") String roomId);
@GET(Constants.GET_REDPACKET_DETAIL)
Call<BaseModel<RedpacketDetail>> redPacketDetail(@Query("redpacket_id") String redpacket_id);
@FormUrlEncoded
@POST(Constants.POST_GRAB)
Call<BaseModel<RedPackGrab>> grab(@Field("redpacket_id") String redpacket_id);
@FormUrlEncoded
@POST(Constants.POST_APPLY_Pay)
Call<BaseModel<AppPay>> appPay(@Field("user_id") String user_id, @Field("money") String money, @Field("coin") String coin, @Field("type") String type);

View File

@@ -169,8 +169,10 @@ public class RetrofitClient {
}
return INSTANCE;
}
/**
* 检查网络连接状态
*
* @return true表示网络可用false表示网络不可用
*/
private boolean isNetworkAvailable() {
@@ -185,13 +187,15 @@ public class RetrofitClient {
/**
* 网络不可用时的统一处理方法
*
* @param observer BaseObserver对象
* @param <T> 泛型类型
* @param <T> 泛型类型
*/
private <T> void handleNetworkUnavailable(BaseObserver<T> observer) {
ToastUtils.showShort("网络不可用,请检查网络设置");
observer.onError(new Throwable("网络不可用,请检查网络设置"));
}
public <T> T createApiClient(Class<T> apiClientClass) {
return mRetrofit.create(apiClientClass);
}
@@ -227,8 +231,8 @@ public class RetrofitClient {
});
}
public void userRoomBack(String room_id,String type){//用户退出前后台保留数据操作 type:1:切后台 2切前台
sApiServer.userRoomBack(room_id,type).enqueue(new Callback<ResponseBody>() {
public void userRoomBack(String room_id, String type) {//用户退出前后台保留数据操作 type:1:切后台 2切前台
sApiServer.userRoomBack(room_id, type).enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
@@ -285,22 +289,23 @@ public class RetrofitClient {
});
}
public void getRoomHourRanking(String page, String page_limit, BaseObserver<RoomHourBean> observer){
public void getRoomHourRanking(String page, String page_limit, BaseObserver<RoomHourBean> observer) {
sApiServer.getRoomHourRanking(page, page_limit).enqueue(new Callback<BaseModel<RoomHourBean>>() {
@Override
public void onResponse(Call<BaseModel<RoomHourBean>> call, Response<BaseModel<RoomHourBean>> response) {
if (response.code() == 200) {
BaseModel<RoomHourBean> listBaseModel = response.body();
if (listBaseModel != null) {
if (listBaseModel.getCode()==1) {
if (listBaseModel.getCode() == 1) {
observer.onNext(listBaseModel.getData());
}else {
} else {
ToastUtils.showShort(listBaseModel.getMsg());
}
}
}
}
@Override
public void onFailure(Call<BaseModel<RoomHourBean>> call, Throwable t) {
t.printStackTrace();
@@ -448,11 +453,11 @@ public class RetrofitClient {
sApiServer.getMessagetitle(type, page, page_limit).enqueue(new Callback<BaseModel<List<NewsMessageList>>>() {
@Override
public void onResponse(Call<BaseModel<List<NewsMessageList>>> call, Response<BaseModel<List<NewsMessageList>>> response) {
if (response.code() == 200){
if (response.code() == 200) {
BaseModel<List<NewsMessageList>> baseModel = response.body();
if (baseModel.getCode()==1){
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
}else {
} else {
ToastUtils.showShort(baseModel.getMsg());
}
}
@@ -466,16 +471,16 @@ public class RetrofitClient {
}
public void withdrawalList(String page, String page_limit, String search_stime, String search_etime, BaseObserver<List<WithdrawalBean>> observer) {
sApiServer.withdrawalList(page,page_limit,search_stime,search_etime).enqueue(new Callback<BaseModel<List<WithdrawalBean>>>() {
sApiServer.withdrawalList(page, page_limit, search_stime, search_etime).enqueue(new Callback<BaseModel<List<WithdrawalBean>>>() {
@Override
public void onResponse(Call<BaseModel<List<WithdrawalBean>>> call, Response<BaseModel<List<WithdrawalBean>>> response) {
if (response.code() == 200){
BaseModel<List<WithdrawalBean>> baseModel=response.body();
if (baseModel.getCode()==1){
Log.d("withdrawalList---", "onResponse: "+response.body().toString());
if (response.code() == 200) {
BaseModel<List<WithdrawalBean>> baseModel = response.body();
if (baseModel.getCode() == 1) {
Log.d("withdrawalList---", "onResponse: " + response.body().toString());
observer.onNext(baseModel.getData());
}else {
} else {
observer.onNext(null);
}
}
@@ -489,15 +494,15 @@ public class RetrofitClient {
// sApiServer.withdrawalList(page, page_limit, search_stime, search_etime).compose(new DefaultTransformer<>()).subscribe(observer);
}
public void bindDetai(String userId, String type,BaseObserver<BindDetail> observer){
public void bindDetai(String userId, String type, BaseObserver<BindDetail> observer) {
sApiServer.bindDetai(userId, type).enqueue(new Callback<BaseModel<BindDetail>>() {
@Override
public void onResponse(Call<BaseModel<BindDetail>> call, Response<BaseModel<BindDetail>> response) {
if (response.code() == 200){
if (response.code() == 200) {
BaseModel<BindDetail> baseModel = response.body();
if (baseModel.getCode()==1){
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
}else {
} else {
observer.onNext(null);
}
}
@@ -666,7 +671,7 @@ public class RetrofitClient {
sApiServer.roomUserReconnect(roomId).enqueue(new Callback<BaseModel<String>>() {
@Override
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
if (response.code() == 200){
if (response.code() == 200) {
}
}
@@ -1120,7 +1125,7 @@ public class RetrofitClient {
BaseModel<List<BlackUserBean>> baseModel = response.body();
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
}else {
} else {
ToastUtils.showShort(baseModel.getMsg());
}
}
@@ -1141,7 +1146,7 @@ public class RetrofitClient {
BaseModel<List<BlackUserBean>> baseModel = response.body();
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
}else {
} else {
ToastUtils.showShort(baseModel.getMsg());
}
}
@@ -1162,7 +1167,7 @@ public class RetrofitClient {
BaseModel<List<BlackUserBean>> baseModel = response.body();
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
}else {
} else {
ToastUtils.showShort(baseModel.getMsg());
}
}
@@ -1183,7 +1188,7 @@ public class RetrofitClient {
BaseModel<List<BlackUserBean>> baseModel = response.body();
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
}else {
} else {
ToastUtils.showShort(baseModel.getMsg());
}
}
@@ -1204,9 +1209,9 @@ public class RetrofitClient {
BaseModel<RealNameBean> baseModel = response.body();
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
}else if (baseModel.getCode() == 0){
} else if (baseModel.getCode() == 0) {
ToastUtils.showShort(baseModel.getMsg());
}else if (baseModel.getCode() == 301){
} else if (baseModel.getCode() == 301) {
try {
CommonAppContext.getInstance().clearLoginInfo();
ToastUtils.showShort(baseModel.getMsg());
@@ -1335,15 +1340,15 @@ public class RetrofitClient {
public void onResponse(Call<BaseModel<List<BannerModel>>> call, Response<BaseModel<List<BannerModel>>> response) {
if (response.code() == 200) {
BaseModel<List<BannerModel>> listBaseModel = response.body();
if (listBaseModel.getCode()==1) {
if (listBaseModel.getCode() == 1) {
if (listBaseModel != null) {
observer.onNext(listBaseModel.getData());
} else {
observer.onNext(null);
}
}else if (listBaseModel.getCode()==0){
} else if (listBaseModel.getCode() == 0) {
observer.onNext(null);
}else if (listBaseModel.getCode()==301){
} else if (listBaseModel.getCode() == 301) {
try {
ToastUtils.showShort(listBaseModel.getMsg());
CommonAppContext.getInstance().clearLoginInfo();
@@ -1368,15 +1373,15 @@ public class RetrofitClient {
public void onResponse(Call<BaseModel<List<TopRoom>>> call, Response<BaseModel<List<TopRoom>>> response) {
if (response.code() == 200) {
BaseModel<List<TopRoom>> listBaseModel = response.body();
if (listBaseModel.getCode()==1) {
if (listBaseModel.getCode() == 1) {
if (listBaseModel != null) {
observer.onNext(listBaseModel.getData());
} else {
observer.onNext(null);
}
}else if (listBaseModel.getCode()==0){
} else if (listBaseModel.getCode() == 0) {
observer.onNext(null);
}else if (listBaseModel.getCode()==301){
} else if (listBaseModel.getCode() == 301) {
try {
ToastUtils.showShort(listBaseModel.getMsg());
CommonAppContext.getInstance().clearLoginInfo();
@@ -1403,9 +1408,9 @@ public class RetrofitClient {
BaseModel<List<RoomTypeModel>> listBaseModel = response.body();
if (listBaseModel.getCode() == 1) {
observer.onNext(listBaseModel.getData());
}else if (listBaseModel.getCode() == 0) {
} else if (listBaseModel.getCode() == 0) {
observer.onNext(null);
}else if (listBaseModel.getCode() == 301) {
} else if (listBaseModel.getCode() == 301) {
try {
CommonAppContext.getInstance().clearLoginInfo();
ToastUtils.showShort(listBaseModel.getMsg());
@@ -1805,14 +1810,14 @@ public class RetrofitClient {
public void roomGetIn(String roomId, String password, BaseObserver<RoomInfoResp> observer) {
if (!isNetworkAvailable()) {
handleNetworkUnavailable(observer);
CommonAppContext.getInstance().isRoomJoininj=false;
CommonAppContext.getInstance().isRoomJoininj = false;
return;
}
sApiServer.roomGetIn(roomId, password).enqueue(new Callback<BaseModel<RoomInfoResp>>() {
@Override
public void onResponse(Call<BaseModel<RoomInfoResp>> call, Response<BaseModel<RoomInfoResp>> response) {
CommonAppContext.getInstance().isRoomJoininj=false;
CommonAppContext.getInstance().isRoomJoininj = false;
if (response.code() == 200) {
BaseModel<RoomInfoResp> roomInfoRespBaseModel = response.body();
if (roomInfoRespBaseModel.getCode() == 1) {
@@ -1826,7 +1831,7 @@ public class RetrofitClient {
@Override
public void onFailure(Call<BaseModel<RoomInfoResp>> call, Throwable t) {
MessageListenerSingleton.getInstance().quitGroup(roomId);
CommonAppContext.getInstance().isRoomJoininj=false;
CommonAppContext.getInstance().isRoomJoininj = false;
}
});
}
@@ -1934,7 +1939,7 @@ public class RetrofitClient {
});
}
public void activitiesPermission(BaseObserver<ActivitiesPermission> observer){
public void activitiesPermission(BaseObserver<ActivitiesPermission> observer) {
sApiServer.activitiesPermission().enqueue(new Callback<BaseModel<ActivitiesPermission>>() {
@Override
public void onResponse(Call<BaseModel<ActivitiesPermission>> call, Response<BaseModel<ActivitiesPermission>> response) {
@@ -1942,9 +1947,9 @@ public class RetrofitClient {
BaseModel<ActivitiesPermission> activitiesPermissionBaseModel = response.body();
if (activitiesPermissionBaseModel.getCode() == 1) {
observer.onNext(activitiesPermissionBaseModel.getData());
}else if (activitiesPermissionBaseModel.getCode()==0){
} else if (activitiesPermissionBaseModel.getCode() == 0) {
ToastUtils.showShort(activitiesPermissionBaseModel.getMsg());
}else if (activitiesPermissionBaseModel.getCode()==301){
} else if (activitiesPermissionBaseModel.getCode() == 301) {
try {
CommonAppContext.getInstance().clearLoginInfo();
ToastUtils.showShort(activitiesPermissionBaseModel.getMsg());
@@ -1954,6 +1959,7 @@ public class RetrofitClient {
}
}
}
@Override
public void onFailure(Call<BaseModel<ActivitiesPermission>> call, Throwable t) {
t.printStackTrace();
@@ -1980,6 +1986,67 @@ public class RetrofitClient {
});
}
public void redPacketCreate(int type, String password, int coin_type, String total_amount, String total_count, String conditions, String countdown, String room_id, String remark, BaseObserver<String> observer) {
sApiServer.redPacketCreate(type, password, coin_type, total_amount, total_count, conditions, countdown, room_id, remark).enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if (response.code() == 200) {
try {
String json = response.body().string();
BaseModel<String> redPacketBeanBaseModel = GsonUtils.fromJson(json, BaseModel.class);
if (redPacketBeanBaseModel.getCode() == 1) {
observer.onNext(redPacketBeanBaseModel.getData());
} else if (redPacketBeanBaseModel.getCode() == 0) {
ToastUtils.showShort(redPacketBeanBaseModel.getMsg());
} else if (redPacketBeanBaseModel.getCode() == 301) {
try {
CommonAppContext.getInstance().clearLoginInfo();
ToastUtils.showShort(redPacketBeanBaseModel.getMsg());
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
t.printStackTrace();
}
});
// .enqueue(new Callback<BaseModel<String>>() {
//
// @Override
// public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
// if (response.code() == 200){
// BaseModel<String> redPacketBeanBaseModel = response.body();
// if (redPacketBeanBaseModel.getCode() == 1) {
// observer.onNext(redPacketBeanBaseModel.getData());
// }else if (redPacketBeanBaseModel.getCode()==0){
// ToastUtils.showShort(redPacketBeanBaseModel.getMsg());
// }else if (redPacketBeanBaseModel.getCode()==301){
// try {
// ToastUtils.showShort(redPacketBeanBaseModel.getMsg());
// CommonAppContext.getInstance().clearLoginInfo();
// } catch (ClassNotFoundException e) {
// throw new RuntimeException(e);
// }
// }
// }
// }
//
// @Override
// public void onFailure(Call<BaseModel<String>> call, Throwable t) {
// t.printStackTrace();
// }
// });
}
public void appPay(String user_id, String money, String coin, String type, BaseObserver<AppPay> observer) {
sApiServer.appPay(user_id, money, coin, type).enqueue(new Callback<BaseModel<AppPay>>() {
@Override
@@ -1988,7 +2055,7 @@ public class RetrofitClient {
BaseModel<AppPay> appPayBaseModel = response.body();
if (appPayBaseModel.getCode() == 1) {
observer.onNext(appPayBaseModel.getData());
}else {
} else {
ToastUtils.showShort(appPayBaseModel.getMsg());
}
}
@@ -2152,15 +2219,15 @@ public class RetrofitClient {
});
}
public void getSearchAll(String keyWord, BaseObserver<SearchAll> observer) {
public void getSearchAll(String keyWord, BaseObserver<SearchAll> observer) {
sApiServer.getSearchAll(keyWord).enqueue(new Callback<BaseModel<SearchAll>>() {
@Override
public void onResponse(Call<BaseModel<SearchAll>> call, Response<BaseModel<SearchAll>> response) {
if (response.code() == 200){
if (response.code() == 200) {
BaseModel<SearchAll> searchAllBaseModel = response.body();
if (searchAllBaseModel.getCode()==1){
if (searchAllBaseModel.getData()!=null){
if (searchAllBaseModel.getCode() == 1) {
if (searchAllBaseModel.getData() != null) {
observer.onNext(searchAllBaseModel.getData());
}
}
@@ -2256,19 +2323,20 @@ public class RetrofitClient {
public void roomAuctionJoin(String auctionId, String userId, String giftId, String num, String type, BaseObserver<RoomAuction.AuctionListBean> observer) {
sApiServer.roomAuctionJoin(auctionId, userId, giftId, num, type).enqueue(new ApiResponseCallback<RoomAuction.AuctionListBean>(CommonAppContext.getInstance()) {
@Override
public void onSuccess(RoomAuction.AuctionListBean data) {
if (data != null) {
observer.onNext(data);
}else {
observer.onNext(new RoomAuction.AuctionListBean());
}
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
});
@Override
public void onSuccess(RoomAuction.AuctionListBean data) {
if (data != null) {
observer.onNext(data);
} else {
observer.onNext(new RoomAuction.AuctionListBean());
}
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
});
// .enqueue(new Callback<BaseModel<RoomAuction.AuctionListBean>>() {
//
// @Override
@@ -2305,6 +2373,90 @@ public class RetrofitClient {
});
}
public void roomRedPackets(String roomId, BaseObserver<List<RedPacketInfo>> observer) {
sApiServer.roomRedPackets(roomId).enqueue(new Callback<BaseModel<List<RedPacketInfo>>>() {
@Override
public void onResponse(Call<BaseModel<List<RedPacketInfo>>> call, Response<BaseModel<List<RedPacketInfo>>> response) {
if (response.code() == 200) {
BaseModel<List<RedPacketInfo>> baseModel = response.body();
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
} else if (baseModel.getCode() == 0) {
} else if (baseModel.getCode() == 301) {
try {
ToastUtils.showShort(baseModel.getMsg());
CommonAppContext.getInstance().clearLoginInfo();
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
}
}
@Override
public void onFailure(Call<BaseModel<List<RedPacketInfo>>> call, Throwable t) {
t.printStackTrace();
}
});
}
public void redPacketDetail(String redPacketId, BaseObserver<RedpacketDetail> observer) {
sApiServer.redPacketDetail(redPacketId).enqueue(new Callback<BaseModel<RedpacketDetail>>() {
@Override
public void onResponse(Call<BaseModel<RedpacketDetail>> call, Response<BaseModel<RedpacketDetail>> response) {
if (response.code() == 200) {
BaseModel<RedpacketDetail> baseModel = response.body();
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
} else if (baseModel.getCode() == 0) {
ToastUtils.showShort(baseModel.getMsg());
} else if (baseModel.getCode() == 301) {
try {
ToastUtils.showShort(baseModel.getMsg());
CommonAppContext.getInstance().clearLoginInfo();
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
}
}
@Override
public void onFailure(Call<BaseModel<RedpacketDetail>> call, Throwable t) {
t.printStackTrace();
}
});
}
public void grab(String redPacketId, BaseObserver<RedPackGrab> observer) {
sApiServer.grab(redPacketId).enqueue(new Callback<BaseModel<RedPackGrab>>() {
@Override
public void onResponse(Call<BaseModel<RedPackGrab>> call, Response<BaseModel<RedPackGrab>> response) {
if (response.code() == 200) {
BaseModel<RedPackGrab> baseModel = response.body();
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
} else if (baseModel.getCode() == 0) {
ToastUtils.showShort(baseModel.getMsg());
observer.onNext(baseModel.getData());
} else if (baseModel.getCode() == 301) {
try {
ToastUtils.showShort(baseModel.getMsg());
CommonAppContext.getInstance().clearLoginInfo();
} catch (ClassNotFoundException e) {
}
}
}
}
@Override
public void onFailure(Call<BaseModel<RedPackGrab>> call, Throwable t) {
t.printStackTrace();
}
});
}
public void auctionEnd(String auctionId, String roomId, BaseObserver<String> observer) {
sApiServer.auctionEnd(auctionId, roomId).enqueue(new Callback<BaseModel<String>>() {
@Override
@@ -2527,16 +2679,16 @@ public class RetrofitClient {
});
}
public void getDayDropGift(BaseObserver<HeavenGiftBean> observer){
public void getDayDropGift(BaseObserver<HeavenGiftBean> observer) {
sApiServer.getDayDropGift().enqueue(new Callback<BaseModel<HeavenGiftBean>>() {
@Override
public void onResponse(Call<BaseModel<HeavenGiftBean>> call, Response<BaseModel<HeavenGiftBean>> response) {
if (response.code()==200){
if (response.code() == 200) {
BaseModel<HeavenGiftBean> data = response.body();
if (data.getCode()==1){
if (data.getCode() == 1) {
observer.onNext(data.getData());
}else if (data.getCode()==0){
ToastUtils.showShort(data.getMsg());
} else if (data.getCode() == 0) {
ToastUtils.showShort(data.getMsg());
}
}
}
@@ -2686,7 +2838,7 @@ public class RetrofitClient {
});
}
public void keepXintiao(){
public void keepXintiao() {
sApiServer.keepXintiao().enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
@@ -2933,7 +3085,7 @@ public class RetrofitClient {
sApiServer.relationCard(user_id).enqueue(new Callback<BaseModel<RelationCardBean>>() {
@Override
public void onResponse(Call<BaseModel<RelationCardBean>> call, Response<BaseModel<RelationCardBean>> response) {
if (response.code() == 200){
if (response.code() == 200) {
BaseModel<RelationCardBean> baseModel = response.body();
if (baseModel.getCode() == 1) {
observer.onNext(baseModel.getData());
@@ -3569,7 +3721,7 @@ public class RetrofitClient {
}
/// 盲盒转盘抽奖
public void drawGiftList(String giftBagId, String gift_user_ids, String roomId, String num, String heart_id,String auction_id, BaseObserver<BlindReslutBean> observer) {
public void drawGiftList(String giftBagId, String gift_user_ids, String roomId, String num, String heart_id, String auction_id, BaseObserver<BlindReslutBean> observer) {
sApiServer.drawGiftList(giftBagId, gift_user_ids, roomId, num, heart_id, auction_id).enqueue(new Callback<BaseModel<BlindReslutBean>>() {
@Override
public void onResponse(Call<BaseModel<BlindReslutBean>> call, Response<BaseModel<BlindReslutBean>> response) {
@@ -3612,8 +3764,8 @@ public class RetrofitClient {
}
public void xlhAllRecord(String roomId, String page, String
pageSize,int type, BaseObserver<List<GiftBean>> observer) {
if (type==1) {
pageSize, int type, BaseObserver<List<GiftBean>> observer) {
if (type == 1) {
sApiServer.xlhAllRecord(roomId, page, pageSize).enqueue(new Callback<BaseModel<List<GiftBean>>>() {
@@ -3632,8 +3784,8 @@ public class RetrofitClient {
t.printStackTrace();
}
});
}else {
sApiServer.xlXH_RANking(roomId,page,pageSize).enqueue(new Callback<BaseModel<List<GiftBean>>>() {
} else {
sApiServer.xlXH_RANking(roomId, page, pageSize).enqueue(new Callback<BaseModel<List<GiftBean>>>() {
@Override
public void onResponse(Call<BaseModel<List<GiftBean>>> call, Response<BaseModel<List<GiftBean>>> response) {
if (response.code() == 200) {

View File

@@ -51,11 +51,11 @@ public class EnvironmentPrefs {
// }
// 默认使用生产环境
String envName = sharedPreferences.getString(KEY_ENV, EnvironmentEnum.PRODUCTION.name());
String envName = sharedPreferences.getString(KEY_ENV, EnvironmentEnum.TEST.name());
try {
return EnvironmentEnum.valueOf(envName);
} catch (IllegalArgumentException e) {
return EnvironmentEnum.PRODUCTION; // 出错时默认返回生产环境
return EnvironmentEnum.TEST; // 出错时默认返回生产环境
}
}
}

View File

@@ -269,6 +269,12 @@ public class Constants {
public static final String GET_ROOM_TYPE = "/api/Index/room_type_list";//房间分类列表
public static final String GET_GIVE_GIFT = "/api/Gift/chat_gift_send";//聊天送礼物
public static final String GET_WALLET = "/api/UserWallet/wallet";//钱包
public static final String REDPACKET_CREATE = "/api/Redpacket/create";//创建红包
public static final String ROOM_REDPACKET = "/api/Redpacket/roomRedPackets";//红包列表
public static final String GET_REDPACKET_DETAIL = "/api/Redpacket/detail";//红包详情
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_USER = "/api/Room/room_user_home";//房间内点击头像
public static final String APPLY_PIT = "/api/RoomPit/apply_pit";//申请上麦

View File

@@ -2,6 +2,7 @@ package com.example.moduleroom.activity;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.example.moduleroom.R;
import com.example.moduleroom.adapter.RedAdapter;
@@ -13,32 +14,46 @@ import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.bean.RedpacketDetail;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ImageUtils;
import org.jetbrains.annotations.NotNull;
/**
*@author qx
*@data 2025/9/29
*@description:红包最终的展示页面
* @author qx
* @data 2025/9/29
* @description:红包最终的展示页面
*/
@Route(path = ARouteConstants.ROOM_RED_RESULT)
public class RedResultActivity extends BaseMvpActivity<RedEnvelopesPresenter, FragmentRedBinding> implements RedEnvelopesContacts.View {
private RedViewModel mViewModel;
private RedAdapter redAdapter;
private int page=1;
private int page = 1;
private String redpacketId;
public static RedResultActivity newInstance() {
return new RedResultActivity();
// public static RedResultActivity newInstance() {
// return new RedResultActivity();
// }
@Override
protected void initData() {
redpacketId = getIntent().getStringExtra("redpacketId");
if (redpacketId == null || redpacketId.isEmpty()) {
// 处理红包ID为空的情况
return;
}
if (MvpPre==null){
MvpPre = new RedEnvelopesPresenter(this, this);
}
MvpPre.getRedpacketDetail(redpacketId);
}
@Override
protected RedEnvelopesPresenter bindPresenter() {
return new RedEnvelopesPresenter( this, this);
}
@Override
protected void initData() {
return new RedEnvelopesPresenter(this, this);
}
@Override
@@ -58,7 +73,7 @@ public class RedResultActivity extends BaseMvpActivity<RedEnvelopesPresenter, Fr
@Override
public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) {
page=1;
page = 1;
// MvpPre.getRoomHourRanking(page+"", "20");
}
@@ -75,4 +90,17 @@ public class RedResultActivity extends BaseMvpActivity<RedEnvelopesPresenter, Fr
return R.layout.fragment_red;
}
@Override
public void redPacketDetail(RedpacketDetail redpacketDetail) {
if (redpacketDetail != null) {
ImageUtils.loadHeadCC(redpacketDetail.getMy_record().getAvatar(), mBinding.userAvatar);
mBinding.userName.setText(redpacketDetail.getMy_record().getNickname());
mBinding.tvRedTitle.setText(redpacketDetail.getRedPacket_info().getRemark());
mBinding.tvRedJb.setText(redpacketDetail.getMy_record().getAmount());
mBinding.tvJb.setText(redpacketDetail.getRedPacket_info().getCoin_type() == 1 ? "金币" : "钻石");
mBinding.tvLq.setText(redpacketDetail.getRecords().size() + "/" + redpacketDetail.getRedPacket_info().getTotal_count());
redAdapter.setNewData(redpacketDetail.getRecords());
}
}
}

View File

@@ -104,7 +104,7 @@ import java.util.stream.Collectors
@Route(path = ARouteConstants.ROOM_DETAILS)
class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
RoomContacts.View, PermissionCallbacks, OnMessageReceivedListener {
RoomContacts.View, PermissionCallbacks, OnMessageReceivedListener, QXRedPacketManager.QXRedPacketManagerDelegate {
private var roomFragment: RoomFragment? = null
var commonPageAdapter: CommonPageAdapter? = null
private var mRoomBean: RoomBean? = null
@@ -165,6 +165,9 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
private var isMinimized = false
private var appStateListener: AppStateListener? = null
private var qxRedPacketManager: QXRedPacketManager? = null
// 添加弹框到管理列表
fun addActiveDialog(dialog: DialogInterface) {
activeDialogs.add(dialog)
@@ -206,37 +209,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
// }
// }
private fun handleRestoreFromMinimize(intent: Intent) {
// 如果是从桌面启动且之前有最小化的房间
// if (Intent.ACTION_MAIN.equals(intent.getAction())
// && intent.hasCategory(Intent.CATEGORY_LAUNCHER)) {
//
// SharedPreferences prefs = getSharedPreferences("room_minimize_state", Context.MODE_PRIVATE);
// boolean isMinimized = prefs.getBoolean("is_minimized", false);
//
// if (isMinimized) {
// // 恢复到最小化的房间
// String minimizedRoomId = prefs.getString(PREF_MINIMIZED_ROOM, null);
// if (minimizedRoomId != null && minimizedRoomId.equals(roomId)) {
// // 当前就是最小化的房间,直接恢复
// resumeRoomFromMinimize();
// return;
// }
// }
// }
// 其他情况按正常流程处理
val newRoomId = intent.getStringExtra("roomId")
val newPassword = intent.getStringExtra("password")
if (!TextUtils.isEmpty(newRoomId) && newRoomId != roomId) {
// switchToRoom(newRoomId, newPassword);
releaseRoom()
startActivity(intent)
finish()
}
}
private fun resumeRoomFromMinimize() {
// 从最小化状态恢复房间
@@ -417,7 +389,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
val bottomSheet = ExitRoomBottomSheet.newInstance(false, true, true);
bottomSheet.setOnOptionSelectedListener(object : OnOptionSelectedListener {
override fun onMinimize() {
TODO("Not yet implemented")
}
override fun onExitRoom() {
@@ -617,6 +588,11 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
}
V2TIMManager.getInstance().addIMSDKListener(imSdkListener);
// 在 RoomActivity 中获取单例实例
// 在onCreate中初始化红包管理器实例以便在整个Activity生命周期中使用
qxRedPacketManager = QXRedPacketManager.getInstance()
// 获取单例实例并设置委托
QXRedPacketManager.getInstance().setDelegate(this);
}
@@ -815,6 +791,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
if (mRoomInfoResp == null) {
// 使用Handler确保在主线程中调用
MvpPre!!.getRoomIn(roomId, password)
}
MvpPre!!.getRoomOnline(roomId, "1", "10")
}
@@ -859,11 +836,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
// TODO: 发红包
fun redDialogView(){
// ARouter.getInstance().build(ARouteConstants.ROOM_RED_RESULT).navigation();
RedBagSendDialog(this).show()
// 在Activity中使用
RedBagSendDialog(this,roomId).show()
}
override fun initView() {
@@ -1087,8 +1060,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
}
private fun enterLandscapeMode() {
isFullScreen = true
@@ -1201,51 +1172,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
// 隐藏退出按钮
ivExitFullscreen!!.visibility = View.GONE
// upHeight()
// initPublicScreenFragment()
// if (!isFinishing && !isDestroyed) {
// resetFragment()
// upHeight()
// } else {
// Log.e("Fragment", "Fragment transaction skipped due to state loss.")
// }
// isFullScreen = false;
// // 恢复系统UI
// View decorView = getWindow().getDecorView();
//// decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
// decorView.setSystemUiVisibility(
// View.SYSTEM_UI_FLAG_FULLSCREEN
// | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
// | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
// );
// // 设置回竖屏
// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
// // 找到 fl_screenshare 并移回原父容器
// FrameLayout fl_screenshare = findViewById(R.id.fl_screenshare);
// if (fl_screenshare != null) {
// safelyMoveViewToParent(fl_screenshare, fullScreenContainer);
//// ViewParent parent = fl_screenshare.getParent();
//// if (parent instanceof ViewGroup) {
//// ((ViewGroup) parent).removeView(fl_screenshare);
//// }
//// // 添加到全屏容器
//// fullScreenContainer.addView(fl_screenshare);
// // 找到原始父容器并重新添加
//// FrameLayout originalParent = findViewById(R.id.fullscreen_container); // 或者你实际的容器
//// if (originalParent != null) {
//// originalParent.removeView(fl_screenshare); // 防止重复添加
//// }
//
//// floatingMagnetView.addView(fl_screenshare);
// }
// // 恢复界面
// fullScreenContainer.setVisibility(View.GONE);
// floatingMagnetView.setVisibility(View.VISIBLE);
// ivQuan.setVisibility(View.VISIBLE);
// ivExitFullscreen.setVisibility(View.GONE); // 隐藏退出按钮
}
override fun initData() {
@@ -1595,18 +1521,12 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
}
xlhDjs(messageEvent.text.end_time)
// if (messageEvent.getText().getXlh_data() != null) {
// if (messageEvent.getText().getXlh_data().getStatus() == 1) {
// mBinding.xlhRk.setVisibility(View.VISIBLE);
// xlhDjs(messageEvent.getText().getEnd_time());
// } else {
// mBinding.xlhRk.setVisibility(View.GONE);
// releaseCountDownTimer1();
// }
// }
}else if(msgType==1060){
qxRedPacketManager!!.addRedPacket(messageEvent.text.redpacketInfo)
}
}
private var endTime: Long = 0
private fun xlhDjs(endTimeStr: String?) {
@@ -3726,6 +3646,8 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
// }
// }
MvpPre!!.roomRedPackets(roomId);
if (isInBackground) {
isInBackground = false
MvpPre!!.postRoomInfo(CommonAppContext.getInstance().playId)
@@ -4209,6 +4131,12 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
override fun findRoom() {
}
override fun roomRedPackets(list: MutableList<RedPacketInfo>?) {
if(list!=null) {
qxRedPacketManager!!.addRedPackets(list!!)
}
}
private fun queren1(nickname: String) {
// 创建并显示确认对话框
ConfirmDialog(
@@ -4566,5 +4494,32 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
private val AUDIO_PERMISSIONS = arrayOf(Manifest.permission.RECORD_AUDIO)
}
override fun onRedPacketsAdded(redPackets: MutableList<RedPacketInfo>?, remainingCount: Int) {
// 处理添加红包列表的逻辑
if (redPackets!!.isNotEmpty()){
mBinding!!.drvRed.visibility=View.VISIBLE
mBinding!!.redNum.visibility=View.VISIBLE
mBinding!!.redNum.text="x"+remainingCount.toString()
}
}
override fun onRedPacketAdded(redPacket: RedPacketInfo?, remainingCount: Int) {
// 处理添加单个红包的逻辑
if (redPacket!=null){
mBinding!!.drvRed.visibility=View.VISIBLE
mBinding!!.redNum.visibility=View.VISIBLE
mBinding!!.redNum.text="x"+remainingCount.toString()
}
}
override fun onRedPacketRemoved(packetId: String?, remainingCount: Int) {
// 处理移除红包的逻辑
}
override fun onRedPacketUpdated(packet: RedPacketInfo?, remainingCount: Int) {
// 处理红包状态更新的逻辑
}
}

View File

@@ -4,21 +4,30 @@ import android.view.View;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.example.moduleroom.R;
import com.xscm.moduleutil.bean.RedpacketDetail;
import com.xscm.moduleutil.bean.room.RedResultBean;
import com.xscm.moduleutil.bean.room.RoomHourBean;
import com.xscm.moduleutil.utils.ImageUtils;
public class RedAdapter extends BaseQuickAdapter<RedResultBean.RedBean, BaseViewHolder> {
import java.text.SimpleDateFormat;
import java.util.Date;
public class RedAdapter extends BaseQuickAdapter<RedpacketDetail.Records, BaseViewHolder> {
public RedAdapter() {
super(R.layout.item_red);
}
@Override
protected void convert(BaseViewHolder baseViewHolder, RedResultBean.RedBean redBean) {
ImageUtils.loadHeadCC(redBean.getRedUserAvatar(), baseViewHolder.getView(R.id.red_user_avatar));
baseViewHolder.setText(R.id.tv_user_name, redBean.getRedUserName());
baseViewHolder.setText(R.id.tv_red_num, redBean.getRedNum()+"");
baseViewHolder.setText(R.id.tv_time, redBean.getRedTime());
protected void convert(BaseViewHolder baseViewHolder,RedpacketDetail.Records redBean) {
ImageUtils.loadHeadCC(redBean.getAvatar(), baseViewHolder.getView(R.id.red_user_avatar));
baseViewHolder.setText(R.id.tv_user_name, redBean.getNickname());
baseViewHolder.setText(R.id.tv_red_num, redBean.getAmount());
baseViewHolder.setText(R.id.tv_time, formatTimestamp(Long.getLong(redBean.getCreatetime())));
}
private String formatTimestamp(long timestamp) {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
return sdf.format(new Date(timestamp));
}
}

View File

@@ -3,17 +3,18 @@ package com.example.moduleroom.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.example.moduleroom.R;
import com.xscm.moduleutil.bean.RedPacketInfo;
/**
* 红包的列表适配器
*/
public class RedBagAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
public class RedBagAdapter extends BaseQuickAdapter<RedPacketInfo, BaseViewHolder> {
public RedBagAdapter() {
super(R.layout.item_red_bag);
}
@Override
protected void convert(BaseViewHolder helper, String item) {
protected void convert(BaseViewHolder helper, RedPacketInfo item) {
}
}

View File

@@ -71,8 +71,8 @@ public class RoomSettingAdapter extends BaseMultiItemQuickAdapter<RoomSettingBea
case RoomSettingBean.QXRoomSettingTypeRoomBgImage:
return com.xscm.moduleutil.R.mipmap.ic_bg_image;
// 更多操作
case RoomSettingBean.QXRoomSettingTypeRoomLeave:
return com.xscm.moduleutil.R.mipmap.ic_leave;
// case RoomSettingBean.QXRoomSettingTypeRoomLeave:
// return com.xscm.moduleutil.R.mipmap.ic_leave;
case RoomSettingBean.QXRoomSettingTypeRoomShare:
return com.xscm.moduleutil.R.mipmap.ic_share;
case RoomSettingBean.QXRoomSettingTypeRoomMyDress:
@@ -87,8 +87,8 @@ public class RoomSettingAdapter extends BaseMultiItemQuickAdapter<RoomSettingBea
return com.xscm.moduleutil.R.mipmap.ic_report;
case RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen:
return b ? com.xscm.moduleutil.R.mipmap.ic_close_floating_screen : com.xscm.moduleutil.R.mipmap.ic_open_floating_screen;
// case RoomSettingBean.QXRoomSettingTypeRoomFloatingRed:
// return com.xscm.moduleutil.R.mipmap.red_tx;
case RoomSettingBean.QXRoomSettingTypeRoomFloatingRed:
return com.xscm.moduleutil.R.mipmap.red_tx;
default:
return 0;
}

View File

@@ -3,13 +3,14 @@ package com.example.moduleroom.contacts;
import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.RedpacketDetail;
public class RedEnvelopesContacts {
public interface View extends IView<Activity> {
void redPacketDetail(RedpacketDetail redpacketDetail);
}
public interface IRoomPre extends IPresenter {
void getRedpacketDetail(String redpacketId);
}
}

View File

@@ -4,6 +4,7 @@ import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.RedPacketInfo;
import com.xscm.moduleutil.bean.RoomCharmRankBean;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
@@ -49,6 +50,8 @@ public class RoomContacts {
void userOnlineStatus(List<UserOnlineStatusBean> list);
void findRoom();
void roomRedPackets(List<RedPacketInfo> list);
}
public interface IRoomPre extends IPresenter {
@@ -88,5 +91,7 @@ public class RoomContacts {
void auctionEnd(String auctionId,String roomId);
void auctionDelay(String auctionId);
void roomRedPackets(String roomId);
}
}

View File

@@ -2,6 +2,8 @@ package com.example.moduleroom.dialog;
import android.content.Context;
import android.graphics.Color;
import android.text.TextUtils;
import android.text.method.DigitsKeyListener;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@@ -11,9 +13,15 @@ import androidx.annotation.NonNull;
import com.blankj.utilcode.util.ScreenUtils;
import com.example.moduleroom.R;
import com.example.moduleroom.databinding.DialogRedBagSendBinding;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.widget.dialog.BaseDialog;
import io.reactivex.disposables.Disposable;
import org.jetbrains.annotations.NotNull;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -25,13 +33,15 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
private int type;//这是第一个页面发送红包的第一个页面默认为1第二个页面是2点击查看帮助是type=3
private int stype;//当前是哪个页面1默认第一个页面 2选择条件页面
private int redType;//红包类型 0:普通红包 1:口令红包
private int redType;//红包类型 1:普通红包 2:口令红包
private int redTime;//开奖倒计时 0立刻 1:1分钟2:2分钟5:5分钟 10:10分钟这里传递给服务的时候需要乘60
private int redGold;//红包类型 0金币红包 1钻石红包
private int redGold=1;//红包类型 0金币红包 1钻石红包
private int redCount;//条件 0无 1收藏房间 2仅麦上用户
private String roomId;
public RedBagSendDialog(@NonNull @NotNull Context context) {
public RedBagSendDialog(@NonNull @NotNull Context context, String roomId ) {
super(context, com.xscm.moduleutil.R.style.BaseDialogStyleH);
this.roomId = roomId;
}
@Override
@@ -49,14 +59,16 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
window.setLayout((int) (ScreenUtils.getScreenWidth() * 345.f / 345), WindowManager.LayoutParams.WRAP_CONTENT);
setView(1);
mBinding.edText.setKeyListener(DigitsKeyListener.getInstance("0123456789"));
mBinding.etNum.setKeyListener(DigitsKeyListener.getInstance("0123456789"));
mBinding.imHelp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (type!=3){
if (type != 3) {
setView(3);
setWebView("https://www.baidu.com");
}else {
} else {
setView(stype);
}
}
@@ -72,11 +84,48 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
mBinding.butSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mBinding.butSub.getText().equals("下一步")){
if (mBinding.butSub.getText().equals("下一步")) {
setView(2);
setFRed();
}else {
} else {
// 验证输入
String numStr = mBinding.etNum.getText().toString().trim();
String textStr = mBinding.edText.getText().toString().trim();
// 检查是否为空
if (TextUtils.isEmpty(numStr)) {
ToastUtils.show("请输入数量");
return;
}
if (TextUtils.isEmpty(textStr)) {
ToastUtils.show("请输入金额");
return;
}
if (redType==2){
if (TextUtils.isEmpty(mBinding.evKl.getText().toString().trim())){
ToastUtils.show("请输入口令");
return;
}
}
// 转换为数字并比较
try {
int num = Integer.parseInt(numStr);
int text = Integer.parseInt(textStr);
if (text <= num) {
ToastUtils.show("金额必须大于数量");
return;
}
// 验证通过,继续发送红包逻辑
sendRedPacket();
} catch (NumberFormatException e) {
ToastUtils.show("请输入有效的数字");
return;
}
}
}
});
@@ -84,11 +133,11 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId==R.id.bt_pt){
redType=0;
if (checkedId == R.id.bt_pt) {
redType = 1;
mBinding.lKl.setVisibility(GONE);
}else if (checkedId==R.id.bt_kl){
redType=1;
} else if (checkedId == R.id.bt_kl) {
redType = 2;
mBinding.lKl.setVisibility(VISIBLE);
}
}
@@ -97,16 +146,16 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
mBinding.rgDjs.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId==R.id.rb_lk){
redTime=0;
}else if (checkedId==R.id.rb_1){
redTime=1*60;
}else if (checkedId==R.id.rb_2){
redTime=2*60;
}else if (checkedId==R.id.rb_5){
redTime=5*60;
}else if (checkedId==R.id.rb_10){
redTime=10*60;
if (checkedId == R.id.rb_lk) {
redTime = 0;
} else if (checkedId == R.id.rb_1) {
redTime = 1 * 60;
} else if (checkedId == R.id.rb_2) {
redTime = 2 * 60;
} else if (checkedId == R.id.rb_5) {
redTime = 5 * 60;
} else if (checkedId == R.id.rb_10) {
redTime = 10 * 60;
}
}
});
@@ -122,7 +171,7 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
// 钻石红包恢复默认样式
mBinding.rbDiamond.setTextColor(Color.parseColor("#FFC9C7"));
mBinding.rbDiamond.setBackgroundResource(com.xscm.moduleutil.R.drawable.selector_red_bag_type_button);
redGold=0;
redGold = 1;
} else if (checkedId == R.id.rb_diamond) {
// 选中钻石红包:文字白色,背景透明
mBinding.rbDiamond.setTextColor(Color.parseColor("#D01717"));
@@ -131,20 +180,20 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
// 金币红包恢复默认样式
mBinding.rbGold.setTextColor(Color.parseColor("#FFC9C7"));
mBinding.rbGold.setBackgroundResource(com.xscm.moduleutil.R.drawable.selector_red_bag_type_button);
redGold=1;
redGold =2;
}
}
});
// 设置点击监听器
mBinding.btNone.setOnClickListener(new View.OnClickListener() {
mBinding.btNone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 点击"无"时,取消其他所有选项的选中状态
mBinding.btFavoriteRoom.setSelected(false);
mBinding.btMicUser.setSelected(false);
// 切换"无"的选中状态
mBinding.btNone.setSelected(! mBinding.btNone.isSelected());
mBinding.btNone.setSelected(!mBinding.btNone.isSelected());
}
});
@@ -152,11 +201,11 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
@Override
public void onClick(View v) {
// 如果"无"被选中,则先取消"无"的选中状态
if ( mBinding.btNone.isSelected()) {
if (mBinding.btNone.isSelected()) {
mBinding.btNone.setSelected(false);
}
// 切换当前按钮的选中状态
mBinding.btFavoriteRoom.setSelected(! mBinding.btFavoriteRoom.isSelected());
mBinding.btFavoriteRoom.setSelected(!mBinding.btFavoriteRoom.isSelected());
}
});
@@ -164,16 +213,78 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
@Override
public void onClick(View v) {
// 如果"无"被选中,则先取消"无"的选中状态
if ( mBinding.btNone.isSelected()) {
if (mBinding.btNone.isSelected()) {
mBinding.btNone.setSelected(false);
}
// 切换当前按钮的选中状态
mBinding.btMicUser.setSelected(!mBinding.btMicUser.isSelected());
}
});
}
private void sendRedPacket() {
// 获取输入值
String numStr = mBinding.etNum.getText().toString().trim();
String textStr = mBinding.edText.getText().toString().trim();
String kl = "";
if (redType == 2) {
kl = mBinding.evKl.getText().toString().trim();
}
// 验证输入
if (TextUtils.isEmpty(numStr)) {
ToastUtils.show("请输入数量");
return;
}
if (TextUtils.isEmpty(textStr)) {
ToastUtils.show("请输入金额");
return;
}
if (redType == 2 && TextUtils.isEmpty(kl)) {
ToastUtils.show("请输入口令");
return;
}
try {
int num = Integer.parseInt(numStr);
int text = Integer.parseInt(textStr);
if (text <= num) {
ToastUtils.show("金额必须大于数量");
return;
}
// 发送红包
RetrofitClient.getInstance().redPacketCreate(
redType,
kl,
redGold,
textStr,
numStr,
getSelectedConditions(),
redTime + "",
roomId,
mBinding.edBz.getText().toString(),
new BaseObserver<String>() {
@Override
public void onSubscribe(@NotNull Disposable d) {}
@Override
public void onNext(@NotNull String redPacketBean) {
ToastUtils.show("发送成功");
dismiss();
}
}
);
} catch (NumberFormatException e) {
ToastUtils.show("请输入有效的数字");
}
}
private String getSelectedConditions() {
Button btNone = mBinding.llTj.findViewById(R.id.bt_none);
Button btFavoriteRoom = mBinding.llTj.findViewById(R.id.bt_favorite_room);
@@ -193,14 +304,25 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
}
}
private WalletBean walletBean;
@Override
public void initData() {
RetrofitClient.getInstance().wallet(new BaseObserver<WalletBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(WalletBean walletBeans) {
walletBean = walletBeans;
}
});
}
private void setView(int types) {
type=types;
type = types;
switch (types) {
case 1:
mBinding.clRedXz.setVisibility(VISIBLE);
@@ -216,7 +338,7 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
mBinding.butSub.setVisibility(VISIBLE);
mBinding.butSub.setText("下一步");
mBinding.imHelp.setImageResource(com.xscm.moduleutil.R.drawable.room_redbag_help);
stype=1;
stype = 1;
break;
case 2:
mBinding.clRedXz.setVisibility(GONE);
@@ -232,7 +354,7 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
mBinding.butSub.setVisibility(VISIBLE);
mBinding.butSub.setText("发红包");
mBinding.imHelp.setImageResource(com.xscm.moduleutil.R.drawable.room_redbag_help);
stype=2;
stype = 2;
break;
case 3:
@@ -260,12 +382,12 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
mBinding.wvWeb.loadUrl(url);
}
private void setFRed(){
if (redGold==0){
mBinding.tvJeTitle.setText("-"+"金币可用");
private void setFRed() {
if (redGold == 1) {
mBinding.tvJeTitle.setText(walletBean.getCoin() != null ? walletBean.getCoin() : "0" + "金币可用");
mBinding.tvJ.setText("金币");
}else if (redGold==1){
mBinding.tvJeTitle.setText("-"+"钻石可用");
} else if (redGold == 2) {
mBinding.tvJeTitle.setText(walletBean.getEarnings() != null ? walletBean.getEarnings() : "0" + "钻石可用");
mBinding.tvJ.setText("钻石");
}
}

View File

@@ -10,10 +10,14 @@ import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.util.ScreenUtils;
import com.example.moduleroom.R;
import com.example.moduleroom.adapter.RedBagAdapter;
import com.example.moduleroom.databinding.DialogRedListBinding;
import com.example.moduleroom.fragment.RedEnvelopesFragment;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.QXRedPacketManager;
import com.xscm.moduleutil.widget.dialog.BaseDialog;
import java.util.ArrayList;
@@ -25,6 +29,7 @@ import java.util.List;
public class RedListDialog extends BaseDialog<DialogRedListBinding> {
RedBagAdapter redBagAdapter;
private QXRedPacketManager qxRedPacketManager;
public RedListDialog(@NonNull Context context) {
super(context, com.xscm.moduleutil.R.style.BaseDialogStyleH);
@@ -40,6 +45,7 @@ public class RedListDialog extends BaseDialog<DialogRedListBinding> {
setCancelable(false);
setCanceledOnTouchOutside(false);
Window window = getWindow();
qxRedPacketManager=QXRedPacketManager.getInstance();
window.setLayout((int) (ScreenUtils.getScreenWidth() * 375.f / 375), WindowManager.LayoutParams.WRAP_CONTENT);
mBinding.ivClose.setOnClickListener(v -> dismiss());
@@ -113,19 +119,27 @@ public class RedListDialog extends BaseDialog<DialogRedListBinding> {
// }
// });
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("4");
list.add("5");
list.add("4");
list.add("5");
list.add("4");
list.add("5");
redBagAdapter.setNewData(list);
redBagAdapter.setNewData(qxRedPacketManager.getAllRedPackets()) ;
redBagAdapter.setOnItemClickListener((adapter, view, position) -> {
RedEnvelopesFragment redEnvelopesFragment = new RedEnvelopesFragment(getContext());
redEnvelopesFragment.setRedPacket(qxRedPacketManager.getAllRedPackets().get(position));
redEnvelopesFragment.show();
});
// List<String> list = new ArrayList<>();
// list.add("1");
// list.add("2");
// list.add("3");
// list.add("4");
// list.add("5");
// list.add("4");
// list.add("5");
// list.add("4");
// list.add("5");
// list.add("4");
// list.add("5");
// redBagAdapter.setNewData(list);
}

View File

@@ -19,6 +19,7 @@ import com.example.moduleroom.contacts.RoomContacts;
import com.example.moduleroom.databinding.FragmentRoomOnlineDialogBinding;
import com.example.moduleroom.presenter.RoomPresenter;
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.bean.RedPacketInfo;
import com.xscm.moduleutil.bean.RoomCharmRankBean;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
@@ -463,4 +464,9 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
mBinding.srl.finishRefresh();
mBinding.srl.finishLoadMore();
}
@Override
public void roomRedPackets(List<RedPacketInfo> list) {
}
}

View File

@@ -162,8 +162,8 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
dataList.add(new RoomSettingBean("背景图片", "ic_bg_image", null, null, RoomSettingBean.QXRoomSettingTypeRoomBgImage, read, isSelected, false, false));
dataList.add(new RoomSettingBean("更多操作", null, null, null, -1, read, isSelected, false, false));
// dataList.add(new RoomSettingBean("发红包", "ic_red", null, null, RoomSettingBean.QXRoomSettingTypeRoomFloatingRed, read, isSelected, false, false));
dataList.add(new RoomSettingBean("离开房间", "ic_leave", null, null, RoomSettingBean.QXRoomSettingTypeRoomLeave, read, isSelected, false, false));
dataList.add(new RoomSettingBean("发红包", "ic_red", null, null, RoomSettingBean.QXRoomSettingTypeRoomFloatingRed, read, isSelected, false, false));
// dataList.add(new RoomSettingBean("离开房间", "ic_leave", null, null, RoomSettingBean.QXRoomSettingTypeRoomLeave, read, isSelected, false, false));
// dataList.add(new RoomSettingBean("分享房间", "ic_share", null, null, RoomSettingBean.QXRoomSettingTypeRoomShare, read, isSelected, false, false));
dataList.add(new RoomSettingBean("调音台", "ic_my_dress", null, null, RoomSettingBean.QXRoomSettingTypeRoomMyDress, read, isSelected, false, false));
dataList.add(new RoomSettingBean("房间设置", "ic_room_setting", null, null, RoomSettingBean.QXRoomSettingTypeRoomSetting, read, isSelected, false, false));
@@ -263,9 +263,11 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
EventBus.getDefault().post(new MusicEvent());
dismiss();
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomLeave) {
EventBus.getDefault().post(new RoomOutEvent());
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeSing) {
}
// else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomLeave) {
// EventBus.getDefault().post(new RoomOutEvent());
// }
else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeSing) {
// MvpPre.changeRoomType(roomId, "1");
queren("1");
} else if (bean.getType() == RoomSettingBean.QXRoomSettingTypeRoomTypeAuction) {
@@ -320,15 +322,15 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
}
upAdapter();
}
// else if (bean.getType()==RoomSettingBean.QXRoomSettingTypeRoomFloatingRed){
//
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).redDialogView();
// }
// dismiss();
//
//
// }
else if (bean.getType()==RoomSettingBean.QXRoomSettingTypeRoomFloatingRed){
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).redDialogView();
}
dismiss();
}
}
});
@@ -395,7 +397,7 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
return true;
}
if (type >= RoomSettingBean.QXRoomSettingTypeRoomLeave &&
type <= RoomSettingBean.QXRoomSettingTypeRoomReport
type <= RoomSettingBean.QXRoomSettingTypeRoomReport || type == RoomSettingBean.QXRoomSettingTypeRoomFloatingRed
) {
return true;
} else {
@@ -428,6 +430,7 @@ public class RoomSettingFragment extends BaseMvpDialogFragment<RoomSettingPresen
type == RoomSettingBean.QXRoomSettingTypeRoomMyDress ||
type == RoomSettingBean.QXRoomSettingTypeRoomCloseEffects ||
type == RoomSettingBean.QXRoomSettingTypeRoomReport ||
type == RoomSettingBean.QXRoomSettingTypeRoomFloatingRed||
type == RoomSettingBean.QXRoomSettingTypeRoomFloatingScreen;
}

View File

@@ -889,6 +889,7 @@ public class PublicScreenEaseChatFragment extends BaseMvpFragment<PublicScreenEa
case 1056:
case 1057:
case 1059:
case 1060:
case 1025:
case 1058:
// EventBus.getDefault().post(message);

View File

@@ -8,11 +8,19 @@ import android.view.WindowManager;
import androidx.annotation.NonNull;
import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.util.ScreenUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.example.moduleroom.R;
import com.example.moduleroom.databinding.FragmentRedEnvelopesBinding;
import com.xscm.moduleutil.bean.RedPackGrab;
import com.xscm.moduleutil.bean.RedPacketInfo;
import com.xscm.moduleutil.event.RedEnvelopeStatus;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.view.QXRedBagSendView;
import com.xscm.moduleutil.widget.dialog.BaseDialog;
import io.reactivex.disposables.Disposable;
import org.jetbrains.annotations.NotNull;
/**
@@ -23,6 +31,8 @@ import org.jetbrains.annotations.NotNull;
* @Version 1.0
*/
public class RedEnvelopesFragment extends BaseDialog<FragmentRedEnvelopesBinding> {
private RedEnvelopeStatus mCurrentStatus;
private RedPacketInfo mRedPacketInfo;
public RedEnvelopesFragment(@NonNull @NotNull Context context) {
super(context, com.xscm.moduleutil.R.style.BaseDialogStyleH);
}
@@ -54,13 +64,50 @@ public class RedEnvelopesFragment extends BaseDialog<FragmentRedEnvelopesBinding
mBinding.imRedK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ARouter.getInstance().build(ARouteConstants.ROOM_RED_RESULT).navigation();
RetrofitClient.getInstance().grab(mRedPacketInfo.getRedpacket_id(), new BaseObserver<RedPackGrab>() {
@Override
public void onSubscribe(@NotNull Disposable d) {
}
@Override
public void onNext(@NotNull RedPackGrab redPackGrab) {
if (redPackGrab!=null){
if (redPackGrab.getCode()==1){
ARouter.getInstance().build(ARouteConstants.ROOM_RED_RESULT).withString("redpacketId", mRedPacketInfo.getRedpacket_id()).navigation();
}else if (redPackGrab.getCode()==2){
ToastUtils.showShort("您已经抢过红包了");
ARouter.getInstance().build(ARouteConstants.ROOM_RED_RESULT).withString("redpacketId", mRedPacketInfo.getRedpacket_id()).navigation();
}else {
snatched();
}
}
}
});
// QXRedBagSendView redBagView = new QXRedBagSendView(getContext());
// redBagView.showInView((ViewGroup) getWindow().getDecorView());
dismiss();
}
});
mBinding.tvCk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ARouter.getInstance().build(ARouteConstants.ROOM_RED_RESULT).withString("redpacketId", mRedPacketInfo.getRedpacket_id()).navigation();
}
});
}
private void snatched(){
mBinding.tvRedCount.setText("手慢,没有抢到");
mBinding.imRedK.setVisibility(View.GONE);
mBinding.textPl.setVisibility(View.GONE);
mBinding.tvTitle.setVisibility(View.GONE);
mBinding.tvPinl.setVisibility(View.GONE);
mBinding.tvKl.setVisibility(View.GONE);
mBinding.tvCk.setVisibility(View.VISIBLE);
}
@@ -69,4 +116,33 @@ public class RedEnvelopesFragment extends BaseDialog<FragmentRedEnvelopesBinding
public int getLayoutId() {
return R.layout.fragment_red_envelopes;
}
public void setRedPacket(RedPacketInfo redPacketInfo) {
this.mRedPacketInfo = redPacketInfo;
ImageUtils.loadHeadCC(redPacketInfo.getAvatar(), mBinding.userAvatar);
mBinding.tvUserName.setText(redPacketInfo.getNickname());
mBinding.tvRedCount.setText(redPacketInfo.getRemark());
// 根据红包信息确定当前状态
// if (redPacketInfo.isHasCountdown() && redPacketInfo.isHasCondition()) {
// mCurrentStatus = RedEnvelopeStatus.COUNTDOWN_AND_CONDITION;
// handleCountdownAndCondition();
// } else if (redPacketInfo.isHasCountdown()) {
// mCurrentStatus = RedEnvelopeStatus.COUNTDOWN_TO_OPEN;
// handleCountdown();
// } else if (redPacketInfo.isHasCondition()) {
// mCurrentStatus = RedEnvelopeStatus.CONDITION_TO_OPEN;
// handleCondition();
// } else {
mCurrentStatus = RedEnvelopeStatus.READY_TO_OPEN;//红包可以直接抢的
handleReadyToOpen();
// }
}
private void handleReadyToOpen() {
mBinding.textPl.setVisibility(View.GONE);
mBinding.tvTitle.setVisibility(View.GONE);
mBinding.tvPinl.setVisibility(View.GONE);
mBinding.tvKl.setVisibility(View.VISIBLE);
mBinding.imRedK.setVisibility(View.VISIBLE);
}
}

View File

@@ -28,6 +28,7 @@ import com.example.moduleroom.presenter.RoomPresenter;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.RedPacketInfo;
import com.xscm.moduleutil.bean.RoomCharmRankBean;
import com.xscm.moduleutil.bean.RoomMessageEvent;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
@@ -1203,6 +1204,11 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
}
@Override
public void roomRedPackets(List<RedPacketInfo> list) {
}
public void getVoiceStatus(RoomAuction.AuctionUserBean auctionUserBean, List<RoomAuction.AuctionListBean> auctionListBeans, String user_id) {
boolean haveMe = false;

View File

@@ -28,11 +28,7 @@ import com.example.moduleroom.dialog.RoomOnlineDialogFragment;
import com.example.moduleroom.dialog.RoomUserInfoFragment;
import com.example.moduleroom.presenter.RoomPresenter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.bean.MusicSongBean;
import com.xscm.moduleutil.bean.RoomCharmRankBean;
import com.xscm.moduleutil.bean.RoomMessageEvent;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.*;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.bean.room.RoomOnline;
import com.xscm.moduleutil.bean.room.RoomPitBean;
@@ -1434,4 +1430,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
public void findRoom() {
}
@Override
public void roomRedPackets(List<RedPacketInfo> list) {
}
}

View File

@@ -2,11 +2,37 @@ package com.example.moduleroom.presenter;
import android.content.Context;
import com.example.moduleroom.contacts.RedEnvelopesContacts;
import com.xscm.moduleutil.bean.RedpacketDetail;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import io.reactivex.disposables.Disposable;
import org.jetbrains.annotations.NotNull;
import java.lang.ref.WeakReference;
public class RedEnvelopesPresenter extends BasePresenter<RedEnvelopesContacts.View> implements RedEnvelopesContacts.IRoomPre{
RedEnvelopesContacts.View mView;
public RedEnvelopesPresenter(RedEnvelopesContacts.View view, Context context) {
super(view, context);
mView = view;
}
@Override
public void getRedpacketDetail(String redpacketId) {
api.redPacketDetail(redpacketId, new BaseObserver<RedpacketDetail>() {
@Override
public void onSubscribe(@NotNull Disposable d) {
addDisposable(d);
}
@Override
public void onNext(@NotNull RedpacketDetail redpacketDetail) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().redPacketDetail(redpacketDetail);
}
});
}
}

View File

@@ -5,6 +5,7 @@ import android.content.Context;
import com.blankj.utilcode.util.LogUtils;
import com.example.moduleroom.contacts.RoomContacts;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.RedPacketInfo;
import com.xscm.moduleutil.bean.RoomCharmRankBean;
import com.xscm.moduleutil.bean.UserOnlineStatusBean;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
@@ -21,6 +22,7 @@ import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
import org.jetbrains.annotations.NotNull;
public class RoomPresenter extends BasePresenter<RoomContacts.View> implements RoomContacts.IRoomPre {
RoomContacts.View mView;
@@ -438,4 +440,23 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
}
});
}
@Override
public void roomRedPackets(String roomId) {
api.roomRedPackets(roomId,new BaseObserver<List<RedPacketInfo>>(){
@Override
public void onSubscribe(@NotNull Disposable d) {
addDisposable(d);
}
@Override
public void onNext(@NotNull List<RedPacketInfo> redPacketInfos) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().roomRedPackets(redPacketInfos);
}
});
}
}

View File

@@ -394,6 +394,7 @@
/>
<EditText
android:id="@+id/ed_text"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_26"
android:background="@null"
@@ -405,6 +406,7 @@
android:layout_toStartOf="@+id/tv_j"
android:textColorHint="#999"
android:textColor="#333"
android:inputType="number"
android:hint="请输入金额"/>
<TextView
@@ -448,6 +450,7 @@
/>
<EditText
android:id="@+id/et_num"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_26"
android:background="@null"
@@ -459,6 +462,7 @@
android:layout_toStartOf="@+id/tv_g"
android:textColorHint="#999"
android:textColor="#333"
android:inputType="number"
android:hint="请输入数量"/>
<TextView
@@ -576,6 +580,7 @@
app:layout_constraintStart_toStartOf="parent"/>
<EditText
android:id="@+id/ed_bz"
android:layout_width="0dp"
android:layout_height="@dimen/dp_26"
android:layout_weight="2"

View File

@@ -91,6 +91,7 @@
/>
<TextView
android:id="@+id/tv_jb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#fff"

View File

@@ -139,6 +139,23 @@
android:gravity="center"
/>
<TextView
android:id="@+id/tv_ck"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_26"
android:textColor="#fff"
android:textSize="@dimen/sp_16"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_63"
android:text="查看大家的手气>"
android:gravity="center"
tools:ignore="HardcodedText"
tools:text="查看大家手气"
android:visibility="gone"
/>
<TextView
android:id="@+id/text_share"
android:layout_width="wrap_content"