diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4a5d2241d..8c187eea7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5126,5 +5126,6 @@ 有趣的人都在這 購買%d個碎片 購買%d個愛心 + 請選擇或輸入購買的愛心數量 \ 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 461163b57..f7a911078 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 @@ -45,6 +45,7 @@ import com.yizhuan.erban.treasure_box.widget.dialog.BoxMoreDialog; import com.yizhuan.erban.treasure_box.widget.dialog.BuyLoveDialog; import com.yizhuan.erban.treasure_box.widget.dialog.TreasureBoxDialog; import com.yizhuan.erban.ui.utils.ImageLoadUtils; +import com.yizhuan.erban.utils.KeyBoardUtils; import com.yizhuan.erban.utils.UserUtils; import com.yizhuan.treasure_box.bean.PrizeNewInfo; import com.yizhuan.treasure_box.bean.UserTicketInfo; @@ -73,6 +74,7 @@ import com.yizhuan.xchat_android_library.utils.FormatUtils; import com.yizhuan.xchat_android_library.utils.ResUtil; import com.yizhuan.xchat_android_library.utils.SingleToastUtil; import com.yizhuan.xchat_android_library.utils.TimeUtils; +import com.yizhuan.xchat_android_library.utils.keyboard.KeyboardUtil; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -84,6 +86,7 @@ import java.util.concurrent.TimeUnit; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.functions.Consumer; @ActLayoutRes(R.layout.activity_treasure_box) public class TreasureBoxActivity extends BaseBindingActivity implements View.OnClickListener { @@ -95,9 +98,7 @@ public class TreasureBoxActivity extends BaseBindingActivity { - if (userTicketInfo != null) { - long date = SPUtils.getLong(SpConstants.BOX_BUY_LOVE, 0L); - int num = TextUtils.isEmpty(inputNumber) ? mNum : Integer.parseInt(inputNumber); - if (date != 0L) { - if (TimeUtils.isToday(date)) { - BoxModel.get() - .buyTicket(num) - .compose(bindToLifecycle()) - .subscribe(userTicketInfo -> { - ToastUtils.show("購買成功"); - loadUserTicket(); - }); - } else { - BuyLoveDialog.Companion.newInstance(num, (int) userTicketInfo.getTicketPrice() * num).show(this); - } + if (userTicketInfo == null) { + return; + } + + if (mNum == -1) { + toast(getString(R.string.please_select_or_enter_the_quantity_of_hearts_purchased)); + return; + } + + long date = SPUtils.getLong(SpConstants.BOX_BUY_LOVE, 0L); + if (date != 0L) { + if (TimeUtils.isToday(date)) { + BoxModel.get() + .buyTicket(mNum) + .compose(bindToLifecycle()) + .doOnError(throwable -> toast(throwable.getMessage())) + .subscribe(userTicketInfo -> { + ToastUtils.show("購買成功"); + loadUserTicket(); + }); } else { - BuyLoveDialog.Companion.newInstance(num, (int) userTicketInfo.getTicketPrice() * num).show(this); + BuyLoveDialog.Companion.newInstance(mNum, (int) userTicketInfo.getTicketPrice() * mNum).show(this); } + } else { + BuyLoveDialog.Companion.newInstance(mNum, (int) userTicketInfo.getTicketPrice() * mNum).show(this); } }); - mBinding.view1.setSelected(true); - mBinding.tv1.setAlpha(1f); - loadUserTicket(); loadKeyInfo(); looperPrize(); @@ -217,6 +223,20 @@ public class TreasureBoxActivity extends BaseBindingActivity() { if (TimeUtils.isToday(date)) { BoxModel.get() .buyTicket(num) - .compose(bindToLifecycle()) + .compose(bindToLifecycle()) + .doOnError { ToastUtils.show(it.message) } .subscribe { userTicketInfo: UserTicketInfo -> ToastUtils.show("購買成功") dismissAllowingStateLoss() @@ -72,7 +73,8 @@ class BuyLoveDialog : BaseDialog() { } else { BoxModel.get() .buyTicket(num) - .compose(bindToLifecycle()) + .compose(bindToLifecycle()) + .doOnError { ToastUtils.show(it.message) } .subscribe { userTicketInfo: UserTicketInfo -> BuyLoveSuccessDialog.newInstance(num).show(context) dismissAllowingStateLoss() @@ -81,7 +83,8 @@ class BuyLoveDialog : BaseDialog() { } else { BoxModel.get() .buyTicket(num) - .compose(bindToLifecycle()) + .compose(bindToLifecycle()) + .doOnError { ToastUtils.show(it.message) } .subscribe { userTicketInfo: UserTicketInfo -> BuyLoveSuccessDialog.newInstance(num).show(context) dismissAllowingStateLoss() 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 d6a950f3f..948f47275 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 @@ -119,35 +119,35 @@ android:layout_height="@dimen/dp_28" android:layout_marginTop="@dimen/dp_12" android:background="@drawable/bg_8651e0_stroke_ffffff" - app:layout_constraintStart_toStartOf="@+id/iv_first_box" app:layout_constraintEnd_toEndOf="@+id/iv_first_box" + app:layout_constraintStart_toStartOf="@+id/iv_first_box" app:layout_constraintTop_toBottomOf="@+id/iv_first_box"> - + + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintDimensionRatio="30:16" + app:layout_constraintStart_toEndOf="@+id/tv_box_num" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintWidth_percent="0.104" /> + app:layout_constraintStart_toStartOf="@+id/view_1" + app:layout_constraintTop_toTopOf="@+id/view_1" /> + app:layout_constraintDimensionRatio="30:16" + app:layout_constraintStart_toEndOf="@+id/view_1" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintWidth_percent="0.104" /> + app:layout_constraintStart_toStartOf="@+id/view_2" + app:layout_constraintTop_toTopOf="@+id/view_2" /> + app:layout_constraintDimensionRatio="30:16" + app:layout_constraintStart_toEndOf="@+id/view_2" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintWidth_percent="0.104" /> + app:layout_constraintStart_toStartOf="@+id/view_3" + app:layout_constraintTop_toTopOf="@+id/view_3" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintWidth_percent="0.18" />