From 955c9ef277b44ed31e40b04824b5b4562299fa1f Mon Sep 17 00:00:00 2001 From: wushaocheng <15876365887@163.com> Date: Tue, 28 Mar 2023 14:49:12 +0800 Subject: [PATCH] =?UTF-8?q?[Modify]=E5=AF=BB=E7=88=B1=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/avroom/widget/MessageView.java | 2 +- .../erban/avroom/widget/RoomEffectBoxView.kt | 2 +- app/src/main/res/values/strings.xml | 1 + .../activity/TreasureBoxActivity.java | 83 ++++++++----------- .../adapter/BoxRankingListAdapter.java | 6 +- .../fragment/BoxRankingFragment.java | 15 ++-- .../treasure_box/module/BoxRankingModel.java | 8 +- .../treasure_box/module/IBoxRankingView.java | 8 +- .../presenter/BoxRankingPresenter.java | 7 +- .../res/layout/activity_treasure_box.xml | 26 ------ .../treasure_box/bean/TreasureRankingInfo.kt | 12 +++ .../treasure_box/bean/PrizeNewInfo.java | 9 ++ .../yizhuan/treasure_box/model/BoxModel.java | 10 +-- .../yizhuan/treasure_box/model/IBoxModel.java | 4 +- 14 files changed, 94 insertions(+), 99 deletions(-) create mode 100644 core/src/main/java/com/yizhuan/xchat_android_core/room/treasure_box/bean/TreasureRankingInfo.kt diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java b/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java index 69b38ad88..3328cacec 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java @@ -1792,7 +1792,7 @@ public class MessageView extends FrameLayout { SpannableBuilder text = new SpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_093), new ForegroundColorSpan(greyColor)) .append(attachment.getNick() + " ", new ForegroundColorSpan(roomTipColor)) - .append(ResUtil.getString(R.string.avroom_widget_messageview_094) + attachment.getBoxTypeStr() + ResUtil.getString(R.string.avroom_widget_messageview_095), new ForegroundColorSpan(greyColor)) + .append(ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString(R.string.avroom_widget_messageview_095), new ForegroundColorSpan(greyColor)) .append(attachment.getPrizeName(), new ForegroundColorSpan(Color.WHITE)); if (attachment.getPrizeNum() > 1) { text.append(" x" + attachment.getPrizeNum() + " ", new ForegroundColorSpan(roomTipColor)); diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt index 4fc7abced..bef39fccb 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt @@ -437,7 +437,7 @@ class RoomEffectBoxView @JvmOverloads constructor( ForegroundColorSpan(resources.getColor(R.color.notice_nick)) ) .append( - ResUtil.getString(R.string.avroom_widget_roomeffectview_09) + attachment.boxTypeStr + ResUtil.getString( + ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString( R.string.avroom_widget_roomeffectview_010 ), ForegroundColorSpan(Color.WHITE) ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b880b4131..4c42cdc59 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5076,5 +5076,6 @@ 溫馨提示 鉆石餘額不足,請先充值吧~ 去充值 + 通過尋愛之旅 \ No newline at end of file diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java index 99f00cb7f..d99568c3b 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java @@ -27,10 +27,11 @@ import com.yizhuan.erban.treasure_box.widget.dialog.BoxMoreDialog; import com.yizhuan.erban.treasure_box.widget.dialog.TreasureBoxDialog; import com.yizhuan.erban.ui.utils.ImageLoadUtils; import com.yizhuan.erban.utils.UserUtils; -import com.yizhuan.treasure_box.bean.PrizeInfo; +import com.yizhuan.treasure_box.bean.PrizeNewInfo; import com.yizhuan.treasure_box.model.BoxModel; import com.yizhuan.treasure_box.model.IBoxModel; import com.yizhuan.xchat_android_core.DemoCache; +import com.yizhuan.xchat_android_core.exception.FailReasonException; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; import com.yizhuan.xchat_android_core.manager.RoomEvent; import com.yizhuan.xchat_android_core.pay.PayModel; @@ -51,10 +52,8 @@ import io.reactivex.android.schedulers.AndroidSchedulers; @ActLayoutRes(R.layout.activity_treasure_box) public class TreasureBoxActivity extends BaseBindingActivity implements View.OnClickListener { private final Runnable removeRunnable = () -> mBinding.llPrizeHint.removeAllViews(); - private int price = 20; - private volatile int keyNum; - private ArrayList cacheList = new ArrayList<>(); - private ArrayList hintPrizeCacheList = new ArrayList<>(); + private ArrayList cacheList = new ArrayList<>(); + private ArrayList hintPrizeCacheList = new ArrayList<>(); private ObjectAnimator translationXAnimator; private ObjectAnimator translationYAnimator; private int boxType = IBoxModel.BOX_TYPE_NORMAL; @@ -120,7 +119,6 @@ public class TreasureBoxActivity extends BaseBindingActivity { - price = keyInfo.getKeyPrice(); sendMessageSwitchLevel = keyInfo.getSendMessageSwitchLevel(); }); } @@ -155,50 +153,41 @@ public class TreasureBoxActivity extends BaseBindingActivity { -// mBinding.ivOpen.setEnabled(true); -// SingleToastUtil.showToast(throwable.getMessage()); -// }) -// .toObservable() -// .delay(startTime - System.currentTimeMillis() + 300, TimeUnit.MILLISECONDS) -// .observeOn(AndroidSchedulers.mainThread()) -// .flatMap(openBoxResult -> { -// mBinding.ivOpen.setEnabled(true); -// cacheList.addAll(openBoxResult.getPrizeItemList()); -// return Observable.fromIterable(openBoxResult.getPrizeItemList()); -// }) -// .filter(prizeInfo -> prizeInfo.getPrizeLevel() > 2) -// .subscribe(prizeInfo -> hintPrizeCacheList.add(prizeInfo)); + BoxModel.get().openBoxDraw(count, sendMessage) + .compose(bindToLifecycle()) + .doOnError(throwable -> { + mBinding.ivOpen.setEnabled(true); + if (throwable instanceof FailReasonException) { + FailReasonException failReasonException = (FailReasonException) throwable; + if(failReasonException.getCode() == BoxModel.ERROR_CODE_DIAMOND){ + TreasureBoxDialog.newInstance().show(this); + }else { + SingleToastUtil.showToast(throwable.getMessage()); + } + } else { + SingleToastUtil.showToast(throwable.getMessage()); + } + }) + .toObservable() + .delay(startTime - System.currentTimeMillis() + 300, TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()) + .flatMap(openBoxResult -> { + mBinding.ivOpen.setEnabled(true); + cacheList.addAll(openBoxResult); + return Observable.fromIterable(openBoxResult); + }) + .filter(prizeInfo -> prizeInfo.getLevel() > 2) + .subscribe(prizeInfo -> hintPrizeCacheList.add(prizeInfo)); } @SuppressLint("CheckResult") @@ -208,8 +197,8 @@ public class TreasureBoxActivity extends BaseBindingActivity cacheList.size() > 0) .subscribe(aLong -> { - PrizeInfo prizeInfo = cacheList.get(0); - String url = prizeInfo.getPrizeImgUrl(); + PrizeNewInfo prizeInfo = cacheList.get(0); + String url = prizeInfo.getPicUrl(); if (cacheList.size() > 0) cacheList.remove(0); if (!TextUtils.isEmpty(url)) { if (translationXAnimator != null) translationXAnimator.start(); @@ -233,7 +222,7 @@ public class TreasureBoxActivity extends BaseBindingActivity looperHintPrize());//出错了继续looper...... } - private void addPrizeHintView(PrizeInfo prizeInfo) { + private void addPrizeHintView(PrizeNewInfo prizeInfo) { mBinding.llPrizeHint.removeCallbacks(removeRunnable); mBinding.llPrizeHint.postDelayed(removeRunnable, 3000); LinearLayout linearLayout = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.item_box_prize_hint, null); @@ -251,8 +240,8 @@ public class TreasureBoxActivity extends BaseBindingActivity { +public class BoxRankingListAdapter extends BaseQuickAdapter { private final Context mContext; @@ -32,7 +32,7 @@ public class BoxRankingListAdapter extends BaseQuickAdapter rankingInfo) { hideStatus(); if (mAdapter != null) { int page = getMvpPresenter().getPage(); if (page <= 1) { swipeRefresh.setRefreshing(false); - if (rankingInfo.getRankVos() == null || rankingInfo.getRankVos().size() == 0) { + if (rankingInfo == null || rankingInfo.size() == 0) { showNoData(getString(R.string.empty_data)); } else { - mAdapter.setNewData(rankingInfo.getRankVos()); + mAdapter.setNewData(rankingInfo); } } } @@ -136,12 +139,12 @@ public class BoxRankingFragment extends BaseMvpFragment rankingInfo) { + if (ListUtils.isListEmpty(rankingInfo)) { mAdapter.loadMoreEnd(); return; } - mAdapter.addData(rankingInfo.getRankVos()); + mAdapter.addData(rankingInfo); mAdapter.loadMoreComplete(); } diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/module/BoxRankingModel.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/module/BoxRankingModel.java index 02cdf3dfd..7c8635721 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/module/BoxRankingModel.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/module/BoxRankingModel.java @@ -3,10 +3,12 @@ package com.yizhuan.erban.treasure_box.module; import com.yizhuan.xchat_android_core.auth.AuthModel; import com.yizhuan.xchat_android_core.bean.response.ServiceResult; import com.yizhuan.xchat_android_core.community.CommunityConstant; -import com.yizhuan.xchat_android_core.room.treasure_box.bean.BoxRankingInfo; +import com.yizhuan.xchat_android_core.room.treasure_box.bean.TreasureRankingInfo; import com.yizhuan.xchat_android_core.utils.net.RxHelper; import com.yizhuan.xchat_android_library.net.rxnet.RxNet; +import java.util.List; + import io.reactivex.Single; import retrofit2.http.GET; import retrofit2.http.Query; @@ -15,7 +17,7 @@ public class BoxRankingModel { private final Api api = RxNet.create(Api.class); - public Single getBoxRankingList(int datetype,int page,int pageSize) { + public Single> getBoxRankingList(int datetype,int page,int pageSize) { return api.apiNewbieList(String.valueOf(AuthModel.get().getCurrentUid()), CommunityConstant.VERSION_VALID_TYPE, AuthModel.get().getTicket(), @@ -44,7 +46,7 @@ public class BoxRankingModel { * @return - */ @GET("/findLove/rank") - Single> apiNewbieList( + Single>> apiNewbieList( @Query("uid") String uid, @Query("types") String types, @Query("ticket") String ticket, diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/module/IBoxRankingView.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/module/IBoxRankingView.java index 75b8113d1..911ab0d1c 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/module/IBoxRankingView.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/module/IBoxRankingView.java @@ -1,12 +1,14 @@ package com.yizhuan.erban.treasure_box.module; -import com.yizhuan.xchat_android_core.room.treasure_box.bean.BoxRankingInfo; +import com.yizhuan.xchat_android_core.room.treasure_box.bean.TreasureRankingInfo; import com.yizhuan.xchat_android_library.base.IMvpBaseView; +import java.util.List; + public interface IBoxRankingView extends IMvpBaseView { - void getBoxRankingSuccess(BoxRankingInfo list); + void getBoxRankingSuccess(List list); void getBoxRankingFails(String error); - void getBoxRankingLoadMoreSuccess(BoxRankingInfo list); + void getBoxRankingLoadMoreSuccess(List list); void getBoxRankingLoadMoreFails(String error); } diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/presenter/BoxRankingPresenter.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/presenter/BoxRankingPresenter.java index 2324e105d..66dd913cc 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/presenter/BoxRankingPresenter.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/presenter/BoxRankingPresenter.java @@ -6,8 +6,11 @@ import com.yizhuan.erban.treasure_box.module.BoxRankingModel; import com.yizhuan.erban.treasure_box.module.IBoxRankingView; import com.yizhuan.xchat_android_core.Constants; import com.yizhuan.xchat_android_core.room.treasure_box.bean.BoxRankingInfo; +import com.yizhuan.xchat_android_core.room.treasure_box.bean.TreasureRankingInfo; import com.yizhuan.xchat_android_library.utils.ResUtil; +import java.util.List; + import io.reactivex.SingleObserver; import io.reactivex.disposables.Disposable; @@ -23,14 +26,14 @@ public class BoxRankingPresenter extends BaseMvpPresenter { } BoxRankingModel.get().getBoxRankingList(datetype,page, Constants.PAGE_SIZE) - .compose(bindToLifecycle()).subscribe(new SingleObserver() { + .compose(bindToLifecycle()).subscribe(new SingleObserver>() { @Override public void onSubscribe(Disposable d) { } @Override - public void onSuccess(BoxRankingInfo roomNewbieInfos) { + public void onSuccess(List roomNewbieInfos) { if (roomNewbieInfos != null) { if (mMvpView != null) { if (isRefresh){ diff --git a/app/src/module_treasure_box/res/layout/activity_treasure_box.xml b/app/src/module_treasure_box/res/layout/activity_treasure_box.xml index 80c195828..0e9dc1a4e 100644 --- a/app/src/module_treasure_box/res/layout/activity_treasure_box.xml +++ b/app/src/module_treasure_box/res/layout/activity_treasure_box.xml @@ -39,32 +39,6 @@ app:layout_constraintStart_toStartOf="@id/view_bg" app:layout_constraintTop_toTopOf="@id/view_bg" /> - - - - openBoxDraw(int keyNum, boolean sendMessage) { + public Single> openBoxDraw(int keyNum, boolean sendMessage) { if (AvRoomDataManager.get().mCurrentRoomInfo == null) { return Single.error(new Throwable(ResUtil.getString(R.string.treasure_box_model_boxmodel_01))); } @@ -209,7 +209,7 @@ public class BoxModel extends BaseModel implements IBoxModel { */ @FormUrlEncoded @POST("/findLove/draw") - Single> openBoxDraw(@Field("num") int num, + Single>> openBoxDraw(@Field("num") int num, @Field("sendMessage") boolean sendMessage, @Field("roomUid") long roomUid); diff --git a/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/IBoxModel.java b/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/IBoxModel.java index d9c17913b..f7482656b 100644 --- a/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/IBoxModel.java +++ b/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/IBoxModel.java @@ -5,10 +5,10 @@ import com.yizhuan.treasure_box.bean.ConfigImgUrl; import com.yizhuan.treasure_box.bean.HonourBuyKeyResultInfo; import com.yizhuan.treasure_box.bean.HonourKeyInfo; import com.yizhuan.treasure_box.bean.KeyInfo; -import com.yizhuan.treasure_box.bean.OpenBoxDrawResult; import com.yizhuan.treasure_box.bean.OpenBoxHonourResult; import com.yizhuan.treasure_box.bean.OpenBoxResult; import com.yizhuan.treasure_box.bean.PrizeInfo; +import com.yizhuan.treasure_box.bean.PrizeNewInfo; import com.yizhuan.xchat_android_core.base.IModel; import com.yizhuan.xchat_android_core.bean.response.ServiceResult; @@ -32,7 +32,7 @@ public interface IBoxModel extends IModel { * @param sendMessage * @return */ - Single openBoxDraw(int keyNum, boolean sendMessage); + Single> openBoxDraw(int keyNum, boolean sendMessage); /** * 开箱子