diff --git a/app/build.gradle b/app/build.gradle index 2ee8c39..bd569f5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -97,7 +97,7 @@ android { } buildTypes { release { - minifyEnabled false + minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/RoomMessageEvent.java b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/RoomMessageEvent.java index 201c2bf..69423ba 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/RoomMessageEvent.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/RoomMessageEvent.java @@ -96,6 +96,7 @@ public class RoomMessageEvent { private String gift_num; + private RedPacketInfo redpacketInfo; } @Data diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/EMMessageInfo.java b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/EMMessageInfo.java index 8e4b252..6b20e42 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/EMMessageInfo.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/bean/room/EMMessageInfo.java @@ -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; diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java b/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java index a2bd05b..a0d5e46 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/http/ApiServer.java @@ -474,6 +474,22 @@ public interface ApiServer { @GET(Constants.GET_WALLET) Call> wallet(); + @FormUrlEncoded + @POST(Constants.REDPACKET_CREATE) + Call 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>> roomRedPackets(@Query("room_id") String roomId); + + @GET(Constants.GET_REDPACKET_DETAIL) + Call> redPacketDetail(@Query("redpacket_id") String redpacket_id); + + @FormUrlEncoded + @POST(Constants.POST_GRAB) + Call> grab(@Field("redpacket_id") String redpacket_id); + @FormUrlEncoded @POST(Constants.POST_APPLY_Pay) Call> appPay(@Field("user_id") String user_id, @Field("money") String money, @Field("coin") String coin, @Field("type") String type); diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java b/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java index c4e97f8..0b5973e 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java @@ -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 泛型类型 + * @param 泛型类型 */ private void handleNetworkUnavailable(BaseObserver observer) { ToastUtils.showShort("网络不可用,请检查网络设置"); observer.onError(new Throwable("网络不可用,请检查网络设置")); } + public T createApiClient(Class 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() { + public void userRoomBack(String room_id, String type) {//用户退出前后台保留数据操作 type:1:切后台 2:切前台 + sApiServer.userRoomBack(room_id, type).enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { @@ -285,22 +289,23 @@ public class RetrofitClient { }); } - public void getRoomHourRanking(String page, String page_limit, BaseObserver observer){ + public void getRoomHourRanking(String page, String page_limit, BaseObserver observer) { sApiServer.getRoomHourRanking(page, page_limit).enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { if (response.code() == 200) { BaseModel 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> call, Throwable t) { t.printStackTrace(); @@ -448,11 +453,11 @@ public class RetrofitClient { sApiServer.getMessagetitle(type, page, page_limit).enqueue(new Callback>>() { @Override public void onResponse(Call>> call, Response>> response) { - if (response.code() == 200){ + if (response.code() == 200) { BaseModel> 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> observer) { - sApiServer.withdrawalList(page,page_limit,search_stime,search_etime).enqueue(new Callback>>() { + sApiServer.withdrawalList(page, page_limit, search_stime, search_etime).enqueue(new Callback>>() { @Override public void onResponse(Call>> call, Response>> response) { - if (response.code() == 200){ - BaseModel> baseModel=response.body(); - if (baseModel.getCode()==1){ - Log.d("withdrawalList---", "onResponse: "+response.body().toString()); + if (response.code() == 200) { + BaseModel> 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 observer){ + public void bindDetai(String userId, String type, BaseObserver observer) { sApiServer.bindDetai(userId, type).enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { - if (response.code() == 200){ + if (response.code() == 200) { BaseModel 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>() { @Override public void onResponse(Call> call, Response> response) { - if (response.code() == 200){ + if (response.code() == 200) { } } @@ -1120,7 +1125,7 @@ public class RetrofitClient { BaseModel> 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> 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> 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> 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 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>> call, Response>> response) { if (response.code() == 200) { BaseModel> 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>> call, Response>> response) { if (response.code() == 200) { BaseModel> 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> 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 observer) { if (!isNetworkAvailable()) { handleNetworkUnavailable(observer); - CommonAppContext.getInstance().isRoomJoininj=false; + CommonAppContext.getInstance().isRoomJoininj = false; return; } sApiServer.roomGetIn(roomId, password).enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { - CommonAppContext.getInstance().isRoomJoininj=false; + CommonAppContext.getInstance().isRoomJoininj = false; if (response.code() == 200) { BaseModel roomInfoRespBaseModel = response.body(); if (roomInfoRespBaseModel.getCode() == 1) { @@ -1837,7 +1842,7 @@ public class RetrofitClient { @Override public void onFailure(Call> call, Throwable t) { MessageListenerSingleton.getInstance().quitGroup(roomId); - CommonAppContext.getInstance().isRoomJoininj=false; + CommonAppContext.getInstance().isRoomJoininj = false; } }); } @@ -1945,7 +1950,7 @@ public class RetrofitClient { }); } - public void activitiesPermission(BaseObserver observer){ + public void activitiesPermission(BaseObserver observer) { sApiServer.activitiesPermission().enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { @@ -1953,9 +1958,9 @@ public class RetrofitClient { BaseModel 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()); @@ -1965,6 +1970,7 @@ public class RetrofitClient { } } } + @Override public void onFailure(Call> call, Throwable t) { t.printStackTrace(); @@ -1991,6 +1997,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 observer) { + sApiServer.redPacketCreate(type, password, coin_type, total_amount, total_count, conditions, countdown, room_id, remark).enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.code() == 200) { + try { + String json = response.body().string(); + BaseModel 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 call, Throwable t) { + t.printStackTrace(); + } + }); + + +// .enqueue(new Callback>() { +// +// @Override +// public void onResponse(Call> call, Response> response) { +// if (response.code() == 200){ +// BaseModel 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> call, Throwable t) { +// t.printStackTrace(); +// } +// }); + } + public void appPay(String user_id, String money, String coin, String type, BaseObserver observer) { sApiServer.appPay(user_id, money, coin, type).enqueue(new Callback>() { @Override @@ -1999,7 +2066,7 @@ public class RetrofitClient { BaseModel appPayBaseModel = response.body(); if (appPayBaseModel.getCode() == 1) { observer.onNext(appPayBaseModel.getData()); - }else { + } else { ToastUtils.showShort(appPayBaseModel.getMsg()); } } @@ -2163,15 +2230,15 @@ public class RetrofitClient { }); } - public void getSearchAll(String keyWord, BaseObserver observer) { + public void getSearchAll(String keyWord, BaseObserver observer) { sApiServer.getSearchAll(keyWord).enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { - if (response.code() == 200){ + if (response.code() == 200) { BaseModel searchAllBaseModel = response.body(); - if (searchAllBaseModel.getCode()==1){ - if (searchAllBaseModel.getData()!=null){ + if (searchAllBaseModel.getCode() == 1) { + if (searchAllBaseModel.getData() != null) { observer.onNext(searchAllBaseModel.getData()); } } @@ -2267,19 +2334,20 @@ public class RetrofitClient { public void roomAuctionJoin(String auctionId, String userId, String giftId, String num, String type, BaseObserver observer) { sApiServer.roomAuctionJoin(auctionId, userId, giftId, num, type).enqueue(new ApiResponseCallback(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>() { // // @Override @@ -2316,6 +2384,90 @@ public class RetrofitClient { }); } + public void roomRedPackets(String roomId, BaseObserver> observer) { + sApiServer.roomRedPackets(roomId).enqueue(new Callback>>() { + @Override + public void onResponse(Call>> call, Response>> response) { + if (response.code() == 200) { + BaseModel> 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>> call, Throwable t) { + t.printStackTrace(); + } + }); + } + + public void redPacketDetail(String redPacketId, BaseObserver observer) { + sApiServer.redPacketDetail(redPacketId).enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.code() == 200) { + BaseModel 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> call, Throwable t) { + t.printStackTrace(); + } + }); + } + + public void grab(String redPacketId, BaseObserver observer) { + sApiServer.grab(redPacketId).enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.code() == 200) { + BaseModel 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> call, Throwable t) { + t.printStackTrace(); + } + }); + } + public void auctionEnd(String auctionId, String roomId, BaseObserver observer) { sApiServer.auctionEnd(auctionId, roomId).enqueue(new Callback>() { @Override @@ -2538,16 +2690,16 @@ public class RetrofitClient { }); } - public void getDayDropGift(BaseObserver observer){ + public void getDayDropGift(BaseObserver observer) { sApiServer.getDayDropGift().enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { - if (response.code()==200){ + if (response.code() == 200) { BaseModel 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()); } } } @@ -2697,7 +2849,7 @@ public class RetrofitClient { }); } - public void keepXintiao(){ + public void keepXintiao() { sApiServer.keepXintiao().enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { @@ -2944,7 +3096,7 @@ public class RetrofitClient { sApiServer.relationCard(user_id).enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { - if (response.code() == 200){ + if (response.code() == 200) { BaseModel baseModel = response.body(); if (baseModel.getCode() == 1) { observer.onNext(baseModel.getData()); @@ -3580,7 +3732,7 @@ public class RetrofitClient { } /// 盲盒转盘抽奖 - public void drawGiftList(String giftBagId, String gift_user_ids, String roomId, String num, String heart_id,String auction_id, BaseObserver observer) { + public void drawGiftList(String giftBagId, String gift_user_ids, String roomId, String num, String heart_id, String auction_id, BaseObserver observer) { sApiServer.drawGiftList(giftBagId, gift_user_ids, roomId, num, heart_id, auction_id).enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { @@ -3623,8 +3775,8 @@ public class RetrofitClient { } public void xlhAllRecord(String roomId, String page, String - pageSize,int type, BaseObserver> observer) { - if (type==1) { + pageSize, int type, BaseObserver> observer) { + if (type == 1) { sApiServer.xlhAllRecord(roomId, page, pageSize).enqueue(new Callback>>() { @@ -3643,8 +3795,8 @@ public class RetrofitClient { t.printStackTrace(); } }); - }else { - sApiServer.xlXH_RANking(roomId,page,pageSize).enqueue(new Callback>>() { + } else { + sApiServer.xlXH_RANking(roomId, page, pageSize).enqueue(new Callback>>() { @Override public void onResponse(Call>> call, Response>> response) { if (response.code() == 200) { diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java b/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java index a1d591a..6fac379 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentPrefs.java @@ -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; // 出错时默认返回生产环境 } } } \ No newline at end of file diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java index 2be7c20..22d521b 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/widget/Constants.java @@ -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";//申请上麦 diff --git a/moduleroom/src/main/java/com/example/moduleroom/activity/RedResultActivity.java b/moduleroom/src/main/java/com/example/moduleroom/activity/RedResultActivity.java index dd305b9..bd5eb19 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/activity/RedResultActivity.java +++ b/moduleroom/src/main/java/com/example/moduleroom/activity/RedResultActivity.java @@ -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 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 { +import java.text.SimpleDateFormat; +import java.util.Date; + +public class RedAdapter extends BaseQuickAdapter { 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)); } } diff --git a/moduleroom/src/main/java/com/example/moduleroom/adapter/RedBagAdapter.java b/moduleroom/src/main/java/com/example/moduleroom/adapter/RedBagAdapter.java index 2302b86..8bda74f 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/adapter/RedBagAdapter.java +++ b/moduleroom/src/main/java/com/example/moduleroom/adapter/RedBagAdapter.java @@ -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 { +public class RedBagAdapter extends BaseQuickAdapter { public RedBagAdapter() { super(R.layout.item_red_bag); } @Override - protected void convert(BaseViewHolder helper, String item) { + protected void convert(BaseViewHolder helper, RedPacketInfo item) { } } diff --git a/moduleroom/src/main/java/com/example/moduleroom/adapter/RoomSettingAdapter.java b/moduleroom/src/main/java/com/example/moduleroom/adapter/RoomSettingAdapter.java index 550304f..16b476d 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/adapter/RoomSettingAdapter.java +++ b/moduleroom/src/main/java/com/example/moduleroom/adapter/RoomSettingAdapter.java @@ -71,8 +71,8 @@ public class RoomSettingAdapter extends BaseMultiItemQuickAdapter { - + void redPacketDetail(RedpacketDetail redpacketDetail); } public interface IRoomPre extends IPresenter { - + void getRedpacketDetail(String redpacketId); } } diff --git a/moduleroom/src/main/java/com/example/moduleroom/dialog/RedBagSendDialog.java b/moduleroom/src/main/java/com/example/moduleroom/dialog/RedBagSendDialog.java index 184acf9..17c0f9a 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/dialog/RedBagSendDialog.java +++ b/moduleroom/src/main/java/com/example/moduleroom/dialog/RedBagSendDialog.java @@ -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 { 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 { 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 { 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 { @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 { 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 { // 钻石红包恢复默认样式 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 { // 金币红包恢复默认样式 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 { @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 { @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() { + @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 { } } + private WalletBean walletBean; @Override public void initData() { + RetrofitClient.getInstance().wallet(new BaseObserver() { + @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 { 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 { 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 { 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("钻石"); } } diff --git a/moduleroom/src/main/java/com/example/moduleroom/dialog/RedListDialog.java b/moduleroom/src/main/java/com/example/moduleroom/dialog/RedListDialog.java index 9c5a58e..40da164 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/dialog/RedListDialog.java +++ b/moduleroom/src/main/java/com/example/moduleroom/dialog/RedListDialog.java @@ -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 { 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 { 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 { // } // }); - List 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 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); } diff --git a/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomSettingFragment.java b/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomSettingFragment.java index af11535..465ef88 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomSettingFragment.java +++ b/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomSettingFragment.java @@ -162,8 +162,8 @@ public class RoomSettingFragment extends BaseMvpDialogFragment= RoomSettingBean.QXRoomSettingTypeRoomLeave && - type <= RoomSettingBean.QXRoomSettingTypeRoomReport + type <= RoomSettingBean.QXRoomSettingTypeRoomReport || type == RoomSettingBean.QXRoomSettingTypeRoomFloatingRed ) { return true; } else { @@ -428,6 +430,7 @@ public class RoomSettingFragment extends BaseMvpDialogFragment { + 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() { + + @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 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() { + + @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); + } + }); + } } diff --git a/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomPresenter.java b/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomPresenter.java index 597dca1..d914886 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomPresenter.java +++ b/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomPresenter.java @@ -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 implements RoomContacts.IRoomPre { RoomContacts.View mView; @@ -443,4 +445,23 @@ public class RoomPresenter extends BasePresenter implements R } }); } + + @Override + public void roomRedPackets(String roomId) { + api.roomRedPackets(roomId,new BaseObserver>(){ + + @Override + public void onSubscribe(@NotNull Disposable d) { + addDisposable(d); + } + + @Override + public void onNext(@NotNull List redPacketInfos) { + if (MvpRef==null){ + MvpRef=new WeakReference<>(mView); + } + MvpRef.get().roomRedPackets(redPacketInfos); + } + }); + } } diff --git a/moduleroom/src/main/res/layout/dialog_red_bag_send.xml b/moduleroom/src/main/res/layout/dialog_red_bag_send.xml index 29f81e8..76a7f5c 100644 --- a/moduleroom/src/main/res/layout/dialog_red_bag_send.xml +++ b/moduleroom/src/main/res/layout/dialog_red_bag_send.xml @@ -394,6 +394,7 @@ /> + +