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" />