移除糖果树开奖礼物展示
This commit is contained in:
@@ -484,7 +484,7 @@ public class BaseRoomPresenter<V extends IBaseRoomView> extends BaseMvpPresenter
|
|||||||
.takeWhile(aBoolean -> !aBoolean && getMvpView() != null)
|
.takeWhile(aBoolean -> !aBoolean && getMvpView() != null)
|
||||||
.doOnNext(aBoolean -> getMvpView().noFollow())
|
.doOnNext(aBoolean -> getMvpView().noFollow())
|
||||||
//个人主播房新加的关注提醒弹窗,以后还会不会有呢???
|
//个人主播房新加的关注提醒弹窗,以后还会不会有呢???
|
||||||
.takeWhile(aBoolean -> !AvRoomDataManager.get().isSingleRoom())
|
.takeWhile(aBoolean -> AvRoomDataManager.get().isSingleRoom())
|
||||||
.delay(4, TimeUnit.MINUTES)
|
.delay(4, TimeUnit.MINUTES)
|
||||||
.single(false)
|
.single(false)
|
||||||
.flatMap(aBoolean -> PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), uid))
|
.flatMap(aBoolean -> PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), uid))
|
||||||
|
@@ -1,67 +1,54 @@
|
|||||||
package com.mango.moshen.treasure_box.activity;
|
package com.mango.moshen.treasure_box.activity;
|
||||||
|
|
||||||
import android.animation.Animator;
|
|
||||||
import android.animation.AnimatorListenerAdapter;
|
|
||||||
import android.animation.ObjectAnimator;
|
import android.animation.ObjectAnimator;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.view.animation.AccelerateDecelerateInterpolator;
|
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.fragment.app.Fragment;
|
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.DemoCache;
|
||||||
import com.mango.core.UriProvider;
|
import com.mango.core.UriProvider;
|
||||||
import com.mango.core.manager.IMNetEaseManager;
|
import com.mango.core.manager.IMNetEaseManager;
|
||||||
import com.mango.core.manager.RoomEvent;
|
import com.mango.core.manager.RoomEvent;
|
||||||
import com.mango.core.pay.PayModel;
|
import com.mango.core.pay.PayModel;
|
||||||
import com.mango.core.pay.bean.WalletInfo;
|
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.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.annatation.ActLayoutRes;
|
||||||
import com.mango.xchat_android_library.utils.FormatUtils;
|
import com.mango.xchat_android_library.utils.FormatUtils;
|
||||||
import com.mango.xchat_android_library.utils.SingleToastUtil;
|
import com.mango.xchat_android_library.utils.SingleToastUtil;
|
||||||
import com.mango.xchat_android_library.utils.TextWatcherWrapper;
|
import com.mango.xchat_android_library.utils.TextWatcherWrapper;
|
||||||
import com.tencent.qgame.animplayer.AnimConfig;
|
import com.netease.nim.uikit.StatusBarUtil;
|
||||||
import com.tencent.qgame.animplayer.inter.IAnimListener;
|
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||||
import com.tencent.qgame.animplayer.util.ScaleType;
|
import com.tencent.qgame.animplayer.util.ScaleType;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@@ -72,13 +59,9 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
|
|||||||
@ActLayoutRes(R.layout.activity_treasure_box)
|
@ActLayoutRes(R.layout.activity_treasure_box)
|
||||||
public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBoxBinding> implements View.OnClickListener {
|
public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBoxBinding> implements View.OnClickListener {
|
||||||
private final Runnable removeRunnable = () -> mBinding.llPrizeHint.removeAllViews();
|
private final Runnable removeRunnable = () -> mBinding.llPrizeHint.removeAllViews();
|
||||||
private int price = 20;
|
|
||||||
private volatile int keyNum;
|
private volatile int keyNum;
|
||||||
private ArrayList<PrizeInfo> cacheList = new ArrayList<>();
|
private final ArrayList<PrizeInfo> hintPrizeCacheList = new ArrayList<>();
|
||||||
private ArrayList<PrizeInfo> hintPrizeCacheList = new ArrayList<>();
|
private final int boxType = IBoxModel.BOX_TYPE_NORMAL;
|
||||||
private ObjectAnimator translationXAnimator;
|
|
||||||
private ObjectAnimator translationYAnimator;
|
|
||||||
private int boxType = IBoxModel.BOX_TYPE_NORMAL;
|
|
||||||
private int height;
|
private int height;
|
||||||
private int sendMessageSwitchLevel;
|
private int sendMessageSwitchLevel;
|
||||||
|
|
||||||
@@ -111,20 +94,6 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
|||||||
@Override
|
@Override
|
||||||
protected void init() {
|
protected void init() {
|
||||||
mBinding.setClick(this);
|
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();
|
WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo();
|
||||||
if (walletInfo != null) {
|
if (walletInfo != null) {
|
||||||
mBinding.tvDiamondNum.setText(FormatUtils.formatBigInteger(walletInfo.getDiamondNum()));
|
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.startPlay(getAssets(), "vap/gold_box_open.mp4");
|
||||||
mBinding.ivBox.setLoop(999999);
|
mBinding.ivBox.setLoop(999999);
|
||||||
mBinding.ivBox.setScaleType(ScaleType.CENTER_CROP);
|
mBinding.ivBox.setScaleType(ScaleType.CENTER_CROP);
|
||||||
looperPrize();
|
|
||||||
looperHintPrize();
|
looperHintPrize();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,7 +130,6 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
|||||||
.compose(bindToLifecycle())
|
.compose(bindToLifecycle())
|
||||||
.subscribe(keyInfo -> {
|
.subscribe(keyInfo -> {
|
||||||
changeKeyNum(keyInfo.getKeyNum());
|
changeKeyNum(keyInfo.getKeyNum());
|
||||||
price = keyInfo.getKeyPrice();
|
|
||||||
sendMessageSwitchLevel = keyInfo.getSendMessageSwitchLevel();
|
sendMessageSwitchLevel = keyInfo.getSendMessageSwitchLevel();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -272,36 +239,14 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
|||||||
.toObservable()
|
.toObservable()
|
||||||
.delay(startTime - System.currentTimeMillis() + 300, TimeUnit.MILLISECONDS)
|
.delay(startTime - System.currentTimeMillis() + 300, TimeUnit.MILLISECONDS)
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.flatMap(openBoxResult -> {
|
.doOnNext(openBoxResult ->{
|
||||||
mBinding.ivOpen.setEnabled(true);
|
mBinding.ivOpen.setEnabled(true);
|
||||||
changeKeyNum(openBoxResult.getRemainKeyNum());
|
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();
|
mBinding.svgaGiftBg.startAnimation();
|
||||||
ImageLoadUtils.loadImage(context, url, mBinding.ivGiftAnim);
|
})
|
||||||
}
|
.flatMap(openBoxResult -> Observable.fromIterable(openBoxResult.getPrizeItemList()))
|
||||||
}
|
.filter(prizeInfo -> prizeInfo.getPrizeLevel() > 2)
|
||||||
, e -> looperPrize());//出错了继续looper......
|
.subscribe(hintPrizeCacheList::add);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("CheckResult")
|
@SuppressLint("CheckResult")
|
||||||
|
@@ -106,15 +106,6 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="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
|
<TextView
|
||||||
android:id="@+id/tv_continuous_num"
|
android:id="@+id/tv_continuous_num"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
Reference in New Issue
Block a user