diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ba4b2e2f7..81773d268 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -816,10 +816,6 @@
android:name=".treasure_box.activity.TreasureBoxActivity"
android:theme="@style/treasure_box_activity" />
-
-
-
-
-
-
-
diff --git a/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/activity/TreasureBoxHonourActivity.java b/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/activity/TreasureBoxHonourActivity.java
deleted file mode 100644
index f38d23211..000000000
--- a/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/activity/TreasureBoxHonourActivity.java
+++ /dev/null
@@ -1,318 +0,0 @@
-package com.mango.moshen.treasure_box.activity;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ObjectAnimator;
-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;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.view.animation.AccelerateDecelerateInterpolator;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import com.netease.nim.uikit.StatusBarUtil;
-import com.netease.nim.uikit.common.util.sys.ScreenUtil;
-import com.mango.moshen.R;
-import com.mango.moshen.base.BaseBindingActivity;
-import com.mango.moshen.databinding.ActivityTreasureBoxHonourBinding;
-import com.mango.moshen.ui.utils.ImageLoadUtils;
-import com.mango.moshen.ui.webview.DialogWebViewActivity;
-import com.mango.treasure_box.bean.PrizeInfo;
-import com.mango.treasure_box.model.BoxModel;
-import com.mango.treasure_box.model.IBoxModel;
-import com.mango.core.DemoCache;
-import com.mango.core.UriProvider;
-import com.mango.core.manager.IMNetEaseManager;
-import com.mango.core.manager.RoomEvent;
-import com.mango.core.pay.PayModel;
-import com.mango.core.pay.bean.WalletInfo;
-import com.mango.core.utils.StringUtils;
-import com.mango.xchat_android_library.annatation.ActLayoutRes;
-import com.mango.xchat_android_library.utils.FormatUtils;
-import com.mango.xchat_android_library.utils.SingleToastUtil;
-import com.mango.xchat_android_library.utils.TextWatcherWrapper;
-
-import java.util.ArrayList;
-import java.util.concurrent.TimeUnit;
-
-import io.reactivex.Observable;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-
-@ActLayoutRes(R.layout.activity_treasure_box_honour)
-public class TreasureBoxHonourActivity extends BaseBindingActivity {
- 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 ObjectAnimator translationXAnimator;
- private ObjectAnimator translationYAnimator;
- private int boxType = IBoxModel.BOX_TYPE_HONOUR;
- private int height;
- private int sendMessageSwitchLevel;
-
- public static void start(Context context) {
- Intent starter = new Intent(context, TreasureBoxHonourActivity.class);
- context.startActivity(starter);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //这里的height用MATCH_PARENT状态栏会被顶上去,不知道什么鬼
- height = ScreenUtil.screenHeight - ScreenUtil.getStatusBarHeight(context);
- getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ScreenUtil.screenHeight - ScreenUtil.getStatusBarHeight(context));
- getWindow().setGravity(Gravity.BOTTOM);
- subscribeEvent();
- }
-
- @Override
- protected void init() {
- mBinding.setClick(this);
- translationXAnimator = ObjectAnimator.ofFloat(mBinding.ivGiftAnim, "translationX", 0,
- ScreenUtil.screenWidth / 2f - ScreenUtil.dip2px(15 + 19)).setDuration(100);
- translationXAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
- translationXAnimator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mBinding.ivGiftAnim.setVisibility(View.GONE);
- }
- });
- mBinding.ivBox.post(() -> {
- translationYAnimator = ObjectAnimator.ofFloat(mBinding.ivGiftAnim, "translationY", 0,
- height - (mBinding.ivBox.getBottom() + mBinding.ivBox.getTop()) / 2f - ScreenUtil.dip2px(55)).setDuration(100);
- translationYAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
- });
- WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo();
- 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);
- mBinding.tvContinuousNum.setText("消耗" + num * 10);
- }
- });
- looperPrize();
- looperHintPrize();
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- loadKeyInfo();
- }
-
- @SuppressLint("CheckResult")
- private void loadKeyInfo() {
- BoxModel.get()
- .getKeyInfo(boxType)
- .compose(bindToLifecycle())
- .subscribe(keyInfo -> {
- changeKeyNum(keyInfo.getKeyNum());
- price = keyInfo.getKeyPrice();
- sendMessageSwitchLevel = keyInfo.getSendMessageSwitchLevel();
- });
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.root_view:
- finish();
- break;
- case R.id.iv_open:
- openBox(StringUtils.toInt(mBinding.editNum.getText().toString()));
- break;
- case R.id.iv_more:
- //new BoxMoreDialog(context, sendMessageSwitchLevel).openDialog();
- break;
- case R.id.tv_rank:
- //BoxRankingActivity.start(this);
- break;
- case R.id.iv_sub:
- mBinding.editNum.setText(String.valueOf(Math.max(StringUtils.toInt(mBinding.editNum.getText().toString(), 0) - 1, 1)));
- break;
- case R.id.iv_add:
- mBinding.editNum.setText(String.valueOf(Math.min((StringUtils.toInt(mBinding.editNum.getText().toString(), 0) + 1), 9999)));
- break;
- case R.id.view_bg:
- case R.id.iv_title:
- //do nothing
- break;
- default:
- break;
- }
- }
-
- /**
- * 检查钥匙(锤子)数量
- *
- * @param count 想要使用的数量
- * @return true 表示数量不足,无法进行下一步操作
- * false 表示数量没问题,可以继续操作
- */
- private boolean checkKeyNum(int count) {
- if (count == 0) {
- SingleToastUtil.showToast("开启数量不能为0!");
- return true;
- }
- if (keyNum < count) {
- getDialogManager().showOkCancelDialog("参与活动获得流星", "去参与",
- () -> DialogWebViewActivity.start(context, UriProvider.getBoxKey()));
- return true;
- }
- return false;
- }
-
- @SuppressLint("CheckResult")
- private void openBox(int count) {
- if (checkKeyNum(count)) {
- return;
- }
- mBinding.ivOpen.setEnabled(false);
- mBinding.svgaOpen.startAnimation();
- BoxModel.get()
- .openBox(boxType, count, DemoCache.readNeedBoxMsg())
- .compose(bindToLifecycle())
- .doOnError(throwable -> {
- mBinding.ivOpen.setEnabled(true);
- toast(throwable.getMessage());
- })
- .toObservable()
- .flatMap(openBoxResult -> {
- mBinding.ivOpen.setEnabled(true);
- changeKeyNum(openBoxResult.getRemainKeyNum());
- cacheList.addAll(openBoxResult.getPrizeItemList());
- return Observable.fromIterable(openBoxResult.getPrizeItemList());
- })
- .filter(prizeInfo -> prizeInfo.getPrizeLevel() > 2)
- .subscribe(prizeInfo -> hintPrizeCacheList.add(prizeInfo));
- }
-
- @SuppressLint("CheckResult")
- private void looperPrize() {
- Observable.interval(0, 100, TimeUnit.MILLISECONDS)
- .compose(bindToLifecycle())
- .observeOn(AndroidSchedulers.mainThread())
- .filter(aLong -> cacheList.size() > 0)
- .subscribe(aLong -> {
- PrizeInfo prizeInfo = cacheList.get(0);
- String url = prizeInfo.getPrizeImgUrl();
- if (cacheList.size() > 0) cacheList.remove(0);
- if (!TextUtils.isEmpty(url)) {
- if (translationXAnimator != null) translationXAnimator.start();
- if (translationYAnimator != null) translationYAnimator.start();
- mBinding.ivGiftAnim.setVisibility(View.VISIBLE);
- mBinding.svgaGiftBg.startAnimation();
- ImageLoadUtils.loadImage(context, url, mBinding.ivGiftAnim);
- }
- }
- , e -> looperPrize());//出错了继续looper......
-
- }
-
- @SuppressLint("CheckResult")
- private void looperHintPrize() {
- Observable.interval(0, 250, TimeUnit.MILLISECONDS)
- .compose(bindToLifecycle())
- .observeOn(AndroidSchedulers.mainThread())
- .filter(aLong -> hintPrizeCacheList.size() > 0)
- .subscribe(aLong -> addPrizeHintView(hintPrizeCacheList.remove(0))
- , e -> looperHintPrize());//出错了继续looper......
- }
-
- private void addPrizeHintView(PrizeInfo prizeInfo) {
- mBinding.llPrizeHint.removeCallbacks(removeRunnable);
- mBinding.llPrizeHint.postDelayed(removeRunnable, 3000);
- LinearLayout linearLayout = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.item_box_prize_hint, null);
- ViewGroup.MarginLayoutParams layoutParams = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ScreenUtil.dip2px(21));
- layoutParams.setMargins(0, 0, 0, ScreenUtil.dip2px(5));
- linearLayout.setLayoutParams(layoutParams);
- switch (prizeInfo.getPrizeLevel()) {
- case 3:
- default:
- linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v3);
- break;
- case 4:
- linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v4);
- break;
- case 5:
- linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v5);
- break;
- }
- mBinding.llPrizeHint.addView(linearLayout);
- if (mBinding.llPrizeHint.getChildCount() > 6) {
- mBinding.llPrizeHint.removeViewAt(0);
- }
- for (int i = 0; i < mBinding.llPrizeHint.getChildCount(); i++) {
- ObjectAnimator.ofFloat(mBinding.llPrizeHint.getChildAt(i), "translationY", ScreenUtil.dip2px(21), 0)
- .setDuration(200)
- .start();
- }
-
- ((TextView) linearLayout.findViewById(R.id.tv_prize_name)).setText(prizeInfo.getPrizeName());
- ((TextView) linearLayout.findViewById(R.id.tv_prize_num)).setText("x" + prizeInfo.getPrizeNum());
- }
-
- /**
- * 更新钥匙(锤子)数量
- *
- * @param num
- */
- private void changeKeyNum(int num) {
- keyNum = num;
- mBinding.tvKeyNum.setText(keyNum + "");
- }
-
- /**
- * 更新钱包
- *
- * @param g
- */
- private void setGold(double g) {
- mBinding.tvDiamondNum.setText(FormatUtils.formatBigInteger(g));
- PayModel.get().getCurrentWalletInfo().setDiamondNum(g);
- }
-
- @SuppressLint("CheckResult")
- private void subscribeEvent() {
- //更新钻石数量和被踢出房间退出
- IMNetEaseManager.get().getChatRoomEventObservable()
- .compose(bindToLifecycle())
- .subscribe(roomEvent -> {
- switch (roomEvent.getEvent()) {
- case RoomEvent.WALLET_UPDATE:
- setGold(roomEvent.getWalletInfo().getDiamondNum());
- break;
- case RoomEvent.KICK_OUT_ROOM:
- finish();
- break;
- }
- });
- }
-
-
- @Override
- protected boolean needSteepStateBar() {
- return true;
- }
-
- @Override
- protected void setStatusBar() {
- super.setStatusBar();
- StatusBarUtil.transparencyBar(this);
- StatusBarUtil.StatusBarLightMode(this);
- }
-
-}
diff --git a/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/fragment/BoxRuleFragment.kt b/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/fragment/BoxRuleFragment.kt
index 21844dacd..69b09adb1 100644
--- a/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/fragment/BoxRuleFragment.kt
+++ b/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/fragment/BoxRuleFragment.kt
@@ -6,18 +6,14 @@ import android.widget.ImageView
import androidx.recyclerview.widget.LinearLayoutManager
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
-import com.mango.core.auth.AuthModel
import com.mango.moshen.R
import com.mango.moshen.base.BaseViewBindingFragment
import com.mango.moshen.common.EmptyViewHelper
-import com.mango.moshen.databinding.FragmentBoxRecordBinding
import com.mango.moshen.databinding.FragmentBoxRuleBinding
import com.mango.moshen.ui.utils.RVDelegate
import com.mango.moshen.ui.utils.load
-import com.mango.treasure_box.bean.PrizeInfo
+import com.mango.treasure_box.bean.BoxRuleItemInfo
import com.mango.treasure_box.model.BoxModel
-import java.text.SimpleDateFormat
-import java.util.*
class BoxRuleFragment : BaseViewBindingFragment() {
@@ -30,56 +26,43 @@ class BoxRuleFragment : BaseViewBindingFragment() {
}
}
- private lateinit var adapter: BaseQuickAdapter
- private var page = 1
- private lateinit var rvDelegate: RVDelegate
- private val pageSize = 20
- private val format = SimpleDateFormat("MM-dd HH:mm", Locale.CHINA)
+ private lateinit var adapter: BaseQuickAdapter
+ private lateinit var rvDelegate: RVDelegate
override fun init() {
adapter =
- object : BaseQuickAdapter(R.layout.item_box_prize_record) {
- override fun convert(helper: BaseViewHolder, item: PrizeInfo) {
- helper.getView(R.id.iv_prize_pic).load(item.prizeImgUrl)
+ object : BaseQuickAdapter(R.layout.item_box_rule) {
+ override fun convert(helper: BaseViewHolder, item: BoxRuleItemInfo) {
+ helper.getView(R.id.iv_prize_pic).load(item.prizeUrl)
helper.setText(R.id.tv_prize_name, item.prizeName)
- .setText(R.id.tv_prize_num, "x${item.prizeNum}")
- .setText(R.id.tv_prize_time, format.format(item.createTime))
+ .setText(R.id.tv_diamond, "${item.platformValue}")
+ .setText(R.id.tv_probability, "${item.showRate}%")
}
}
- rvDelegate = RVDelegate.Builder()
+ rvDelegate = RVDelegate.Builder()
.setAdapter(adapter)
.setRecyclerView(binding.recyclerView)
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无记录"))
.setLayoutManager(LinearLayoutManager(mContext))
.setRefreshLayout(binding.swipeRefresh)
- .setPageSize(pageSize)
.build()
- adapter.setOnLoadMoreListener({ loadData(false) }, binding.recyclerView)
-
binding.swipeRefresh.setOnRefreshListener {
- loadData(true)
+ loadData()
}
- loadData(true)
+ loadData()
}
@SuppressLint("CheckResult")
- private fun loadData(isRefresh: Boolean) {
- binding.swipeRefresh.isRefreshing = isRefresh
-
- if (isRefresh) {
- page = 1
- } else {
- page++
- }
-
+ private fun loadData() {
+ binding.swipeRefresh.isRefreshing = true
BoxModel.get()
- .getPrizeRecord(page, pageSize, "time", AuthModel.get().currentUid)
+ .openBoxRule
.compose(bindToLifecycle())
.subscribe({
- rvDelegate.loadData(it, isRefresh)
+ rvDelegate.setNewData(it)
}, {
it.printStackTrace()
})
diff --git a/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/fragment/ChooseTreasureBoxDialogFragment.java b/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/fragment/ChooseTreasureBoxDialogFragment.java
deleted file mode 100644
index 7b389fc7f..000000000
--- a/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/fragment/ChooseTreasureBoxDialogFragment.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package com.mango.moshen.treasure_box.fragment;
-
-import android.app.Dialog;
-import android.os.Bundle;
-import android.util.DisplayMetrics;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.constraintlayout.widget.ConstraintLayout;
-import androidx.fragment.app.DialogFragment;
-
-import com.coorchice.library.utils.LogUtils;
-import com.mango.moshen.R;
-import com.mango.moshen.ui.webview.DialogWebViewActivity;
-import com.mango.core.UriProvider;
-import com.mango.core.manager.AvRoomDataManager;
-import com.mango.core.statistic.StatisticManager;
-import com.mango.core.statistic.protocol.StatisticsProtocol;
-import com.mango.xchat_android_library.utils.TimeUtils;
-
-public class ChooseTreasureBoxDialogFragment extends DialogFragment implements View.OnClickListener {
-
- private ConstraintLayout clBoxNormal, clBoxHonour;
-
- private OnTreasureBoxChooseListener onTreasureBoxChooseListener;
-
- private TextView tvOpenTime;
-
- private String mOpenTime;
-
- private TextView mTvOpenHonour;
-
- public ChooseTreasureBoxDialogFragment(String openTime) {
- this.mOpenTime = openTime;
- }
-
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_choose_treasure_box_dialog, container);
- getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题
- if (getDialog().getWindow() != null) {
- getDialog().getWindow().setBackgroundDrawableResource(android.R.color.transparent);// 透明
- }
- return view;
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- clBoxNormal = view.findViewById(R.id.cl_box_normal);
- clBoxHonour = view.findViewById(R.id.cl_box_honour);
- tvOpenTime = view.findViewById(R.id.tv_open_time);
- mTvOpenHonour = view.findViewById(R.id.tv_open_honour);
- view.findViewById(R.id.iv_close).setOnClickListener(this);
- clBoxNormal.setOnClickListener(this);
- tvOpenTime.setText("限时 "+ mOpenTime);
-// String mOpenTime = "11:10-02:00";
- int startTime = Integer.parseInt(mOpenTime.substring(0,mOpenTime.indexOf("-")).replace(":",""));
- int endTime = Integer.parseInt(mOpenTime.substring(mOpenTime.indexOf("-") + 1).replace(":",""));
- LogUtils.e("startTime"+startTime);
- LogUtils.e("endTime"+endTime);
- LogUtils.e("范围:"+TimeUtils.getTimeLimit(startTime,endTime));
-
- mTvOpenHonour.setEnabled(TimeUtils.getTimeLimit(startTime,endTime));
- if (TimeUtils.getTimeLimit(startTime,endTime)){
- clBoxHonour.setOnClickListener(this);
- }
- view.findViewById(R.id.ll_get_key).setOnClickListener(v -> DialogWebViewActivity.start(getContext(), UriProvider.getBoxKey()));
- }
-
- @Override
- public void onStart() {
- super.onStart();
- Dialog dialog = getDialog();
- if (dialog != null) {
- DisplayMetrics dm = new DisplayMetrics();
- if (getActivity() != null && getActivity().getWindowManager() != null
- && dialog.getWindow() != null) {
- getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
- dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
- dialog.getWindow().setGravity(Gravity.CENTER);
- }
- }
-
- }
-
- @Override
- public void onClick(View view) {
- int id = view.getId();
- if (id == R.id.iv_close) {
- dismiss();
- } else if (id == R.id.cl_box_normal) {
- if (onTreasureBoxChooseListener != null) {
- if (AvRoomDataManager.get().isCpRoom()) {
- StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_CP_ROOM_SMASHEGG_CHOOSE, "开始砸金蛋-陪伴房");
- } else {
- StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_MP_ROOM_SMASHEGG_CHOOSE, "开始砸金蛋-多人房");
- }
- onTreasureBoxChooseListener.onBoxClick(0);
- }
- dismiss();
- } else if (id == R.id.cl_box_honour) {
- if (onTreasureBoxChooseListener != null) {
- if (AvRoomDataManager.get().isCpRoom()) {
- StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_CP_ROOM_SMASHEGG_CHOOSE, "开始砸至尊蛋-陪伴房");
- } else {
- StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_MP_ROOM_SMASHEGG_CHOOSE, "开始砸至尊蛋-多人房");
- }
- onTreasureBoxChooseListener.onBoxClick(1);
- }
- dismiss();
- }
- }
-
- public interface OnTreasureBoxChooseListener {
- /**
- * @param type 选择的宝箱类型 0 黄金(原始) 1 钻石
- */
- void onBoxClick(int type);
- }
-
- public void setOnTreasureBoxChooseListener(OnTreasureBoxChooseListener onTreasureBoxChooseListener) {
- this.onTreasureBoxChooseListener = onTreasureBoxChooseListener;
- }
-}
diff --git a/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/widget/GoldBoxHelper.java b/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/widget/GoldBoxHelper.java
index 872c1c4cf..75af27ee5 100644
--- a/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/widget/GoldBoxHelper.java
+++ b/app/src/module_treasure_box/java/com/mango/moshen/treasure_box/widget/GoldBoxHelper.java
@@ -3,9 +3,7 @@ package com.mango.moshen.treasure_box.widget;
import android.content.Context;
import androidx.annotation.Nullable;
-import androidx.fragment.app.FragmentActivity;
-import com.mango.core.DemoCache;
import com.mango.core.initial.InitialModel;
import com.mango.core.initial.bean.InitInfo;
import com.mango.core.level.UserLevelVo;
@@ -15,10 +13,6 @@ import com.mango.core.super_admin.util.SuperAdminUtil;
import com.mango.core.user.UserModel;
import com.mango.core.user.bean.UserInfo;
import com.mango.moshen.treasure_box.activity.TreasureBoxActivity;
-import com.mango.moshen.treasure_box.activity.TreasureBoxHonourActivity;
-import com.mango.moshen.treasure_box.fragment.ChooseTreasureBoxDialogFragment;
-import com.mango.xchat_android_library.utils.SingleToastUtil;
-import com.mango.xchat_android_library.utils.TimeUtils;
import io.reactivex.Single;
@@ -33,12 +27,6 @@ public class GoldBoxHelper {
.flatMap(boxInfo -> Single.just(!isShowBox(boxInfo.getOpenBoxSwitchLevelNo())));
}
- public static boolean isShowBox() {
- InitInfo initInfo = InitialModel.get().getCacheInitInfo();
- if (initInfo == null) return false;
- return isShowBox(initInfo.getOpenBoxSwitchLevelNo());
- }
-
private static boolean isShowBox(int switchLevelNo) {
if (SuperAdminUtil.isSuperAdmin()) {
return false;
@@ -60,31 +48,7 @@ public class GoldBoxHelper {
public static void handleBoxClick(Context context) {
- String openTime = GoldBoxHelper.getBoxOpenTime();
- if (openTime == null || openTime.isEmpty()) {
- SingleToastUtil.showToast("数据加载中,请稍后再试!");
- return;
- }
- int startTime = Integer.parseInt(openTime.substring(0, openTime.indexOf("-")).replace(":", ""));
- int endTime = Integer.parseInt(openTime.substring(openTime.indexOf("-") + 1).replace(":", ""));
-
- if (startTime != endTime && TimeUtils.getTimeLimit(startTime, endTime)) {
- ChooseTreasureBoxDialogFragment chooseTreasureBoxDialogFragment = new ChooseTreasureBoxDialogFragment(openTime);
- chooseTreasureBoxDialogFragment.setOnTreasureBoxChooseListener(type -> {
- if (type == 0) {// 幸运许愿池(默认)
- TreasureBoxActivity.start(context);
- } else if (type == 1) {// 梦幻许愿池
- TreasureBoxHonourActivity.start(context);
- }
- });
- chooseTreasureBoxDialogFragment.show(((FragmentActivity) context).getSupportFragmentManager(), "chooseTreasureBoxDialogFragment");
- } else {
- TreasureBoxActivity.start(context);
- }
- }
-
- public static boolean isShowDiamondBox() {
- return AvRoomDataManager.get().mBoxSwitchVo.isDiamondBoxSwitch();
+ TreasureBoxActivity.start(context);
}
@Nullable
@@ -93,12 +57,6 @@ public class GoldBoxHelper {
return AvRoomDataManager.get().mBoxSwitchVo.getOpenBoxIcon();
}
- @Nullable
- public static String getBoxOpenTime() {
- if (AvRoomDataManager.get().mBoxSwitchVo == null) return null;
- return AvRoomDataManager.get().mBoxSwitchVo.getDiamondBoxOpenTime();
- }
-
public static boolean isShowRadish() {
InitInfo initInfo = InitialModel.get().getCacheInitInfo();
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_rule_start.png b/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_rule_start.png
new file mode 100644
index 000000000..21103bc77
Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/icon_box_rule_start.png differ
diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_diamond.png b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_diamond.png
index d2bd1936f..067668387 100644
Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_diamond.png and b/app/src/module_treasure_box/res/drawable-xhdpi/treasure_box_diamond.png differ
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 3e44b09d5..62cd4fd27 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
@@ -20,13 +20,13 @@
android:id="@+id/view_bg"
android:layout_width="214dp"
android:layout_height="337dp"
- android:layout_marginTop="20dp"
android:background="@drawable/treasure_box_bg_normal"
android:onClick="@{click}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.4" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/module_treasure_box/res/layout/fragment_box_rule.xml b/app/src/module_treasure_box/res/layout/fragment_box_rule.xml
index a6a9d084a..36ed2c715 100644
--- a/app/src/module_treasure_box/res/layout/fragment_box_rule.xml
+++ b/app/src/module_treasure_box/res/layout/fragment_box_rule.xml
@@ -19,24 +19,53 @@
android:textColor="@color/white"
android:textSize="10sp" />
-
+
+
+
+
+
+
+
+
+ android:layout_height="match_parent"
+ android:layout_marginTop="2dp">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/module_treasure_box/res/layout/item_box_rule.xml b/app/src/module_treasure_box/res/layout/item_box_rule.xml
new file mode 100644
index 000000000..c639e45be
--- /dev/null
+++ b/app/src/module_treasure_box/res/layout/item_box_rule.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/src/model_treasure_box/java/com/mango/treasure_box/bean/BoxRuleItemInfo.java b/core/src/model_treasure_box/java/com/mango/treasure_box/bean/BoxRuleItemInfo.java
new file mode 100644
index 000000000..62bc895cb
--- /dev/null
+++ b/core/src/model_treasure_box/java/com/mango/treasure_box/bean/BoxRuleItemInfo.java
@@ -0,0 +1,91 @@
+package com.mango.treasure_box.bean;
+
+import java.io.Serializable;
+
+public class BoxRuleItemInfo implements Serializable {
+
+
+ /**
+ * prizeName :
+ * prizeImgUrl :
+ * prizeLevel : 1
+ * drawTime : 11111
+ */
+
+ private String prizeName;
+ private String prizeUrl;
+ private int prizeLevel;
+ private long createTime;
+ private int keyNum;
+ private int platformValue;
+ private int prizeNum;
+ private String showRate;
+
+ public BoxRuleItemInfo() {
+ }
+
+ public int getPlatformValue() {
+ return platformValue;
+ }
+
+ public void setPlatformValue(int platformValue) {
+ this.platformValue = platformValue;
+ }
+
+
+ public String getPrizeName() {
+ return prizeName;
+ }
+
+ public void setPrizeName(String prizeName) {
+ this.prizeName = prizeName;
+ }
+
+ public String getPrizeUrl() {
+ return prizeUrl;
+ }
+
+ public void setPrizeUrl(String prizeImgUrl) {
+ this.prizeUrl = prizeImgUrl;
+ }
+
+ public int getPrizeLevel() {
+ return prizeLevel;
+ }
+
+ public void setPrizeLevel(int prizeLevel) {
+ this.prizeLevel = prizeLevel;
+ }
+
+ public long getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(long createTime) {
+ this.createTime = createTime;
+ }
+
+ public int getPrizeNum() {
+ return prizeNum;
+ }
+
+ public void setPrizeNum(int prizeNum) {
+ this.prizeNum = prizeNum;
+ }
+
+ public int getKeyNum() {
+ return keyNum;
+ }
+
+ public void setKeyNum(int keyNum) {
+ this.keyNum = keyNum;
+ }
+
+ public String getShowRate() {
+ return showRate;
+ }
+
+ public void setShowRate(String showRate) {
+ this.showRate = showRate;
+ }
+}
diff --git a/core/src/model_treasure_box/java/com/mango/treasure_box/model/BoxModel.java b/core/src/model_treasure_box/java/com/mango/treasure_box/model/BoxModel.java
index 0192c5276..65aa96d8a 100644
--- a/core/src/model_treasure_box/java/com/mango/treasure_box/model/BoxModel.java
+++ b/core/src/model_treasure_box/java/com/mango/treasure_box/model/BoxModel.java
@@ -1,6 +1,7 @@
package com.mango.treasure_box.model;
import com.mango.treasure_box.bean.BoxOpenStatusInfo;
+import com.mango.treasure_box.bean.BoxRuleItemInfo;
import com.mango.treasure_box.bean.HonourBuyKeyResultInfo;
import com.mango.treasure_box.bean.HonourKeyInfo;
import com.mango.treasure_box.bean.OpenBoxHonourResult;
@@ -85,6 +86,13 @@ public class BoxModel extends BaseModel implements IBoxModel {
.compose(RxHelper.handleCommon());
}
+ @Override
+ public Single> getOpenBoxRule() {
+ return api.getOpenBoxRule(2)
+ .compose(RxHelper.handleCommon());
+ }
+
+
@Override
public Single buyKey(int keyNum) {
return api.buyKey(keyNum, AuthModel.get().getCurrentUid())
@@ -169,6 +177,14 @@ public class BoxModel extends BaseModel implements IBoxModel {
@Query("sortType") String sortType,
@Query("uid") long uid);
+ /**
+ * 中奖记录列表
+ *
+ * @return 中奖纪录列表
+ */
+ @GET("box/getOpenBoxRule ")
+ Single>> getOpenBoxRule(@Query("boxType") int boxType);
+
/**
* 开宝箱
*
diff --git a/core/src/model_treasure_box/java/com/mango/treasure_box/model/IBoxModel.java b/core/src/model_treasure_box/java/com/mango/treasure_box/model/IBoxModel.java
index 1d960c1ad..5ec362ea5 100644
--- a/core/src/model_treasure_box/java/com/mango/treasure_box/model/IBoxModel.java
+++ b/core/src/model_treasure_box/java/com/mango/treasure_box/model/IBoxModel.java
@@ -1,6 +1,7 @@
package com.mango.treasure_box.model;
import com.mango.treasure_box.bean.BoxOpenStatusInfo;
+import com.mango.treasure_box.bean.BoxRuleItemInfo;
import com.mango.treasure_box.bean.HonourBuyKeyResultInfo;
import com.mango.treasure_box.bean.HonourKeyInfo;
import com.mango.treasure_box.bean.OpenBoxHonourResult;
@@ -17,6 +18,9 @@ import io.reactivex.Single;
public interface IBoxModel extends IModel {
+ int BOX_TYPE_NORMAL = 1;// 普通蛋
+ int BOX_TYPE_HONOUR = 2;// 至尊蛋
+
/**
* 获取开箱子配置图片
*
@@ -31,7 +35,7 @@ public interface IBoxModel extends IModel {
* @param sendMessage
* @return
*/
- Single openBox(int boxType,int keyNum, boolean sendMessage);
+ Single openBox(int boxType, int keyNum, boolean sendMessage);
/**
* 获取中奖记录
@@ -43,9 +47,11 @@ public interface IBoxModel extends IModel {
* @return
*/
Single> getPrizeRecord(int page,
- int pageSize,
- String sortType,
- long uid);
+ int pageSize,
+ String sortType,
+ long uid);
+
+ Single> getOpenBoxRule();
/**
* 购买钥匙
@@ -69,9 +75,6 @@ public interface IBoxModel extends IModel {
*/
Single>> getPrizes();
- int BOX_TYPE_NORMAL = 1;// 普通蛋
- int BOX_TYPE_HONOUR = 2;// 至尊蛋
-
/**
* 蛋开放状态
*/
@@ -86,17 +89,17 @@ public interface IBoxModel extends IModel {
* 至尊蛋抽奖
*/
Single openHonourBox(long uid,
- boolean sendMessage,
- long roomUid,
- int keyNum,
- String ticket);
+ boolean sendMessage,
+ long roomUid,
+ int keyNum,
+ String ticket);
/**
* 购买至尊蛋钥匙
*/
Single buyHonourKey(long uid,
- int keyNum,
- String ticket);
+ int keyNum,
+ String ticket);
/**
* 至尊蛋本期奖池