[Modify]寻爱之旅完善
BIN
app/src/main/res/drawable-xhdpi/btn_box_buy.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
app/src/main/res/drawable-xhdpi/ic_box_selected.png
Normal file
After Width: | Height: | Size: 564 B |
BIN
app/src/main/res/drawable-xhdpi/ic_box_unselected.png
Normal file
After Width: | Height: | Size: 468 B |
BIN
app/src/main/res/drawable-xhdpi/treasure_box_ic_diamond.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
6
app/src/main/res/drawable/selector_select_box.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@drawable/ic_box_selected" android:state_checked="true" />
|
||||
<item android:drawable="@drawable/ic_box_unselected" android:state_checked="false" />
|
||||
<item android:drawable="@drawable/ic_box_unselected" />
|
||||
</selector>
|
@@ -679,5 +679,16 @@
|
||||
<color name="color_B8B7C7">#B8B7C7</color>
|
||||
<color name="color_FAFBFC">#FAFBFC</color>
|
||||
<color name="color_767585">#767585</color>
|
||||
<color name="color_F2DE84">#F2DE84</color>
|
||||
<color name="color_365A65">#365A65</color>
|
||||
<color name="color_F6F6F6">#F6F6F6</color>
|
||||
<color name="color_66F6F6F6">#66F6F6F6</color>
|
||||
<color name="color_3AEAC7">#3AEAC7</color>
|
||||
<color name="color_FFFEBB">#FFFEBB</color>
|
||||
<color name="color_8651E0">#8651E0</color>
|
||||
<color name="color_7748C7">#7748C7</color>
|
||||
<color name="color_7147E6">#7147E6</color>
|
||||
<color name="color_FF9A1F">#FF9A1F</color>
|
||||
<color name="color_A3A0AD">#A3A0AD</color>
|
||||
|
||||
</resources>
|
||||
|
@@ -5122,5 +5122,7 @@
|
||||
<string name="level_goddess_gathering_place">顏值女神聚集地</string>
|
||||
<string name="accompany_and_make_friends">陪伴交友</string>
|
||||
<string name="interesting_people_are_here">有趣的人都在這</string>
|
||||
<string name="buy_debris">購買%d個碎片</string>
|
||||
<string name="buy_love_num">購買%d個愛心</string>
|
||||
|
||||
</resources>
|
@@ -0,0 +1,4 @@
|
||||
package com.yizhuan.erban.event;
|
||||
|
||||
public class BoxLoveEvent {
|
||||
}
|
@@ -17,7 +17,6 @@ import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -29,6 +28,7 @@ import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
||||
@@ -36,11 +36,15 @@ import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseBindingActivity;
|
||||
import com.yizhuan.erban.databinding.ActivityTreasureBoxBinding;
|
||||
import com.yizhuan.erban.event.BoxLoveEvent;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BoxLoveLackDialog;
|
||||
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.UserUtils;
|
||||
import com.yizhuan.treasure_box.bean.PrizeNewInfo;
|
||||
import com.yizhuan.treasure_box.bean.UserTicketInfo;
|
||||
import com.yizhuan.treasure_box.model.BoxModel;
|
||||
import com.yizhuan.xchat_android_core.DemoCache;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
@@ -59,13 +63,18 @@ import com.yizhuan.xchat_android_core.manager.RoomEvent;
|
||||
import com.yizhuan.xchat_android_core.pay.PayModel;
|
||||
import com.yizhuan.xchat_android_core.pay.bean.WalletInfo;
|
||||
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfoBean;
|
||||
import com.yizhuan.xchat_android_core.utils.StringUtils;
|
||||
import com.yizhuan.xchat_android_core.utils.Logger;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.common.util.SoftKeyboardStateHelper;
|
||||
import com.yizhuan.xchat_android_library.common.SpConstants;
|
||||
import com.yizhuan.xchat_android_library.common.util.SPUtils;
|
||||
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.TextWatcherWrapper;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Objects;
|
||||
@@ -83,7 +92,10 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
private ObjectAnimator translationYAnimator;
|
||||
private int height;
|
||||
private int sendMessageSwitchLevel;
|
||||
private int price;
|
||||
|
||||
private int mNum = 1;
|
||||
|
||||
private UserTicketInfo userTicketInfo;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent starter = new Intent(context, TreasureBoxActivity.class);
|
||||
@@ -98,8 +110,10 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
|
||||
getWindow().setGravity(Gravity.BOTTOM);
|
||||
subscribeEvent();
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void init() {
|
||||
mBinding.setClick(this);
|
||||
@@ -121,45 +135,92 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
if (walletInfo != null) {
|
||||
mBinding.tvDiamondNum.setText(FormatUtils.formatBigInteger(walletInfo.getDiamondNum()));
|
||||
}
|
||||
mBinding.editNum.addTextChangedListener(new TextWatcherWrapper() {
|
||||
@Override
|
||||
public void afterTextChanged(Editable editable) {
|
||||
int num = StringUtils.toInt(mBinding.editNum.getText().toString(), 0);
|
||||
if (num > 200) {
|
||||
mBinding.editNum.setText("200");
|
||||
mBinding.editNum.setSelection(3);
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.treasure_box_activity_treasureboxactivity_01));
|
||||
|
||||
mBinding.view1.setOnClickListener(v -> setBoxPriceSelect(1));
|
||||
mBinding.view2.setOnClickListener(v -> setBoxPriceSelect(2));
|
||||
mBinding.view3.setOnClickListener(v -> setBoxPriceSelect(3));
|
||||
|
||||
mBinding.tvBuy.setOnClickListener(v -> {
|
||||
if (userTicketInfo != null) {
|
||||
long date = SPUtils.getLong(SpConstants.BOX_BUY_LOVE, 0L);
|
||||
if (date != 0L) {
|
||||
if (TimeUtils.isToday(date)) {
|
||||
BoxModel.get()
|
||||
.buyTicket(mNum)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(userTicketInfo -> {
|
||||
ToastUtils.show("購買成功");
|
||||
loadUserTicket();
|
||||
});
|
||||
} else {
|
||||
BuyLoveDialog.Companion.newInstance(mNum, (int) userTicketInfo.getTicketPrice()).show(this);
|
||||
}
|
||||
} else {
|
||||
BuyLoveDialog.Companion.newInstance(mNum, (int) userTicketInfo.getTicketPrice()).show(this);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
mBinding.view1.setSelected(true);
|
||||
mBinding.tv1.setAlpha(1f);
|
||||
|
||||
loadUserTicket();
|
||||
loadKeyInfo();
|
||||
looperPrize();
|
||||
looperHintPrize();
|
||||
|
||||
new SoftKeyboardStateHelper(mBinding.editNum).addSoftKeyboardStateListener(new SoftKeyboardStateHelper.SoftKeyboardStateListener() {
|
||||
@Override
|
||||
public void onSoftKeyboardOpened(int keyboardHeightInPx) {
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* 购买爱心回调
|
||||
*/
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onBoxLoveEvent(BoxLoveEvent event) {
|
||||
loadUserTicket();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSoftKeyboardClosed() {
|
||||
int num = StringUtils.toInt(mBinding.editNum.getText().toString(), 0);
|
||||
if (num == 0) {
|
||||
mBinding.editNum.setText("1");
|
||||
mBinding.editNum.setSelection(1);
|
||||
}
|
||||
}
|
||||
});
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadUserTicket() {
|
||||
BoxModel.get()
|
||||
.getUserTicket()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(userTicketInfo -> {
|
||||
this.userTicketInfo = userTicketInfo;
|
||||
mBinding.tvBoxNum.setText(String.valueOf(userTicketInfo.getTicketNum()));
|
||||
});
|
||||
}
|
||||
|
||||
private void setBoxPriceSelect(int pos) {
|
||||
if (pos == 1) {
|
||||
mNum = 1;
|
||||
mBinding.view1.setSelected(true);
|
||||
mBinding.view2.setSelected(false);
|
||||
mBinding.view3.setSelected(false);
|
||||
mBinding.tv1.setAlpha(1f);
|
||||
mBinding.tv2.setAlpha(0.4f);
|
||||
mBinding.tv3.setAlpha(0.4f);
|
||||
} else if (pos == 2) {
|
||||
mNum = 10;
|
||||
mBinding.view1.setSelected(false);
|
||||
mBinding.view2.setSelected(true);
|
||||
mBinding.view3.setSelected(false);
|
||||
mBinding.tv1.setAlpha(0.4f);
|
||||
mBinding.tv2.setAlpha(1f);
|
||||
mBinding.tv3.setAlpha(0.4f);
|
||||
} else if (pos == 3) {
|
||||
mNum = 100;
|
||||
mBinding.view1.setSelected(false);
|
||||
mBinding.view2.setSelected(false);
|
||||
mBinding.view3.setSelected(true);
|
||||
mBinding.tv1.setAlpha(0.4f);
|
||||
mBinding.tv2.setAlpha(0.4f);
|
||||
mBinding.tv3.setAlpha(1f);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint({"CheckResult", "ClickableViewAccessibility"})
|
||||
private void loadKeyInfo() {
|
||||
sendMessageSwitchLevel = AvRoomDataManager.get().mFindLoveSwitchVo.getSendMsgLevel();
|
||||
price = (int) AvRoomDataManager.get().mFindLoveSwitchVo.getPrice();
|
||||
mBinding.tvDiamond.setText(getString(R.string.text_diamond, price));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -174,14 +235,14 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
case R.id.tv_rank:
|
||||
BoxRankingActivity.start(this);
|
||||
break;
|
||||
case R.id.iv_open:
|
||||
openBox(StringUtils.toInt(mBinding.editNum.getText().toString(), 0));
|
||||
case R.id.iv_box_1:
|
||||
openBox(1);
|
||||
break;
|
||||
case R.id.iv_sub:
|
||||
mBinding.editNum.setText(String.valueOf(Math.max(StringUtils.toInt(mBinding.editNum.getText().toString(), 0) - 1, 1)));
|
||||
case R.id.iv_box_2:
|
||||
openBox(10);
|
||||
break;
|
||||
case R.id.iv_add:
|
||||
mBinding.editNum.setText(String.valueOf(Math.min((StringUtils.toInt(mBinding.editNum.getText().toString(), 0) + 1), 9999)));
|
||||
case R.id.iv_box_3:
|
||||
openBox(100);
|
||||
break;
|
||||
case R.id.view_bg:
|
||||
case R.id.iv_title:
|
||||
@@ -198,14 +259,20 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.treasure_box_activity_treasureboxactivity_03));
|
||||
return;
|
||||
}
|
||||
if(count > Integer.parseInt(mBinding.tvBoxNum.getText().toString())){
|
||||
if (userTicketInfo != null) {
|
||||
BoxLoveLackDialog.Companion.newInstance(count, (int) userTicketInfo.getTicketPrice()).show(context);
|
||||
}
|
||||
return;
|
||||
}
|
||||
boolean sendMessage = (sendMessageSwitchLevel != 0 && UserUtils.getExpLevel() < sendMessageSwitchLevel) || DemoCache.readNeedBoxMsg();
|
||||
mBinding.ivOpen.setEnabled(false);
|
||||
setBoxEnable(false);
|
||||
mBinding.ivBoxOpen.startAnimation();
|
||||
long startTime = System.currentTimeMillis();
|
||||
BoxModel.get().openBoxDraw(count, sendMessage)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnError(throwable -> {
|
||||
mBinding.ivOpen.setEnabled(true);
|
||||
setBoxEnable(true);
|
||||
if (throwable instanceof FailReasonException) {
|
||||
FailReasonException failReasonException = (FailReasonException) throwable;
|
||||
if (failReasonException.getCode() == BoxModel.ERROR_CODE_DIAMOND) {
|
||||
@@ -221,12 +288,21 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
.delay(startTime - System.currentTimeMillis() + 300, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.flatMap(openBoxResult -> {
|
||||
mBinding.ivOpen.setEnabled(true);
|
||||
setBoxEnable(true);
|
||||
cacheList.addAll(openBoxResult);
|
||||
return Observable.fromIterable(openBoxResult);
|
||||
})
|
||||
.filter(prizeInfo -> prizeInfo.getLevel() > 2)
|
||||
.subscribe(prizeInfo -> hintPrizeCacheList.add(prizeInfo));
|
||||
.subscribe(prizeInfo -> {
|
||||
hintPrizeCacheList.add(prizeInfo);
|
||||
loadUserTicket();
|
||||
});
|
||||
}
|
||||
|
||||
private void setBoxEnable(boolean status) {
|
||||
mBinding.ivBox1.setEnabled(status);
|
||||
mBinding.ivBox2.setEnabled(status);
|
||||
mBinding.ivBox3.setEnabled(status);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@@ -395,4 +471,9 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
StatusBarUtil.StatusBarLightMode(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,132 @@
|
||||
package com.yizhuan.erban.treasure_box.widget.dialog
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.text.Editable
|
||||
import android.view.Gravity
|
||||
import android.view.WindowManager
|
||||
import com.hjq.toast.ToastUtils
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.base.BaseDialog
|
||||
import com.yizhuan.erban.base.Event
|
||||
import com.yizhuan.erban.databinding.TreasureBoxDialogLoveLackBinding
|
||||
import com.yizhuan.erban.event.BoxLoveEvent
|
||||
import com.yizhuan.erban.treasurefairy.dialog.FairyBuySuccessDialog
|
||||
import com.yizhuan.treasure_box.bean.UserTicketInfo
|
||||
import com.yizhuan.treasure_box.model.BoxModel
|
||||
import com.yizhuan.xchat_android_core.utils.StringUtils
|
||||
import com.yizhuan.xchat_android_library.common.SpConstants
|
||||
import com.yizhuan.xchat_android_library.common.util.SPUtils
|
||||
import com.yizhuan.xchat_android_library.common.util.SoftKeyboardStateHelper
|
||||
import com.yizhuan.xchat_android_library.common.util.SoftKeyboardStateHelper.SoftKeyboardStateListener
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil
|
||||
import com.yizhuan.xchat_android_library.utils.TextWatcherWrapper
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
/**
|
||||
* 购买碎片
|
||||
*/
|
||||
class BoxLoveLackDialog : BaseDialog<TreasureBoxDialogLoveLackBinding>() {
|
||||
|
||||
override var width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
override var gravity = Gravity.CENTER
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(num: Int, ticketPrice: Int): BoxLoveLackDialog {
|
||||
val args = Bundle()
|
||||
args.putInt("num", num)
|
||||
args.putInt("ticketPrice", ticketPrice)
|
||||
val fragment = BoxLoveLackDialog()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private val num by lazy { requireArguments().getInt("num") }
|
||||
private val ticketPrice by lazy { requireArguments().getInt("ticketPrice") }
|
||||
|
||||
@SuppressLint("CheckResult", "SetTextI18n")
|
||||
override fun init() {
|
||||
binding?.editNum?.setText(num.toString())
|
||||
binding?.tvPrizeName?.text = (num * ticketPrice).toString()
|
||||
|
||||
binding?.ivSub?.setOnClickListener {
|
||||
val editNum =
|
||||
(StringUtils.toInt(binding?.editNum?.text.toString(), 0) - 1).coerceAtLeast(1)
|
||||
binding?.editNum?.setText(editNum.toString())
|
||||
binding?.tvPrizeName?.text = (editNum * ticketPrice).toString()
|
||||
}
|
||||
|
||||
binding?.ivAdd?.setOnClickListener {
|
||||
val editNum =
|
||||
(StringUtils.toInt(binding?.editNum?.text.toString(), 0) + 1).coerceAtMost(9999)
|
||||
binding?.editNum?.setText(editNum.toString())
|
||||
binding?.tvPrizeName?.text = (editNum * ticketPrice).toString()
|
||||
}
|
||||
|
||||
binding?.ivClose?.setOnClickListener {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
binding?.tvBuy?.setOnClickListener {
|
||||
val date = SPUtils.getLong(SpConstants.BOX_BUY_LOVE, 0L)
|
||||
if (date != 0L) {
|
||||
if (TimeUtils.isToday(date)) {
|
||||
BoxModel.get()
|
||||
.buyTicket(num)
|
||||
.compose<UserTicketInfo>(bindToLifecycle<UserTicketInfo>())
|
||||
.subscribe { userTicketInfo: UserTicketInfo ->
|
||||
ToastUtils.show("購買成功")
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
} else {
|
||||
BuyLoveDialog.newInstance(
|
||||
binding?.editNum?.text.toString().toInt(),
|
||||
ticketPrice * binding?.editNum?.text.toString().toInt()
|
||||
).show(context)
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
} else {
|
||||
BuyLoveDialog.newInstance(
|
||||
binding?.editNum?.text.toString().toInt(),
|
||||
ticketPrice * binding?.editNum?.text.toString().toInt()
|
||||
).show(context)
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
|
||||
binding?.editNum?.addTextChangedListener(object : TextWatcherWrapper() {
|
||||
override fun afterTextChanged(editable: Editable) {
|
||||
val num = StringUtils.toInt(binding?.editNum?.text.toString(), 0)
|
||||
if (num > 200) {
|
||||
binding?.editNum?.setText("200")
|
||||
binding?.editNum?.setSelection(3)
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.treasure_box_activity_treasureboxactivity_01))
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
SoftKeyboardStateHelper(binding?.editNum).addSoftKeyboardStateListener(object :
|
||||
SoftKeyboardStateListener {
|
||||
override fun onSoftKeyboardOpened(keyboardHeightInPx: Int) {}
|
||||
override fun onSoftKeyboardClosed() {
|
||||
val num = StringUtils.toInt(binding?.editNum?.text.toString(), 0)
|
||||
if (num == 0) {
|
||||
binding?.editNum?.setText("1")
|
||||
binding?.editNum?.setSelection(1)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
super.onDismiss(dialog)
|
||||
EventBus.getDefault().post(BoxLoveEvent())
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,99 @@
|
||||
package com.yizhuan.erban.treasure_box.widget.dialog
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.WindowManager
|
||||
import com.hjq.toast.ToastUtils
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.base.BaseDialog
|
||||
import com.yizhuan.erban.databinding.TreasureBoxDialogBuyLoveBinding
|
||||
import com.yizhuan.erban.event.BoxLoveEvent
|
||||
import com.yizhuan.treasure_box.bean.UserTicketInfo
|
||||
import com.yizhuan.treasure_box.model.BoxModel
|
||||
import com.yizhuan.xchat_android_library.common.SpConstants
|
||||
import com.yizhuan.xchat_android_library.common.util.SPUtils
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
/**
|
||||
* 购买爱心
|
||||
*/
|
||||
class BuyLoveDialog : BaseDialog<TreasureBoxDialogBuyLoveBinding>() {
|
||||
|
||||
override var width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
override var gravity = Gravity.CENTER
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(num: Int, ticketPrice: Int): BuyLoveDialog {
|
||||
val args = Bundle()
|
||||
args.putInt("num", num)
|
||||
args.putInt("ticketPrice", ticketPrice)
|
||||
val fragment = BuyLoveDialog()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private val num by lazy { requireArguments().getInt("num") }
|
||||
private val ticketPrice by lazy { requireArguments().getInt("ticketPrice") }
|
||||
|
||||
@SuppressLint("CheckResult", "SetTextI18n")
|
||||
override fun init() {
|
||||
binding?.tvLackLove?.text = getString(R.string.buy_love_num, num)
|
||||
binding?.tvPrizeName?.text = ticketPrice.toString()
|
||||
|
||||
binding?.cbPay?.setOnCheckedChangeListener { _, isChecked ->
|
||||
if (isChecked) {
|
||||
SPUtils.putLong(SpConstants.BOX_BUY_LOVE, System.currentTimeMillis())
|
||||
} else {
|
||||
SPUtils.putLong(SpConstants.BOX_BUY_LOVE, 0L)
|
||||
}
|
||||
}
|
||||
|
||||
binding?.ivClose?.setOnClickListener {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
binding?.tvBuy?.setOnClickListener {
|
||||
val date = SPUtils.getLong(SpConstants.BOX_BUY_SUCCESS, 0L)
|
||||
if (date != 0L) {
|
||||
if (TimeUtils.isToday(date)) {
|
||||
BoxModel.get()
|
||||
.buyTicket(num)
|
||||
.compose<UserTicketInfo>(bindToLifecycle<UserTicketInfo>())
|
||||
.subscribe { userTicketInfo: UserTicketInfo ->
|
||||
ToastUtils.show("購買成功")
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
} else {
|
||||
BoxModel.get()
|
||||
.buyTicket(num)
|
||||
.compose<UserTicketInfo>(bindToLifecycle<UserTicketInfo>())
|
||||
.subscribe { userTicketInfo: UserTicketInfo ->
|
||||
BuyLoveSuccessDialog.newInstance(num).show(context)
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
BoxModel.get()
|
||||
.buyTicket(num)
|
||||
.compose<UserTicketInfo>(bindToLifecycle<UserTicketInfo>())
|
||||
.subscribe { userTicketInfo: UserTicketInfo ->
|
||||
BuyLoveSuccessDialog.newInstance(num).show(context)
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
super.onDismiss(dialog)
|
||||
EventBus.getDefault().post(BoxLoveEvent())
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,64 @@
|
||||
package com.yizhuan.erban.treasure_box.widget.dialog
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.WindowManager
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.base.BaseDialog
|
||||
import com.yizhuan.erban.databinding.TreasureBoxDialogBuyLoveBinding
|
||||
import com.yizhuan.erban.databinding.TreasureBoxDialogBuyLoveSuccessBinding
|
||||
import com.yizhuan.erban.event.BoxLoveEvent
|
||||
import com.yizhuan.treasure_box.bean.UserTicketInfo
|
||||
import com.yizhuan.treasure_box.model.BoxModel
|
||||
import com.yizhuan.xchat_android_library.common.SpConstants
|
||||
import com.yizhuan.xchat_android_library.common.util.SPUtils
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
/**
|
||||
* 购买爱心
|
||||
*/
|
||||
class BuyLoveSuccessDialog : BaseDialog<TreasureBoxDialogBuyLoveSuccessBinding>() {
|
||||
|
||||
override var width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
override var gravity = Gravity.CENTER
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(num: Int): BuyLoveSuccessDialog {
|
||||
val args = Bundle()
|
||||
args.putInt("num", num)
|
||||
val fragment = BuyLoveSuccessDialog()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private val num by lazy { requireArguments().getInt("num") }
|
||||
|
||||
@SuppressLint("CheckResult", "SetTextI18n")
|
||||
override fun init() {
|
||||
binding?.tvPrizeName?.text = "x${num}"
|
||||
|
||||
binding?.cbPay?.setOnCheckedChangeListener { _, isChecked ->
|
||||
if (isChecked) {
|
||||
SPUtils.putLong(SpConstants.BOX_BUY_SUCCESS, System.currentTimeMillis())
|
||||
} else {
|
||||
SPUtils.putLong(SpConstants.BOX_BUY_SUCCESS, 0L)
|
||||
}
|
||||
}
|
||||
|
||||
binding?.ivClose?.setOnClickListener {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
super.onDismiss(dialog)
|
||||
EventBus.getDefault().post(BoxLoveEvent())
|
||||
}
|
||||
|
||||
}
|
BIN
app/src/module_treasure_box/res/drawable-xhdpi/ic_love_token.png
Normal file
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/root_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="240dp"
|
||||
android:layout_height="288dp"
|
||||
android:background="@drawable/treasure_box_bg_love_lack"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.6" />
|
||||
|
||||
<View
|
||||
android:id="@+id/view_buy_love"
|
||||
android:layout_width="140dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginBottom="@dimen/dp_30"
|
||||
android:background="@drawable/treasure_box_buy_love"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@+id/view_bg"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:src="@drawable/treasure_box_ic_close"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@+id/view_bg" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_lack_love"
|
||||
android:text="@string/buy_love_num"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textColor="@color/color_7147E6"
|
||||
android:textStyle="bold"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_14"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/view_buy_love"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_prize_icon"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="8dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/ic_love_token"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_lack_love" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_prize_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="5dp"
|
||||
android:drawableStart="@drawable/treasure_box_ic_diamond"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/color_FF9A1F"
|
||||
android:textSize="@dimen/sp_16"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_prize_icon"
|
||||
tools:text="10000" />
|
||||
|
||||
<com.coorchice.library.SuperTextView
|
||||
android:id="@+id/tv_buy"
|
||||
android:text="購買"
|
||||
android:textSize="@dimen/sp_14"
|
||||
android:textColor="@color/color_white"
|
||||
android:layout_width="152dp"
|
||||
android:layout_height="32dp"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/btn_box_buy"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
app:corner="@dimen/dp_18"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_prize_name" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatCheckBox
|
||||
android:id="@+id/cbPay"
|
||||
android:text="今日不再提示"
|
||||
android:textSize="@dimen/sp_10"
|
||||
android:textColor="@color/color_A3A3A3"
|
||||
android:layout_marginTop="@dimen/dp_16"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:button="@drawable/selector_select_box"
|
||||
android:paddingStart="@dimen/dp_6"
|
||||
android:paddingEnd="0dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_buy"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
@@ -0,0 +1,98 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/root_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="240dp"
|
||||
android:layout_height="240dp"
|
||||
android:background="@drawable/treasure_box_bg_love_lack"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.6" />
|
||||
|
||||
<View
|
||||
android:id="@+id/view_buy_love"
|
||||
android:layout_width="144dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_marginBottom="@dimen/dp_30"
|
||||
android:background="@drawable/treasure_box_buy_love"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@+id/view_bg"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:src="@drawable/treasure_box_ic_close"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@+id/view_bg" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_lack_love"
|
||||
android:text="獲得"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textColor="@color/color_7147E6"
|
||||
android:textStyle="bold"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_14"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/view_buy_love"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_prize_icon"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="8dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/ic_love_token"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_lack_love" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_prize_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="4dp"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/color_7147E6"
|
||||
android:textSize="@dimen/sp_16"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_prize_icon"
|
||||
tools:text="x100" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatCheckBox
|
||||
android:id="@+id/cbPay"
|
||||
android:text="今日不再提示"
|
||||
android:textSize="@dimen/sp_10"
|
||||
android:textColor="@color/color_A3A0AD"
|
||||
android:layout_marginTop="@dimen/dp_16"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:button="@drawable/selector_select_box"
|
||||
android:paddingStart="@dimen/dp_6"
|
||||
android:paddingEnd="0dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_prize_name"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
@@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/root_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="240dp"
|
||||
android:layout_height="300dp"
|
||||
android:background="@drawable/treasure_box_bg_love_lack"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.6" />
|
||||
|
||||
<View
|
||||
android:id="@+id/view_buy_love"
|
||||
android:layout_width="136dp"
|
||||
android:layout_height="44dp"
|
||||
android:layout_marginBottom="@dimen/dp_30"
|
||||
android:background="@drawable/treasure_box_buy_love"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@+id/view_bg" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:src="@drawable/treasure_box_ic_close"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@+id/view_bg" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_lack_love"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:text="可用愛心不足,請購買"
|
||||
android:textColor="@color/color_7147E6"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/view_buy_love" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_prize_icon"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="8dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/ic_love_token"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_lack_love" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_prize_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="12dp"
|
||||
android:drawableStart="@drawable/treasure_box_ic_diamond"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/color_FF9A1F"
|
||||
android:textSize="@dimen/sp_16"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_prize_icon"
|
||||
tools:text="10000" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_add_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_30"
|
||||
android:layout_marginTop="@dimen/dp_4"
|
||||
android:background="@drawable/ic_add_num_bg"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_prize_name">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_sub"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginStart="@dimen/dp_4"
|
||||
android:layout_marginTop="@dimen/dp_4"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/treasure_box_sub_normal" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edit_num"
|
||||
android:layout_width="66dp"
|
||||
android:layout_height="23dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:background="@null"
|
||||
android:gravity="center"
|
||||
android:inputType="number"
|
||||
android:maxLength="4"
|
||||
android:minWidth="40dp"
|
||||
android:text="1"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_add"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginTop="@dimen/dp_4"
|
||||
android:layout_marginEnd="@dimen/dp_2"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/treasure_box_add_normal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<com.coorchice.library.SuperTextView
|
||||
android:id="@+id/tv_buy"
|
||||
android:layout_width="152dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:background="@drawable/btn_box_buy"
|
||||
android:gravity="center"
|
||||
android:text="購買"
|
||||
android:textColor="@color/color_white"
|
||||
android:textSize="@dimen/sp_14"
|
||||
app:corner="@dimen/dp_18"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ll_add_num" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
@@ -0,0 +1,8 @@
|
||||
package com.yizhuan.treasure_box.bean
|
||||
|
||||
data class UserTicketInfo(
|
||||
val diamond: Double = 0.0,
|
||||
val ticketNum: Int = 0,
|
||||
val ticketPrice: Double = 0.0,
|
||||
val uid: Int = 0
|
||||
)
|
@@ -9,6 +9,7 @@ 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.treasure_box.bean.UserTicketInfo;
|
||||
import com.yizhuan.xchat_android_core.R;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.base.BaseModel;
|
||||
@@ -82,6 +83,20 @@ public class BoxModel extends BaseModel implements IBoxModel {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<UserTicketInfo> getUserTicket() {
|
||||
return api.getUserTicket()
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleSchedulers());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<UserTicketInfo> buyTicket(int num) {
|
||||
return api.buyTicket(num)
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleSchedulers());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<OpenBoxResult> openBox(int boxType, int keyNum, boolean sendMessage) {
|
||||
if (AvRoomDataManager.get().mCurrentRoomInfo == null) {
|
||||
@@ -199,6 +214,21 @@ public class BoxModel extends BaseModel implements IBoxModel {
|
||||
@Query("sortType") String sortType,
|
||||
@Query("uid") long uid);
|
||||
|
||||
/**
|
||||
* 获取用户vo(门票)
|
||||
*
|
||||
*/
|
||||
@GET("/findLove/user")
|
||||
Single<ServiceResult<UserTicketInfo>> getUserTicket();
|
||||
|
||||
/**
|
||||
* 购买门票
|
||||
*
|
||||
*/
|
||||
@FormUrlEncoded
|
||||
@POST("/findLove/buyTicket")
|
||||
Single<ServiceResult<UserTicketInfo>> buyTicket(@Field("num") int num);
|
||||
|
||||
/**
|
||||
* 寻爱抽奖
|
||||
*
|
||||
|
@@ -9,6 +9,7 @@ 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.treasure_box.bean.UserTicketInfo;
|
||||
import com.yizhuan.xchat_android_core.base.IModel;
|
||||
import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
|
||||
|
||||
@@ -34,6 +35,20 @@ public interface IBoxModel extends IModel {
|
||||
*/
|
||||
Single<List<PrizeNewInfo>> openBoxDraw(int keyNum, boolean sendMessage);
|
||||
|
||||
/**
|
||||
* 获取用户vo(门票)
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Single<UserTicketInfo> getUserTicket();
|
||||
|
||||
/**
|
||||
* 购买门票
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Single<UserTicketInfo> buyTicket(int num);
|
||||
|
||||
/**
|
||||
* 开箱子
|
||||
*
|
||||
|
@@ -1,10 +1,13 @@
|
||||
package com.yizhuan.xchat_android_library.common
|
||||
|
||||
object SpConstants {
|
||||
const val TAB_INFO_LIST = "tab_info_list"
|
||||
const val SET_PASSWORD = "set_password"
|
||||
const val LOGIN_TYPE = "login_type"
|
||||
const val GOOGLE = "google"
|
||||
const val FACEBOOK = "facebook"
|
||||
const val LINE = "line"
|
||||
const val FAIRY_BUY_DEBRIS = "fairy_buy_debris"
|
||||
const val FAIRY_BUY_SUCCESS = "fairy_buy_success"
|
||||
const val BOX_BUY_LOVE = "box_buy_love"
|
||||
const val BOX_BUY_SUCCESS = "box_buy_success"
|
||||
}
|