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); /** * 至尊蛋本期奖池