From 291f85c3101253ae8702fb6dab6e2d73294c669f Mon Sep 17 00:00:00 2001 From: max Date: Mon, 15 Apr 2024 18:23:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5PIKO=EF=BC=9A=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E9=80=81=E7=A4=BC=E5=8F=AF=E7=94=A8=E9=87=91=E5=B8=81?= =?UTF-8?q?+=E9=92=BB=E7=9F=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/chwl/app/ui/widget/GiftDialog.java | 43 +++++++++-------- .../main/res/drawable/gift_dialog_ic_plus.xml | 26 +++++++++++ .../main/res/layout/dialog_bottom_gift.xml | 46 +++++++++++++++---- .../java/com/chwl/core/gift/GiftModel.java | 8 +++- .../core/gift/bean/GiftMultiReceiverInfo.java | 2 + .../java/com/chwl/core/pay/IPayModel.java | 2 + .../main/java/com/chwl/core/pay/PayModel.java | 12 +++++ .../com/chwl/core/pay/bean/WalletInfo.java | 6 +++ 8 files changed, 116 insertions(+), 29 deletions(-) create mode 100644 app/src/main/res/drawable/gift_dialog_ic_plus.xml diff --git a/app/src/main/java/com/chwl/app/ui/widget/GiftDialog.java b/app/src/main/java/com/chwl/app/ui/widget/GiftDialog.java index ce44eefb5..63b9ec63a 100644 --- a/app/src/main/java/com/chwl/app/ui/widget/GiftDialog.java +++ b/app/src/main/java/com/chwl/app/ui/widget/GiftDialog.java @@ -32,9 +32,6 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.chwl.core.utils.extension.StringExtensionKt; import com.google.android.material.bottomsheet.BottomSheetDialog; import com.netease.nim.uikit.common.util.sys.ScreenUtil; import com.trello.rxlifecycle3.components.support.RxAppCompatActivity; @@ -45,13 +42,10 @@ import com.chwl.app.application.ReportManager; import com.chwl.app.base.BaseActivity; import com.chwl.app.common.widget.CircleImageView; import com.chwl.app.radish.task.activity.TaskCenterActivity; -import com.chwl.app.ui.adapter.StarWeekAdapter; import com.chwl.app.ui.gift.dialog.GiftInfoVm; import com.chwl.app.ui.gift.dialog.PageIndicatorView; import com.chwl.app.ui.pay.ChargeActivity; import com.chwl.app.ui.utils.ImageLoadUtils; -import com.chwl.app.ui.webview.CommonWebViewActivity; -import com.chwl.app.ui.webview.DialogWebViewActivity; import com.chwl.app.ui.widget.dialog.GiftManualQuantityDialog; import com.chwl.app.ui.widget.drawgift.DrawGiftHelper; import com.chwl.app.ui.widget.drawgift.DrawGiftView; @@ -61,16 +55,12 @@ import com.chwl.app.ui.widget.recyclerview.decoration.VerticalDecoration; import com.chwl.app.utils.RegexUtil; import com.chwl.app.utils.SpannableBuilder; import com.chwl.app.vip.VipMainActivity; -import com.chwl.core.Constants; -import com.chwl.core.UriProvider; import com.chwl.core.auth.AuthModel; import com.chwl.core.bean.RoomQueueInfo; import com.chwl.core.gift.GiftModel; import com.chwl.core.gift.bean.GiftInfo; import com.chwl.core.gift.bean.GiftTab; import com.chwl.core.gift.bean.GiftType; -import com.chwl.core.gift.bean.LuckyBagNoticeInfo; -import com.chwl.core.gift.bean.SimpleUserInfo; import com.chwl.core.gift.event.UpdateKnapEvent; import com.chwl.core.gift.event.UpdateKnapFreeGiftDataEvent; import com.chwl.core.gift.event.UpdateKnapFreeGiftEvent; @@ -82,9 +72,7 @@ import com.chwl.core.manager.IMNetEaseManager; import com.chwl.core.manager.RoomEvent; import com.chwl.core.pay.PayModel; import com.chwl.core.pay.bean.WalletInfo; -import com.chwl.core.pay.event.FirstChargeEvent; import com.chwl.core.pay.event.UpdateWalletInfoEvent; -import com.chwl.core.room.anotherroompk.ShowUserInfoDialogEvent; import com.chwl.core.room.pk.model.PkModel; import com.chwl.core.room.queue.bean.MicMemberInfo; import com.chwl.core.user.UserModel; @@ -92,15 +80,11 @@ import com.chwl.core.user.bean.UserInfo; import com.chwl.core.utils.net.RxHelper; import com.chwl.library.bindinglist.IItem; import com.chwl.library.bindinglist.MultiTypeAdapter; -import com.chwl.library.common.util.DeviceUtil; -import com.chwl.library.utils.AppMetaDataUtil; import com.chwl.library.utils.FormatUtils; import com.chwl.library.utils.ListUtils; import com.chwl.library.utils.ResUtil; import com.chwl.library.utils.SingleToastUtil; import com.chwl.library.utils.TextWatcherWrapper; -import com.zhpan.bannerview.BannerViewPager; -import com.zhpan.bannerview.utils.BannerUtils; import com.zyyoona7.lib.EasyPopup; import com.zyyoona7.lib.HorizontalGravity; import com.zyyoona7.lib.VerticalGravity; @@ -109,13 +93,12 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Objects; -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; import io.reactivex.Single; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; @@ -510,6 +493,11 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene }); compositeDisposable.add(GiftModel.get().requestKnapGiftInfos().subscribe()); + PayModel.get().getMyRemoteWalletInfo().compose(RxHelper.bindContext(context)) + .subscribe(info -> { + goldWalletInfo = info; + setGoldOrRadishText(lastSelectedItem); + }); } private void showLoadingAnimation() { @@ -552,10 +540,25 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene itemType = ITEM_TYPE_GOLD; tvRecharge.setVisibility(View.VISIBLE); - tvRecharge.setText(context.getText(R.string.charge)); + tvRecharge.setText(context.getText(R .string.charge)); if (goldWalletInfo == null) { return; } + if (goldWalletInfo.canGoldSendGift) { + findViewById(R.id.iv_plus).setVisibility(View.VISIBLE); + findViewById(R.id.iv_gold).setVisibility(View.VISIBLE); + BigDecimal total = BigDecimal.valueOf(goldWalletInfo.getDiamondNum()); + total = total.add(BigDecimal.valueOf(goldWalletInfo.getGoldNum())); + total = total.setScale(0, RoundingMode.DOWN); + tvTextGold.setText(total.toPlainString()); + } else { + findViewById(R.id.iv_plus).setVisibility(View.GONE); + findViewById(R.id.iv_gold).setVisibility(View.GONE); + BigDecimal total = BigDecimal.valueOf(goldWalletInfo.getDiamondNum()); + total = total.setScale(0, RoundingMode.DOWN); + tvTextGold.setText(total.toPlainString()); + } + String goldNumText = getContext().getString(R.string.gold_num_text, goldWalletInfo.getDiamondNum()); SpannableBuilder builder = new SpannableBuilder(); builder.append(context.getText(R.string.gift_wallet_overage), new ForegroundColorSpan( diff --git a/app/src/main/res/drawable/gift_dialog_ic_plus.xml b/app/src/main/res/drawable/gift_dialog_ic_plus.xml new file mode 100644 index 000000000..e7fe1929a --- /dev/null +++ b/app/src/main/res/drawable/gift_dialog_ic_plus.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/app/src/main/res/layout/dialog_bottom_gift.xml b/app/src/main/res/layout/dialog_bottom_gift.xml index 273372522..1c4ad2a8f 100644 --- a/app/src/main/res/layout/dialog_bottom_gift.xml +++ b/app/src/main/res/layout/dialog_bottom_gift.xml @@ -424,6 +424,7 @@ android:layout_width="match_parent" android:layout_height="@dimen/dp_50"> + + app:drawableEndCompat="@drawable/ic_arrow_recharge" /> + + + + + + + android:textSize="@dimen/dp_14" + tools:text="10000" /> luckyBagGifts; private List targetUids; private LuckyGiftList luckyGiftList; + private WalletInfo userPurse; } diff --git a/core/src/main/java/com/chwl/core/pay/IPayModel.java b/core/src/main/java/com/chwl/core/pay/IPayModel.java index ed4044b0c..f9115e02f 100644 --- a/core/src/main/java/com/chwl/core/pay/IPayModel.java +++ b/core/src/main/java/com/chwl/core/pay/IPayModel.java @@ -23,6 +23,8 @@ import io.reactivex.Single; */ public interface IPayModel extends IModel { + void refreshWalletInfo(boolean isNotice); + WalletInfo getCurrentWalletInfo(); void minusGold(float price); diff --git a/core/src/main/java/com/chwl/core/pay/PayModel.java b/core/src/main/java/com/chwl/core/pay/PayModel.java index 6d09ced2c..b7d688003 100644 --- a/core/src/main/java/com/chwl/core/pay/PayModel.java +++ b/core/src/main/java/com/chwl/core/pay/PayModel.java @@ -90,6 +90,15 @@ public class PayModel extends BaseModel implements IPayModel { EventBus.getDefault().register(this); } + @Override + public void refreshWalletInfo(boolean isNotice) { + getMyRemoteWalletInfo().subscribe(info -> { + if (isNotice) { + EventBus.getDefault().post(new UpdateWalletInfoEvent()); + } + }); + } + @Override public WalletInfo getCurrentWalletInfo() { return walletInfo; @@ -134,6 +143,9 @@ public class PayModel extends BaseModel implements IPayModel { walletInfo.setCrystals(jsonObject.getDoubleValue("crystals")); walletInfo.nobleGoldNum = jsonObject.getDoubleValue("nobleGoldNum"); walletInfo.chargeGoldNum = jsonObject.getDoubleValue("chargeGoldNum"); + if (jsonObject.containsKey("canGoldSendGift")) { + walletInfo.canGoldSendGift = jsonObject.getBoolean("canGoldSendGift"); + } this.walletInfo = walletInfo; // 兼容新版 setWalletInfo(walletInfo); diff --git a/core/src/main/java/com/chwl/core/pay/bean/WalletInfo.java b/core/src/main/java/com/chwl/core/pay/bean/WalletInfo.java index a9fee2f9c..585d5f89e 100644 --- a/core/src/main/java/com/chwl/core/pay/bean/WalletInfo.java +++ b/core/src/main/java/com/chwl/core/pay/bean/WalletInfo.java @@ -38,6 +38,10 @@ public class WalletInfo implements Parcelable { private double canGiveGoldNum; /** 1:默认line,2:默认facebook */ private int defaultPay; + /** + * 是否可以在送礼时合并使用金币 + */ + public boolean canGoldSendGift; public WalletInfo() { } @@ -53,6 +57,7 @@ public class WalletInfo implements Parcelable { nobleGoldNum = in.readDouble(); canGiveGoldNum = in.readDouble(); defaultPay = in.readInt(); + canGoldSendGift = in.readInt() == 1; } @Override @@ -66,6 +71,7 @@ public class WalletInfo implements Parcelable { dest.writeDouble(nobleGoldNum); dest.writeDouble(canGiveGoldNum); dest.writeInt(defaultPay); + dest.writeInt(canGoldSendGift ? 1 : 0); } @Override