移除糖果树开奖礼物展示
This commit is contained in:
@@ -484,7 +484,7 @@ public class BaseRoomPresenter<V extends IBaseRoomView> extends BaseMvpPresenter
|
||||
.takeWhile(aBoolean -> !aBoolean && getMvpView() != null)
|
||||
.doOnNext(aBoolean -> getMvpView().noFollow())
|
||||
//个人主播房新加的关注提醒弹窗,以后还会不会有呢???
|
||||
.takeWhile(aBoolean -> !AvRoomDataManager.get().isSingleRoom())
|
||||
.takeWhile(aBoolean -> AvRoomDataManager.get().isSingleRoom())
|
||||
.delay(4, TimeUnit.MINUTES)
|
||||
.single(false)
|
||||
.flatMap(aBoolean -> PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), uid))
|
||||
|
@@ -1,67 +1,54 @@
|
||||
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 androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.mango.core.room.treasure_box.event.RefreshBoxRankingEvent;
|
||||
import com.mango.core.statistic.StatisticManager;
|
||||
import com.mango.core.statistic.protocol.StatisticsProtocol;
|
||||
import com.mango.moshen.treasure_box.fragment.BoxRecordFragment;
|
||||
import com.mango.moshen.treasure_box.fragment.BoxRuleFragment;
|
||||
import com.mango.moshen.ui.utils.ImageLoadKt;
|
||||
import com.mango.moshen.ui.widget.SimpleAnimListener;
|
||||
import com.mango.treasure_box.event.MoreClickEvent;
|
||||
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.ActivityTreasureBoxBinding;
|
||||
import com.mango.moshen.treasure_box.widget.dialog.BoxMoreDialog;
|
||||
import com.mango.moshen.ui.utils.ImageLoadUtils;
|
||||
import com.mango.moshen.ui.webview.DialogWebViewActivity;
|
||||
import com.mango.moshen.utils.UserUtils;
|
||||
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.statistic.StatisticManager;
|
||||
import com.mango.core.statistic.protocol.StatisticsProtocol;
|
||||
import com.mango.core.utils.StringUtils;
|
||||
import com.mango.moshen.R;
|
||||
import com.mango.moshen.base.BaseBindingActivity;
|
||||
import com.mango.moshen.databinding.ActivityTreasureBoxBinding;
|
||||
import com.mango.moshen.treasure_box.fragment.BoxRecordFragment;
|
||||
import com.mango.moshen.treasure_box.fragment.BoxRuleFragment;
|
||||
import com.mango.moshen.treasure_box.widget.dialog.BoxMoreDialog;
|
||||
import com.mango.moshen.ui.webview.DialogWebViewActivity;
|
||||
import com.mango.moshen.utils.UserUtils;
|
||||
import com.mango.treasure_box.bean.PrizeInfo;
|
||||
import com.mango.treasure_box.event.MoreClickEvent;
|
||||
import com.mango.treasure_box.model.BoxModel;
|
||||
import com.mango.treasure_box.model.IBoxModel;
|
||||
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 com.tencent.qgame.animplayer.AnimConfig;
|
||||
import com.tencent.qgame.animplayer.inter.IAnimListener;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.tencent.qgame.animplayer.util.ScaleType;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -72,13 +59,9 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
@ActLayoutRes(R.layout.activity_treasure_box)
|
||||
public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBoxBinding> implements View.OnClickListener {
|
||||
private final Runnable removeRunnable = () -> mBinding.llPrizeHint.removeAllViews();
|
||||
private int price = 20;
|
||||
private volatile int keyNum;
|
||||
private ArrayList<PrizeInfo> cacheList = new ArrayList<>();
|
||||
private ArrayList<PrizeInfo> hintPrizeCacheList = new ArrayList<>();
|
||||
private ObjectAnimator translationXAnimator;
|
||||
private ObjectAnimator translationYAnimator;
|
||||
private int boxType = IBoxModel.BOX_TYPE_NORMAL;
|
||||
private final ArrayList<PrizeInfo> hintPrizeCacheList = new ArrayList<>();
|
||||
private final int boxType = IBoxModel.BOX_TYPE_NORMAL;
|
||||
private int height;
|
||||
private int sendMessageSwitchLevel;
|
||||
|
||||
@@ -111,20 +94,6 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
@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(10 + 19)).setDuration(100);
|
||||
translationYAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
|
||||
});
|
||||
WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo();
|
||||
if (walletInfo != null) {
|
||||
mBinding.tvDiamondNum.setText(FormatUtils.formatBigInteger(walletInfo.getDiamondNum()));
|
||||
@@ -145,7 +114,6 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
mBinding.ivBox.startPlay(getAssets(), "vap/gold_box_open.mp4");
|
||||
mBinding.ivBox.setLoop(999999);
|
||||
mBinding.ivBox.setScaleType(ScaleType.CENTER_CROP);
|
||||
looperPrize();
|
||||
looperHintPrize();
|
||||
}
|
||||
|
||||
@@ -162,7 +130,6 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(keyInfo -> {
|
||||
changeKeyNum(keyInfo.getKeyNum());
|
||||
price = keyInfo.getKeyPrice();
|
||||
sendMessageSwitchLevel = keyInfo.getSendMessageSwitchLevel();
|
||||
});
|
||||
}
|
||||
@@ -272,36 +239,14 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
.toObservable()
|
||||
.delay(startTime - System.currentTimeMillis() + 300, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.flatMap(openBoxResult -> {
|
||||
.doOnNext(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......
|
||||
|
||||
})
|
||||
.flatMap(openBoxResult -> Observable.fromIterable(openBoxResult.getPrizeItemList()))
|
||||
.filter(prizeInfo -> prizeInfo.getPrizeLevel() > 2)
|
||||
.subscribe(hintPrizeCacheList::add);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
|
@@ -106,15 +106,6 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_gift_anim"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_box"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_box"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_box"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_box" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_continuous_num"
|
||||
android:layout_width="wrap_content"
|
||||
|
Reference in New Issue
Block a user