Merge remote-tracking branch 'origin/dev_red_packet'
# Conflicts: # common/src/main/java/com/yunbao/common/http/PDLiveApi.java # common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java # common/src/main/res/values/strings.xml
This commit is contained in:
@@ -1403,6 +1403,16 @@ public class LiveAudienceActivity extends LiveActivity {
|
||||
manager.blindBoxAllServerNotify(event.getAllServerNotifyEvent());
|
||||
}
|
||||
break;
|
||||
case RED_PACKET:
|
||||
if (manager != null) {
|
||||
manager.redPacketManage(event.getRedPacketModel());
|
||||
}
|
||||
break;
|
||||
case RED_PACKET_SUPER_JACKPOT:
|
||||
if (manager != null) {
|
||||
manager.setRedPacketInfoModel(event.getRedPacketInfoModel());
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1644,7 +1644,11 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
case LIVE_END:
|
||||
endLive();
|
||||
break;
|
||||
|
||||
case RED_PACKET:
|
||||
if (manager != null) {
|
||||
mLiveRoomViewHolder.redPacketManage(event.getRedPacketModel());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
package com.yunbao.live.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -20,7 +15,10 @@ import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.bean.LiveGiftBean;
|
||||
@@ -31,9 +29,10 @@ import com.yunbao.common.interfaces.CommonCallback;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.GiftCacheUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.custom.GiftMarkView;
|
||||
import com.yunbao.live.dialog.SendRendPacketPopup;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
@@ -54,30 +53,32 @@ public class LiveGiftAdapter extends RecyclerView.Adapter<LiveGiftAdapter.Vh> {
|
||||
private ScaleAnimation mAnimation;
|
||||
private View mAnimView;
|
||||
private String mName1, mName2;
|
||||
boolean isTouch=true;
|
||||
boolean isTouch = true;
|
||||
private String mLiveUid;
|
||||
|
||||
public void setTouch(boolean touch) {
|
||||
isTouch = touch;
|
||||
}
|
||||
|
||||
public LiveGiftAdapter(Context context, LayoutInflater inflater, List<LiveGiftBean> list, String coinName) {
|
||||
public LiveGiftAdapter(Context context, LayoutInflater inflater, List<LiveGiftBean> list, String coinName, String liveUid) {
|
||||
mContext = context;
|
||||
mInflater = inflater;
|
||||
mList = list;
|
||||
mLiveUid = liveUid;
|
||||
mCoinName = coinName;
|
||||
mName1 = CommonAppConfig.getInstance().getCoinName();
|
||||
mName2 = CommonAppConfig.getInstance().getGoldCoinName();
|
||||
mOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if(!isTouch){
|
||||
if (!isTouch) {
|
||||
return;
|
||||
}
|
||||
Object tag = v.getTag();
|
||||
if (tag != null) {
|
||||
int position = (int) tag;
|
||||
LiveGiftBean bean = mList.get(position);
|
||||
if (!bean.isChecked()) {
|
||||
if (!bean.isChecked() && bean.getType() != 9999999) {
|
||||
if (!cancelChecked()) {
|
||||
if (mActionListener != null) {
|
||||
mActionListener.onCancel();
|
||||
@@ -196,7 +197,7 @@ public class LiveGiftAdapter extends RecyclerView.Adapter<LiveGiftAdapter.Vh> {
|
||||
tvRedpoint = (TextView) itemView.findViewById(R.id.tvRedpoint);
|
||||
mPayico = (ImageView) itemView.findViewById(R.id.pay_ico);
|
||||
expire = (TextView) itemView.findViewById(R.id.expire);
|
||||
mRadioButton.setOnClickListener(mOnClickListener);
|
||||
|
||||
mLoading = itemView.findViewById(R.id.gift_loading);
|
||||
mLoadingLayout = itemView.findViewById(R.id.gift_loading_layout);
|
||||
mLoadingLayout.setOnClickListener(v -> {
|
||||
@@ -208,20 +209,20 @@ public class LiveGiftAdapter extends RecyclerView.Adapter<LiveGiftAdapter.Vh> {
|
||||
mLoading.startAnimation(animation);
|
||||
LiveGiftBean bean = mList.get((Integer) v.getTag());
|
||||
GiftCacheUtil.getInstance().pause();
|
||||
GiftCacheUtil.getInstance().downloadGiftForId(mContext,bean, new CommonCallback<File>() {
|
||||
GiftCacheUtil.getInstance().downloadGiftForId(mContext, bean, new CommonCallback<File>() {
|
||||
@Override
|
||||
public void callback(File bean) {
|
||||
if(bean==null){
|
||||
if (bean == null) {
|
||||
ToastUtil.show(mContext.getString(R.string.load_failure_2));
|
||||
mLoading.setImageResource(R.mipmap.icon_download_gift);
|
||||
animation.setRepeatCount(0);
|
||||
animation.setDuration(0);
|
||||
animation.cancel();
|
||||
mLoading.setAnimation(animation);
|
||||
}else {
|
||||
} else {
|
||||
mLoadingLayout.setVisibility(View.GONE);
|
||||
}
|
||||
GiftCacheUtil.getInstance().restart();
|
||||
GiftCacheUtil.getInstance().restart();
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -235,16 +236,33 @@ public class LiveGiftAdapter extends RecyclerView.Adapter<LiveGiftAdapter.Vh> {
|
||||
}
|
||||
if (payload == null) {
|
||||
ImgLoader.display(mContext, bean.getIcon(), mIcon);
|
||||
bean.setView(mIcon);
|
||||
mName.setText(bean.getName());
|
||||
if (bean.getSendType() != null && bean.getSendType().equals("1")) {
|
||||
// mCoinName = mName2;
|
||||
mPayico.setImageResource(R.mipmap.gold_coin);
|
||||
if (bean.getType() == 9999999) {
|
||||
mPayico.setVisibility(View.GONE);
|
||||
mPrice.setText(mContext.getString(R.string.build_up_popularity));
|
||||
mPrice.setTextColor(Color.parseColor("#db8c4a"));
|
||||
ViewClicksAntiShake.clicksAntiShake(mRadioButton, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
new XPopup.Builder(mContext)
|
||||
.asCustom(new SendRendPacketPopup(mContext,mLiveUid ))
|
||||
.show();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
mRadioButton.setOnClickListener(mOnClickListener);
|
||||
mPrice.setTextColor(Color.parseColor("#c8c8c8"));
|
||||
mPayico.setVisibility(View.VISIBLE);
|
||||
bean.setView(mIcon);
|
||||
if (bean.getSendType() != null && bean.getSendType().equals("1")) {
|
||||
// mCoinName = mName2;
|
||||
mPayico.setImageResource(R.mipmap.gold_coin);
|
||||
} else {
|
||||
// mCoinName = mName1;
|
||||
mPayico.setImageResource(R.mipmap.diamond);
|
||||
mPayico.setImageResource(R.mipmap.diamond);
|
||||
}
|
||||
mPrice.setText(bean.getPrice());
|
||||
}
|
||||
mPrice.setText(bean.getPrice());
|
||||
|
||||
if (IMLoginManager.get(mContext).isNewUserGif() && position == 0 && bean.getTag() != null) {
|
||||
mPayico.setVisibility(View.GONE);
|
||||
@@ -295,10 +313,11 @@ public class LiveGiftAdapter extends RecyclerView.Adapter<LiveGiftAdapter.Vh> {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
mRadioButton.setTag(position);
|
||||
mRadioButton.doChecked(bean.isChecked());
|
||||
if (bean.getSwf()!=null&&bean.getSwf().isEmpty()) {
|
||||
if (bean.getSwf() != null && bean.getSwf().isEmpty()) {
|
||||
mLoadingLayout.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -29,9 +29,10 @@ public class LiveGiftPagerAdapter extends PagerAdapter {
|
||||
private static final int GIFT_COUNT = 8;//每页8个礼物
|
||||
private int mPage = -1;
|
||||
private ActionListener mActionListener;
|
||||
|
||||
public LiveGiftPagerAdapter(Context context, List<LiveGiftBean> giftList) {
|
||||
private String mLiveUid;
|
||||
public LiveGiftPagerAdapter(Context context, List<LiveGiftBean> giftList,String liveUid) {
|
||||
mContext = context;
|
||||
mLiveUid = liveUid;
|
||||
mViewList = new ArrayList<>();
|
||||
int fromIndex = 0;
|
||||
int size = giftList.size();
|
||||
@@ -74,7 +75,7 @@ public class LiveGiftPagerAdapter extends PagerAdapter {
|
||||
bean.setPage(i);
|
||||
list.add(bean);
|
||||
}
|
||||
LiveGiftAdapter adapter = new LiveGiftAdapter(mContext, inflater, list, coinName);
|
||||
LiveGiftAdapter adapter = new LiveGiftAdapter(mContext, inflater, list, coinName,mLiveUid);
|
||||
adapter.setActionListener(actionListener);
|
||||
recyclerView.setAdapter(adapter);
|
||||
mViewList.add(recyclerView);
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.yunbao.live.adapter;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.RedPacketGiftModel;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.views.RedPacketGiftViewHolder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RedPacketGiftAdapter extends RecyclerView.Adapter {
|
||||
private List<RedPacketGiftModel> packetGiftModels = new ArrayList<>();
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View redPacketGiftView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_red_packet_gift, parent, false);
|
||||
return new RedPacketGiftViewHolder(redPacketGiftView);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
if (holder instanceof RedPacketGiftViewHolder) {
|
||||
RedPacketGiftViewHolder redPacketGiftViewHolder = (RedPacketGiftViewHolder) holder;
|
||||
redPacketGiftViewHolder.showData(packetGiftModels.get(position));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return packetGiftModels.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加数据
|
||||
*
|
||||
* @param list
|
||||
*/
|
||||
public void addData(List<RedPacketGiftModel> list) {
|
||||
if (list == null) return;
|
||||
packetGiftModels.clear();
|
||||
packetGiftModels.addAll(list);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.yunbao.live.adapter;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.RedPacketGiftModel;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.views.RedPacketLuckUserViewHolder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RedPacketLuckUserAdapter extends RecyclerView.Adapter {
|
||||
private List<RedPacketGiftModel> packetGiftModels = new ArrayList<>();
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View redPacketGiftView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_red_packet_luck_user, parent, false);
|
||||
return new RedPacketLuckUserViewHolder(redPacketGiftView);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
if (holder instanceof RedPacketLuckUserViewHolder) {
|
||||
RedPacketLuckUserViewHolder redPacketGiftViewHolder = (RedPacketLuckUserViewHolder) holder;
|
||||
redPacketGiftViewHolder.showData(packetGiftModels.get(position));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return packetGiftModels.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加数据
|
||||
*
|
||||
* @param list
|
||||
*/
|
||||
public void addData(List<RedPacketGiftModel> list) {
|
||||
if (list == null) return;
|
||||
packetGiftModels.clear();
|
||||
packetGiftModels.addAll(list);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
@@ -238,7 +238,7 @@ public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListene
|
||||
}
|
||||
|
||||
private void showGiftList(List<LiveGiftBean> list) {
|
||||
mLiveGiftPagerAdapter = new LiveGiftPagerAdapter(mContext, list);
|
||||
mLiveGiftPagerAdapter = new LiveGiftPagerAdapter(mContext, list,"");
|
||||
mLiveGiftPagerAdapter.setActionListener(this);
|
||||
|
||||
mViewPager.setAdapter(mLiveGiftPagerAdapter);
|
||||
|
||||
@@ -41,6 +41,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.opensource.svgaplayer.SVGACallback;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
@@ -531,7 +532,7 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
|
||||
}
|
||||
}
|
||||
mGiftList = list;
|
||||
mLiveGiftPagerAdapter = new LiveGiftPagerAdapter(mContext, list);
|
||||
mLiveGiftPagerAdapter = new LiveGiftPagerAdapter(mContext, list,mLiveUid);
|
||||
mLiveGiftPagerAdapter.setActionListener(this);
|
||||
|
||||
mViewPager.setAdapter(mLiveGiftPagerAdapter);
|
||||
@@ -569,7 +570,7 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
|
||||
|
||||
private void showWrapList(List<LiveGiftBean> list) {
|
||||
mWrapList = list;
|
||||
mLiveWrapPagerAdapter = new LiveGiftPagerAdapter(mContext, list);
|
||||
mLiveWrapPagerAdapter = new LiveGiftPagerAdapter(mContext, list,mLiveUid);
|
||||
mLiveWrapPagerAdapter.setActionListener(this);
|
||||
mVPWrapList.setAdapter(mLiveWrapPagerAdapter);
|
||||
LayoutInflater inflater = LayoutInflater.from(mContext);
|
||||
@@ -728,8 +729,10 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
|
||||
}
|
||||
mBeanFromWish = null;
|
||||
}
|
||||
if (bean.getType() != 9999999) {
|
||||
itemCheckOp(bean);
|
||||
|
||||
itemCheckOp(bean);
|
||||
}
|
||||
}
|
||||
|
||||
private void itemCheckOp(LiveGiftBean bean) {
|
||||
|
||||
@@ -221,7 +221,7 @@ public class LiveGiftDialogFragment4Wishlist extends AbsDialogFragment implement
|
||||
}
|
||||
|
||||
private void showGiftList(List<LiveGiftBean> list) {
|
||||
mLiveGiftPagerAdapter = new LiveGiftPagerAdapter(mContext, list);
|
||||
mLiveGiftPagerAdapter = new LiveGiftPagerAdapter(mContext, list,mLiveUid);
|
||||
mLiveGiftPagerAdapter.setActionListener(this);
|
||||
mViewPager.setAdapter(mLiveGiftPagerAdapter);
|
||||
LayoutInflater inflater = LayoutInflater.from(mContext);
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.lxj.xpopup.core.CenterPopupView;
|
||||
import com.yunbao.common.bean.RedPacketGiftModel;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.adapter.RedPacketLuckUserAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class LuckUserRedPacketPopup extends CenterPopupView {
|
||||
|
||||
private List<RedPacketGiftModel> packetGiftModels;
|
||||
private RecyclerView userList;
|
||||
private RedPacketLuckUserAdapter redPacketLuckUserAdapter;
|
||||
|
||||
public LuckUserRedPacketPopup(@NonNull Context context, List<RedPacketGiftModel> packetGiftModels) {
|
||||
super(context);
|
||||
this.packetGiftModels = packetGiftModels;
|
||||
}
|
||||
|
||||
// 返回自定义弹窗的布局离开
|
||||
@Override
|
||||
protected int getImplLayoutId() {
|
||||
return R.layout.view_red_packet_user_list;
|
||||
|
||||
}
|
||||
|
||||
// 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑
|
||||
@Override
|
||||
protected void onCreate() {
|
||||
super.onCreate();
|
||||
initView();
|
||||
}
|
||||
|
||||
|
||||
private void initView() {
|
||||
userList = findViewById(R.id.user_list);
|
||||
redPacketLuckUserAdapter = new RedPacketLuckUserAdapter();
|
||||
redPacketLuckUserAdapter.addData(packetGiftModels);
|
||||
userList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
|
||||
userList.setAdapter(redPacketLuckUserAdapter);
|
||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.illustrate_close), () -> dismiss());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,222 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.text.TextUtils;
|
||||
import android.util.TypedValue;
|
||||
import android.widget.Button;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.lxj.xpopup.core.CenterPopupView;
|
||||
import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.bean.RedPacketInfoModel;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.http.CommonHttpUtil;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.interfaces.CommonCallback;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.TimeUtils;
|
||||
import com.yunbao.common.views.weight.CircleProgress;
|
||||
import com.yunbao.common.views.weight.ClipPathCircleImage;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.adapter.RedPacketGiftAdapter;
|
||||
|
||||
public class ReceiveRendPacketPopup extends CenterPopupView {
|
||||
private CircleProgress circleProgress;
|
||||
private int time = 10;
|
||||
private Button redPacketOpen;
|
||||
private TextView redPacketTimeText, receiveRed, redPacketValue;
|
||||
private FrameLayout redPacketTimeLayout;
|
||||
private String mLiveUid, stream, redPacketId, userID;
|
||||
private ClipPathCircleImage headPortrait;
|
||||
private RecyclerView redPacketGiftList;
|
||||
private RedPacketGiftAdapter redPacketGiftAdapter;
|
||||
private ImageView isAttention;
|
||||
private RedPacketInfoModel redPacketInfoModel;
|
||||
private boolean isSuperJackpot;
|
||||
|
||||
public ReceiveRendPacketPopup(@NonNull Context context, int time, String mLiveUid, String stream,
|
||||
String redPacketId, RedPacketInfoModel redPacketInfoModel,
|
||||
boolean isSuperJackpot) {
|
||||
|
||||
super(context);
|
||||
this.time = time;
|
||||
this.mLiveUid = mLiveUid;
|
||||
this.stream = stream;
|
||||
this.redPacketId = redPacketId;
|
||||
this.redPacketInfoModel = redPacketInfoModel;
|
||||
this.isSuperJackpot = isSuperJackpot;
|
||||
|
||||
}
|
||||
|
||||
// 返回自定义弹窗的布局离开
|
||||
@Override
|
||||
protected int getImplLayoutId() {
|
||||
return R.layout.view_receive_red_packet;
|
||||
}
|
||||
|
||||
// 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑
|
||||
@Override
|
||||
protected void onCreate() {
|
||||
super.onCreate();
|
||||
initView();
|
||||
initData();
|
||||
}
|
||||
|
||||
private void initData() {
|
||||
|
||||
ImgLoader.displayAvatar(getContext(), redPacketInfoModel.getAvatar(), headPortrait);
|
||||
redPacketValue.setText(redPacketInfoModel.getAmountDiamond());
|
||||
redPacketGiftAdapter.addData(redPacketInfoModel.getPacketGiftModels());
|
||||
IMLoginModel userInfo = IMLoginManager.get(getContext()).getUserInfo();
|
||||
if (TextUtils.equals(String.valueOf(userInfo.getId()), redPacketInfoModel.getUid())) {
|
||||
isAttention.setVisibility(GONE);
|
||||
} else {
|
||||
isAttention.setVisibility(TextUtils.equals(redPacketInfoModel.getIsAttention(), "0") ? VISIBLE : GONE);
|
||||
}
|
||||
if (isSuperJackpot) {
|
||||
receiveRed.setText(redPacketInfoModel.getUserNicename());
|
||||
} else {
|
||||
receiveRed.setText(String.format(getContext()
|
||||
.getString(R.string.together_to_achieve_goal),
|
||||
redPacketInfoModel.getUserNicename()));
|
||||
}
|
||||
|
||||
userID = redPacketInfoModel.getUserId();
|
||||
}
|
||||
|
||||
private Handler timeHandler = new Handler();
|
||||
|
||||
private Runnable timeRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (time > 0) {
|
||||
circleProgress.setCurrent(time--);
|
||||
timeHandler.postDelayed(timeRunnable, 1000);
|
||||
String countdown = TimeUtils.getTime(time);
|
||||
if (countdown.length() < 4) {
|
||||
redPacketTimeText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 36);
|
||||
} else {
|
||||
redPacketTimeText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 23);
|
||||
}
|
||||
redPacketTimeText.setText(countdown);
|
||||
} else {
|
||||
redPacketTimeLayout.setVisibility(GONE);
|
||||
redPacketOpen.setVisibility(VISIBLE);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
private void initView() {
|
||||
circleProgress = findViewById(R.id.circleProgress);
|
||||
redPacketOpen = findViewById(R.id.red_packet_open);
|
||||
redPacketTimeText = findViewById(R.id.red_packet_time_text);
|
||||
redPacketTimeLayout = findViewById(R.id.red_packet_time_layout);
|
||||
receiveRed = findViewById(R.id.receive_red);
|
||||
redPacketValue = findViewById(R.id.red_packet_value);
|
||||
headPortrait = findViewById(R.id.head_portrait);
|
||||
isAttention = findViewById(R.id.is_attention);
|
||||
redPacketGiftList = findViewById(R.id.red_packet_gift_list);
|
||||
redPacketGiftList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));
|
||||
redPacketGiftAdapter = new RedPacketGiftAdapter();
|
||||
redPacketGiftList.setAdapter(redPacketGiftAdapter);
|
||||
if (time > 0) {
|
||||
circleProgress.setMax(time);
|
||||
circleProgress.setCurrent(time);
|
||||
String countdown = TimeUtils.getTime(time);
|
||||
if (countdown.length() < 4) {
|
||||
redPacketTimeText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 36);
|
||||
} else {
|
||||
redPacketTimeText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 23);
|
||||
}
|
||||
redPacketTimeText.setText(countdown);
|
||||
timeHandler.postDelayed(timeRunnable, 1000);
|
||||
} else {
|
||||
redPacketTimeLayout.setVisibility(GONE);
|
||||
redPacketOpen.setVisibility(VISIBLE);
|
||||
}
|
||||
|
||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.red_packet_open), () -> {
|
||||
if (isSuperJackpot) {
|
||||
LiveNetManager.get(getContext())
|
||||
.getRedPacketSuperPrize(mLiveUid, redPacketInfoModel.getSuperJackpotId(), new HttpCallback<RedPacketInfoModel>() {
|
||||
@Override
|
||||
public void onSuccess(RedPacketInfoModel data) {
|
||||
dismiss();
|
||||
new XPopup.Builder(getContext())
|
||||
.asCustom(new ResultRendPacketPopup(getContext(),
|
||||
false,
|
||||
data.setSuperJackpotId(redPacketInfoModel.getSuperJackpotId()),
|
||||
isSuperJackpot))
|
||||
.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
dismiss();
|
||||
new XPopup.Builder(getContext())
|
||||
.asCustom(new ResultRendPacketPopup(getContext(),
|
||||
true,
|
||||
null,
|
||||
isSuperJackpot))
|
||||
.show();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
LiveNetManager.get(getContext())
|
||||
.getRedPacket(mLiveUid, stream, redPacketId, new HttpCallback<RedPacketInfoModel>() {
|
||||
@Override
|
||||
public void onSuccess(RedPacketInfoModel data) {
|
||||
dismiss();
|
||||
new XPopup.Builder(getContext())
|
||||
.asCustom(new ResultRendPacketPopup(getContext(),
|
||||
false,
|
||||
data.setRedPacketId(redPacketId),
|
||||
isSuperJackpot))
|
||||
.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
dismiss();
|
||||
new XPopup.Builder(getContext())
|
||||
.asCustom(new ResultRendPacketPopup(getContext(),
|
||||
true,
|
||||
null,
|
||||
isSuperJackpot))
|
||||
.show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
ViewClicksAntiShake.clicksAntiShake(isAttention, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
CommonHttpUtil.setAttention(userID, new CommonCallback<Integer>() {
|
||||
@Override
|
||||
public void callback(Integer attention) {
|
||||
if (attention == 1) {
|
||||
isAttention.setVisibility(GONE);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.lxj.xpopup.core.CenterPopupView;
|
||||
import com.yunbao.common.bean.RedPacketGiftModel;
|
||||
import com.yunbao.common.bean.RedPacketInfoModel;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.event.LiveAudienceEvent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ResultRendPacketPopup extends CenterPopupView {
|
||||
|
||||
private boolean noData;
|
||||
private RedPacketInfoModel redPacketInfoModel;
|
||||
private boolean isSuperJackpot;
|
||||
|
||||
public ResultRendPacketPopup(@NonNull Context context,
|
||||
boolean noData,
|
||||
RedPacketInfoModel redPacketInfoModel,
|
||||
boolean isSuperJackpot) {
|
||||
super(context);
|
||||
this.redPacketInfoModel = redPacketInfoModel;
|
||||
this.noData = noData;
|
||||
this.isSuperJackpot = isSuperJackpot;
|
||||
}
|
||||
|
||||
// 返回自定义弹窗的布局离开
|
||||
@Override
|
||||
protected int getImplLayoutId() {
|
||||
if (noData) {
|
||||
return R.layout.view_no_red_packet;
|
||||
} else {
|
||||
return R.layout.view_result_red_packet;
|
||||
}
|
||||
}
|
||||
|
||||
// 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑
|
||||
@Override
|
||||
protected void onCreate() {
|
||||
super.onCreate();
|
||||
initView();
|
||||
}
|
||||
|
||||
|
||||
private void initView() {
|
||||
if (noData) {
|
||||
|
||||
} else {
|
||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.illustrate_close), () -> dismiss());
|
||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.anchor_his_heart), () -> {
|
||||
dismiss();
|
||||
Bus.get().post(new LiveAudienceEvent()
|
||||
.setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP));
|
||||
});
|
||||
LinearLayout goldenLayout = findViewById(R.id.golden_layout);
|
||||
TextView goldenName = findViewById(R.id.golden_name);
|
||||
LinearLayout giftLayout = findViewById(R.id.gift_layout);
|
||||
TextView giftTitle = findViewById(R.id.gift_title);
|
||||
ImageView giftImage = findViewById(R.id.gift_image);
|
||||
ImageView goldenIconBeans = findViewById(R.id.golden_icon_beans);
|
||||
if (redPacketInfoModel.getGiftModels() != null) {
|
||||
if (redPacketInfoModel.getGiftModels().size() > 1) {
|
||||
goldenLayout.setVisibility(VISIBLE);
|
||||
giftLayout.setVisibility(VISIBLE);
|
||||
giftTitle.setText(redPacketInfoModel.getGiftModels().get(0).getGiftname());
|
||||
ImgLoader.displayAvatar(getContext(), redPacketInfoModel.getGiftModels().get(0).getGifticon(), giftImage);
|
||||
ImgLoader.displayAvatar(getContext(), redPacketInfoModel.getGiftModels().get(1).getGifticon(), goldenIconBeans);
|
||||
goldenName.setText(redPacketInfoModel.getGiftModels().get(1).getGiftname());
|
||||
} else {
|
||||
if (redPacketInfoModel.getGiftModels().size() > 0) {
|
||||
ImgLoader.displayAvatar(getContext(), redPacketInfoModel.getGiftModels().get(0).getGifticon(), goldenIconBeans);
|
||||
goldenName.setText(redPacketInfoModel.getGiftModels().get(0).getGiftname());
|
||||
}
|
||||
goldenLayout.setVisibility(VISIBLE);
|
||||
giftLayout.setVisibility(GONE);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.view_lucky_viewers), new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
if (redPacketInfoModel != null) {
|
||||
if (isSuperJackpot) {
|
||||
LiveNetManager.get(getContext()).
|
||||
getRedPacketSuperPrizeReceive(redPacketInfoModel.getSuperJackpotId(),
|
||||
new HttpCallback<List<RedPacketGiftModel>>() {
|
||||
@Override
|
||||
public void onSuccess(List<RedPacketGiftModel> data) {
|
||||
new XPopup.Builder(getContext())
|
||||
.asCustom(new LuckUserRedPacketPopup(getContext(), data))
|
||||
.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
LiveNetManager.get(getContext()).
|
||||
getRedPacketReceive(redPacketInfoModel.getRedPacketId(),
|
||||
new HttpCallback<List<RedPacketGiftModel>>() {
|
||||
@Override
|
||||
public void onSuccess(List<RedPacketGiftModel> data) {
|
||||
new XPopup.Builder(getContext())
|
||||
.asCustom(new LuckUserRedPacketPopup(getContext(), data))
|
||||
.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,222 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.widget.Button;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.lxj.xpopup.core.CenterPopupView;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
import com.yunbao.live.R;
|
||||
|
||||
public class SendRendPacketPopup extends CenterPopupView {
|
||||
private Button thereIsNo, followingAnchor;
|
||||
private TextView redEnvelopeRill, totalConsumptionOfDrill;
|
||||
private TextView rill, total;
|
||||
private FrameLayout redPacketIllustrate;
|
||||
private ImageView iconInstructions, illustrateClose;
|
||||
private String mLiveID, conditions = "0";
|
||||
|
||||
public SendRendPacketPopup(@NonNull Context context, String liveID) {
|
||||
super(context);
|
||||
mLiveID = liveID;
|
||||
|
||||
}
|
||||
|
||||
// 返回自定义弹窗的布局离开
|
||||
@Override
|
||||
protected int getImplLayoutId() {
|
||||
return R.layout.view_send_red_packet;
|
||||
}
|
||||
|
||||
// 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑
|
||||
@Override
|
||||
protected void onCreate() {
|
||||
super.onCreate();
|
||||
initView();
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
thereIsNo = findViewById(R.id.there_is_no);
|
||||
followingAnchor = findViewById(R.id.following_anchor);
|
||||
redEnvelopeRill = findViewById(R.id.red_envelope_rill);
|
||||
totalConsumptionOfDrill = findViewById(R.id.total_consumption_of_drill);
|
||||
redPacketIllustrate = findViewById(R.id.red_packet_illustrate);
|
||||
illustrateClose = findViewById(R.id.illustrate_close);
|
||||
iconInstructions = findViewById(R.id.icon_instructions);
|
||||
rill = findViewById(R.id.rill);
|
||||
total = findViewById(R.id.total);
|
||||
selectText(thereIsNo, true);
|
||||
selectText(followingAnchor, false);
|
||||
ViewClicksAntiShake.clicksAntiShake(thereIsNo, () -> {
|
||||
selectText(thereIsNo, true);
|
||||
selectText(followingAnchor, false);
|
||||
conditions = "0";
|
||||
});
|
||||
ViewClicksAntiShake.clicksAntiShake(followingAnchor, () -> {
|
||||
selectText(thereIsNo, false);
|
||||
selectText(followingAnchor, true);
|
||||
conditions = "1";
|
||||
});
|
||||
redEnvelopeRill.setText(String.format(getContext().getString(R.string.red_envelope_rill), "0"));
|
||||
totalConsumptionOfDrill.setText(String.format(getContext().getString(R.string.total_consumption_of_drill), "0"));
|
||||
rill.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
|
||||
|
||||
String number = s.toString();
|
||||
String rillNumber = total.getText().toString();
|
||||
int totalInt = 0;
|
||||
try {
|
||||
totalInt = Integer.parseInt(rillNumber);
|
||||
} catch (NumberFormatException e) {
|
||||
totalInt = 0;
|
||||
}
|
||||
if (TextUtils.isEmpty(number)) {
|
||||
redEnvelopeRill.setText(String.format(getContext().getString(R.string.red_envelope_rill), "0"));
|
||||
totalConsumptionOfDrill.setText(String.format(getContext().getString(R.string.total_consumption_of_drill), "0"));
|
||||
} else {
|
||||
int numberInt = Integer.parseInt(number);
|
||||
if (numberInt >= 200 && numberInt <= 10000) {
|
||||
totalConsumptionOfDrill.setText(String.format(getContext().getString(R.string.total_consumption_of_drill), String.valueOf((totalInt * numberInt))));
|
||||
redEnvelopeRill.setText(String.format(getContext().getString(R.string.red_envelope_rill), s.toString()));
|
||||
} else {
|
||||
ToastUtil.show(String.format(getContext().getString(R.string.range_range_is), "200~10000"));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
|
||||
}
|
||||
});
|
||||
total.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
String number = s.toString();
|
||||
String rillNumber = rill.getText().toString();
|
||||
int rillInt = 0;
|
||||
try {
|
||||
rillInt = Integer.parseInt(rillNumber);
|
||||
} catch (NumberFormatException e) {
|
||||
rillInt = 0;
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(number)) {
|
||||
totalConsumptionOfDrill.setText(String.format(getContext().getString(R.string.total_consumption_of_drill), "0"));
|
||||
} else {
|
||||
int numberInt = Integer.parseInt(number);
|
||||
if (numberInt >= 1 && numberInt <= 100) {
|
||||
totalConsumptionOfDrill.setText(String.format(getContext().getString(R.string.total_consumption_of_drill), String.valueOf((rillInt * numberInt))));
|
||||
} else {
|
||||
ToastUtil.show(String.format(getContext().getString(R.string.range_range_is), "1~100"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
|
||||
}
|
||||
});
|
||||
//红包初始数量
|
||||
rill.setText("200");
|
||||
total.setText("10");
|
||||
ViewClicksAntiShake.clicksAntiShake(iconInstructions, () -> redPacketIllustrate.setVisibility(VISIBLE));
|
||||
ViewClicksAntiShake.clicksAntiShake(illustrateClose, () -> redPacketIllustrate.setVisibility(GONE));
|
||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.top_up_now), () -> {
|
||||
//我们的
|
||||
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
|
||||
});
|
||||
//创建红包
|
||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.red_pack_send), new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
String rillNumber = rill.getText().toString();
|
||||
String number = total.getText().toString();
|
||||
int rillInt = 0;
|
||||
|
||||
try {
|
||||
rillInt = Integer.parseInt(rillNumber);
|
||||
} catch (NumberFormatException e) {
|
||||
rillInt = 0;
|
||||
}
|
||||
int totalInt = 0;
|
||||
try {
|
||||
totalInt = Integer.parseInt(number);
|
||||
} catch (NumberFormatException e) {
|
||||
totalInt = 0;
|
||||
}
|
||||
boolean totalTrue = false;
|
||||
boolean rillTrue = false;
|
||||
if (totalInt >= 1 && totalInt <= 100) {
|
||||
totalTrue = true;
|
||||
} else {
|
||||
ToastUtil.show(String.format(getContext().getString(R.string.range_range_is), "1~100"));
|
||||
}
|
||||
if (rillInt >= 200 && rillInt <= 10000) {
|
||||
rillTrue = true;
|
||||
} else {
|
||||
ToastUtil.show(String.format(getContext().getString(R.string.range_range_is), "200~10000"));
|
||||
}
|
||||
if (totalTrue && rillTrue) {
|
||||
LiveNetManager.get(getContext())
|
||||
.createRedPacket(mLiveID,
|
||||
rillNumber,
|
||||
number,
|
||||
conditions, new HttpCallback<String>() {
|
||||
@Override
|
||||
public void onSuccess(String data) {
|
||||
dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void selectText(TextView textView, boolean select) {
|
||||
textView.setSelected(select);
|
||||
if (select) {
|
||||
textView.setTextColor(Color.parseColor("#E12801"));
|
||||
} else {
|
||||
textView.setTextColor(Color.parseColor("#FDD04A"));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,8 @@ import com.yunbao.common.bean.AnchorRecommendItemModel;
|
||||
import com.yunbao.common.bean.BaseModel;
|
||||
import com.yunbao.common.bean.LiveBean;
|
||||
import com.yunbao.common.bean.MsgModel;
|
||||
import com.yunbao.common.bean.RedPacketInfoModel;
|
||||
import com.yunbao.common.bean.RedPacketModel;
|
||||
import com.yunbao.common.bean.WishModel;
|
||||
import com.yunbao.common.bean.XydCompleteModel;
|
||||
import com.yunbao.common.event.AllServerNotifyEvent;
|
||||
@@ -43,6 +45,26 @@ public class LiveAudienceEvent extends BaseModel {
|
||||
private XydCompleteModel xydCompleteModel;
|
||||
private LiveReceiveGiftBean liveReceiveGiftBean;
|
||||
private AllServerNotifyEvent allServerNotifyEvent;
|
||||
private RedPacketModel redPacketModel;
|
||||
private RedPacketInfoModel redPacketInfoModel;
|
||||
|
||||
public RedPacketInfoModel getRedPacketInfoModel() {
|
||||
return redPacketInfoModel;
|
||||
}
|
||||
|
||||
public LiveAudienceEvent setRedPacketInfoModel(RedPacketInfoModel redPacketInfoModel) {
|
||||
this.redPacketInfoModel = redPacketInfoModel;
|
||||
return this;
|
||||
}
|
||||
|
||||
public RedPacketModel getRedPacketModel() {
|
||||
return redPacketModel;
|
||||
}
|
||||
|
||||
public LiveAudienceEvent setRedPacketModel(RedPacketModel redPacketModel) {
|
||||
this.redPacketModel = redPacketModel;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AllServerNotifyEvent getAllServerNotifyEvent() {
|
||||
return allServerNotifyEvent;
|
||||
@@ -356,7 +378,9 @@ public class LiveAudienceEvent extends BaseModel {
|
||||
VOTE_CREATE(65, "创建投票"),
|
||||
VOTE_UPDATE(66, "更新投票"),
|
||||
VOTE_END(67, "投票结束"),
|
||||
BLIND_BOX(68, "盲盒全服通知");
|
||||
BLIND_BOX(68, "盲盒全服通知"),
|
||||
RED_PACKET(69, "RedPacket"),
|
||||
RED_PACKET_SUPER_JACKPOT(70, "超级红包");
|
||||
|
||||
private int type;
|
||||
private String name;
|
||||
|
||||
@@ -7,10 +7,8 @@ import static com.yunbao.live.views.LivePushRyViewHolder.rtcRoom;
|
||||
import static com.yunbao.live.views.LiveRoomViewHolder.getIsHot;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
@@ -30,6 +28,8 @@ import com.yunbao.common.bean.LinkMicUserBean;
|
||||
import com.yunbao.common.bean.LiveUserGiftBean;
|
||||
import com.yunbao.common.bean.MsgModel;
|
||||
import com.yunbao.common.bean.PkRankBean;
|
||||
import com.yunbao.common.bean.RedPacketInfoModel;
|
||||
import com.yunbao.common.bean.RedPacketModel;
|
||||
import com.yunbao.common.bean.SocketModel;
|
||||
import com.yunbao.common.bean.UserBean;
|
||||
import com.yunbao.common.bean.WishModel;
|
||||
@@ -42,7 +42,6 @@ import com.yunbao.common.http.HttpClient;
|
||||
import com.yunbao.common.manager.IMRTCManager;
|
||||
import com.yunbao.common.manager.RandomPkManager;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
import com.yunbao.common.utils.L;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.live.R;
|
||||
@@ -69,8 +68,6 @@ import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
|
||||
import cn.rongcloud.rtc.base.RTCErrorCode;
|
||||
@@ -676,6 +673,7 @@ public class SocketRyClient {
|
||||
);
|
||||
break;
|
||||
case Constants.LIVE_PK_END:
|
||||
|
||||
mListener.onEndPk(map.getLong("uid"),
|
||||
map.getLong("pkuid"),
|
||||
map.getLong("uid_score"),
|
||||
@@ -683,7 +681,18 @@ public class SocketRyClient {
|
||||
JSONObject.parseObject(map.getJSONObject("ct").getJSONObject("pk_top_users").toJSONString(), LivePKUserListBean.class)
|
||||
);
|
||||
break;
|
||||
|
||||
case Constants.RED_PACKET:
|
||||
RedPacketModel redPacketModel = GsonUtils.fromJson(map.toString(), RedPacketModel.class);
|
||||
Bus.get().post(new LiveAudienceEvent()
|
||||
.setType(LiveAudienceEvent.LiveAudienceType.RED_PACKET)
|
||||
.setRedPacketModel(redPacketModel));
|
||||
break;
|
||||
case Constants.RED_PACKET_SUPER_JACKPOT:
|
||||
RedPacketInfoModel redPacketInfoModel = GsonUtils.fromJson(map.toString(), RedPacketInfoModel.class);
|
||||
Bus.get().post(new LiveAudienceEvent()
|
||||
.setType(LiveAudienceEvent.LiveAudienceType.RED_PACKET_SUPER_JACKPOT)
|
||||
.setRedPacketInfoModel(redPacketInfoModel));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1002,7 +1011,7 @@ public class SocketRyClient {
|
||||
// 玩家自己送礼物
|
||||
private void sendGiftInSameRoom(JSONObject map) {
|
||||
String ctJson = map.getString("ct");
|
||||
SendBlindGiftEvent sendBlindGiftEvent = JSON.parseObject(ctJson, SendBlindGiftEvent.class);
|
||||
SendBlindGiftEvent sendBlindGiftEvent = JSON.parseObject(ctJson, SendBlindGiftEvent.class);
|
||||
LiveReceiveGiftBean receiveGiftBean = JSON.parseObject(map.getString("ct"), LiveReceiveGiftBean.class);
|
||||
sendBlindGiftEvent.setUserNiceName(map.getString("uname"));
|
||||
receiveGiftBean.setAvatar(map.getString("uhead") + "");
|
||||
|
||||
@@ -50,6 +50,7 @@ import com.bumptech.glide.load.resource.gif.GifDrawable;
|
||||
import com.bumptech.glide.request.RequestListener;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.ms.banner.Banner;
|
||||
import com.ms.banner.BannerConfig;
|
||||
@@ -82,6 +83,8 @@ import com.yunbao.common.bean.MsgModel;
|
||||
import com.yunbao.common.bean.NewPeopleTaskModel;
|
||||
import com.yunbao.common.bean.PkRankBean;
|
||||
import com.yunbao.common.bean.RankHourModel;
|
||||
import com.yunbao.common.bean.RedPacketInfoModel;
|
||||
import com.yunbao.common.bean.RedPacketModel;
|
||||
import com.yunbao.common.bean.RewardAllModel;
|
||||
import com.yunbao.common.bean.StarChallengeStatusModel;
|
||||
import com.yunbao.common.bean.TaskModel;
|
||||
@@ -112,6 +115,7 @@ import com.yunbao.common.utils.SVGAViewUtils;
|
||||
import com.yunbao.common.utils.ScreenDimenUtil;
|
||||
import com.yunbao.common.utils.SpUtil;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.TimeUtils;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.formatBigNum;
|
||||
import com.yunbao.common.views.AbsViewHolder;
|
||||
@@ -151,6 +155,8 @@ import com.yunbao.live.dialog.LiveHDDialogFragment;
|
||||
import com.yunbao.live.dialog.LiveUserAnchorMailBoxWebInfoPopDialog;
|
||||
import com.yunbao.live.dialog.LiveUserDialogFragment;
|
||||
import com.yunbao.live.dialog.LiveWishListDialogFragment4Audience;
|
||||
import com.yunbao.live.dialog.ReceiveRendPacketPopup;
|
||||
import com.yunbao.live.dialog.ResultRendPacketPopup;
|
||||
import com.yunbao.live.event.LiveAnchorEvent;
|
||||
import com.yunbao.live.event.LiveAudienceEvent;
|
||||
import com.yunbao.live.event.LiveRoomChangeEvent;
|
||||
@@ -1104,54 +1110,10 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
mChatRecyclerView.setHasFixedSize(true);
|
||||
LinearLayoutManager layoutManager = new LinearLayoutManager(mContext);
|
||||
layoutManager.setOrientation(RecyclerView.VERTICAL);
|
||||
// layoutManager.setReverseLayout(true);
|
||||
layoutManager.setStackFromEnd(true);
|
||||
mChatRecyclerView.setLayoutManager(layoutManager);
|
||||
mChatRecyclerView.addItemDecoration(new TopGradual());
|
||||
mChatRecyclerView.setItemViewCacheSize(10);
|
||||
// mChatRecyclerView.setItemAnimator(new SimpleItemAnimator() {
|
||||
// @Override
|
||||
// public boolean animateRemove(RecyclerView.ViewHolder holder) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean animateAdd(RecyclerView.ViewHolder holder) {
|
||||
// Animation animation = AnimationUtils.loadAnimation(mContext, R.anim.live_chat_msg_in);
|
||||
// holder.itemView.startAnimation(animation);
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean animateMove(RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, int fromLeft, int fromTop, int toLeft, int toTop) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void runPendingAnimations() {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void endAnimation(@NonNull RecyclerView.ViewHolder item) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void endAnimations() {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean isRunning() {
|
||||
// return false;
|
||||
// }
|
||||
// });
|
||||
mLiveChatAdapter = new LiveChatAdapter(mContext);
|
||||
mChatRecyclerView.setAdapter(mLiveChatAdapter);
|
||||
mLiveChatAdapter.setOnItemClickListener(new OnItemClickListener<LiveChatBean>() {
|
||||
@@ -1319,6 +1281,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
avatar_r1 = (RoundedImageView) findViewById(R.id.avatar_r1);
|
||||
avatar_r2 = (RoundedImageView) findViewById(R.id.avatar_r2);
|
||||
avatar_r3 = (RoundedImageView) findViewById(R.id.avatar_r3);
|
||||
redPacket = (FrameLayout) findViewById(R.id.red_packet);
|
||||
redPacketCountdown = (TextView) findViewById(R.id.red_packet_countdown);
|
||||
redSchedule = (TextView) findViewById(R.id.red_schedule);
|
||||
redPacketQueue = (LinearLayout) findViewById(R.id.red_packet_queue);
|
||||
openRedPacket = (TextView) findViewById(R.id.open_red_packet);
|
||||
|
||||
lt_pk_line = (RelativeLayout) findViewById(R.id.lt_pk_line);
|
||||
clickAvatar();
|
||||
@@ -1407,6 +1374,143 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
|
||||
new LoadDian9TuUtil().loadDian9TuAssets2(mContext, liveWksLayout, "rectangle_new.png", 1);
|
||||
new LoadDian9TuUtil().loadDian9TuAssets2(mContext, wishListLayout2, "rectangle_new.png", 1);
|
||||
|
||||
}
|
||||
|
||||
private FrameLayout redPacket;
|
||||
private TextView redPacketCountdown, redSchedule, openRedPacket;
|
||||
private LinearLayout redPacketQueue;
|
||||
private int redTimeCountdown = 0;
|
||||
private RedPacketModel mRedPacketModel;
|
||||
private Handler timeHandler = new Handler();
|
||||
private Runnable timeRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (redTimeCountdown > 0) {
|
||||
redTimeCountdown = redTimeCountdown - 1;
|
||||
timeHandler.postDelayed(timeRunnable, 1000);
|
||||
redPacketCountdown.setText(String.format(mContext.getString(R.string.red_packet_countdown), TimeUtils.getTime(redTimeCountdown)));
|
||||
} else {
|
||||
timeHandler.removeCallbacks(timeRunnable);
|
||||
StringBuffer stringBuffer = new StringBuffer();
|
||||
stringBuffer.append(mRedPacketModel.getRedPacketCount())
|
||||
.append("/")
|
||||
.append(mRedPacketModel.getRedPacketQuantity());
|
||||
redSchedule.setText(stringBuffer.toString());
|
||||
openRedPacket.setText(String.format(mContext.getString(R.string.open_red_packet), mRedPacketModel.getRedPacketRemain() + ""));
|
||||
redPacketCountdown.setVisibility(View.GONE);
|
||||
redPacketQueue.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
//主播倒计时调用接口
|
||||
private Handler anchorTimeHandler = new Handler();
|
||||
private int mCountdown;
|
||||
private Runnable anchorTimeRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (mCountdown > 0) {
|
||||
mCountdown = mCountdown - 1;
|
||||
anchorTimeHandler.postDelayed(anchorTimeRunnable, 1000);
|
||||
Log.e("主播倒计时", String.format(mContext.getString(R.string.red_packet_countdown), TimeUtils.getTime(mCountdown)));
|
||||
} else {
|
||||
redPacket.setVisibility(View.GONE);
|
||||
anchorTimeHandler.removeCallbacks(anchorTimeRunnable);
|
||||
LiveNetManager.get(mContext).
|
||||
endRedPacket(mLiveUid, mRedPacketModel.getRedPacketId(), new com.yunbao.common.http.base.HttpCallback<String>() {
|
||||
@Override
|
||||
public void onSuccess(String data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 红包相关处理
|
||||
*/
|
||||
public void redPacketManage(RedPacketModel redPacketModel) {
|
||||
anchorTimeHandler.removeCallbacks(anchorTimeRunnable);
|
||||
timeHandler.removeCallbacks(timeRunnable);
|
||||
mRedPacketModel = redPacketModel;
|
||||
if (redPacketModel.getIsShow() == 1) {
|
||||
redPacket.setVisibility(View.VISIBLE);
|
||||
if (redPacketModel.getCountdown() > 180) {
|
||||
redPacketQueue.setVisibility(View.GONE);
|
||||
redPacketCountdown.setVisibility(View.VISIBLE);
|
||||
mCountdown = redPacketModel.getCountdown();
|
||||
redTimeCountdown = mCountdown - 180;
|
||||
redPacketCountdown.setText(String.format(mContext.getString(R.string.red_packet_countdown), TimeUtils.getTime(redTimeCountdown)));
|
||||
timeHandler.post(timeRunnable);
|
||||
} else {
|
||||
redPacketQueue.setVisibility(View.VISIBLE);
|
||||
redPacketCountdown.setVisibility(View.GONE);
|
||||
}
|
||||
if (IMLoginManager.get(mContext).getUserInfo().anchorUserType() && mContext instanceof LiveRyAnchorActivity) {
|
||||
anchorTimeHandler.removeCallbacks(anchorTimeRunnable);
|
||||
anchorTimeHandler.post(anchorTimeRunnable);
|
||||
}
|
||||
} else {
|
||||
hindeRedPacket();
|
||||
}
|
||||
//测试点开红包
|
||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.red_packet), new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
|
||||
if (!(mContext instanceof LiveRyAnchorActivity)) {
|
||||
LiveNetManager.get(mContext)
|
||||
.redPacketInfo(mLiveUid, redPacketModel.getRedPacketId(), new com.yunbao.common.http.base.HttpCallback<RedPacketInfoModel>() {
|
||||
@Override
|
||||
public void onSuccess(RedPacketInfoModel data) {
|
||||
if (TextUtils.equals(data.getReceiveStatus(), "0")) {
|
||||
new XPopup.Builder(mContext)
|
||||
.asCustom(new ReceiveRendPacketPopup(mContext, redTimeCountdown, mLiveUid, mStream, redPacketModel.getRedPacketId(), data, false))
|
||||
.show();
|
||||
} else if (TextUtils.equals(data.getReceiveStatus(), "1")) {
|
||||
new XPopup.Builder(mContext)
|
||||
.asCustom(new ResultRendPacketPopup(mContext, true, null, false))
|
||||
.show();
|
||||
} else {
|
||||
new XPopup.Builder(mContext)
|
||||
.asCustom(new ResultRendPacketPopup(mContext, false, data.setRedPacketId(redPacketModel.getRedPacketId()), false))
|
||||
.show();
|
||||
}
|
||||
if (TextUtils.equals(data.getConditions(), "1")) {
|
||||
follow();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
new XPopup.Builder(mContext)
|
||||
.asCustom(new ResultRendPacketPopup(mContext, true, null, false))
|
||||
.show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void hindeRedPacket() {
|
||||
redPacket.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
public void setRedPacketInfoModel(RedPacketInfoModel redPacket) {
|
||||
new XPopup.Builder(mContext)
|
||||
.asCustom(new ReceiveRendPacketPopup(mContext, 0, mLiveUid, mStream, redPacket.getRedPacketId(), redPacket, true))
|
||||
.show();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1504,6 +1608,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
* 重置数据
|
||||
*/
|
||||
public void resetView() {
|
||||
timeHandler.removeCallbacks(timeRunnable);
|
||||
anchorTimeHandler.removeCallbacks(anchorTimeRunnable);
|
||||
resetViewGone();
|
||||
visibility = false;
|
||||
pkUidTmp = "";
|
||||
@@ -3512,6 +3618,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
public void showPrizePoolLevel(String level) {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取是否有热度卡加成
|
||||
*/
|
||||
@@ -3615,6 +3722,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
}
|
||||
|
||||
public void clearData() {
|
||||
timeHandler.removeCallbacks(timeRunnable);
|
||||
anchorTimeHandler.removeCallbacks(anchorTimeRunnable);
|
||||
LiveHttpUtil.cancel(LiveHttpConsts.GET_USER_LIST);
|
||||
LiveHttpUtil.cancel(LiveHttpConsts.TIME_CHARGE);
|
||||
CommonHttpUtil.cancel(CommonHttpConsts.SET_ATTENTION);
|
||||
|
||||
@@ -39,6 +39,8 @@ import com.yunbao.common.bean.LiveBean;
|
||||
import com.yunbao.common.bean.LiveRoomActivityModel;
|
||||
import com.yunbao.common.bean.LiveUserGiftBean;
|
||||
import com.yunbao.common.bean.MsgModel;
|
||||
import com.yunbao.common.bean.RedPacketInfoModel;
|
||||
import com.yunbao.common.bean.RedPacketModel;
|
||||
import com.yunbao.common.bean.StarChallengeStatusModel;
|
||||
import com.yunbao.common.bean.UserBean;
|
||||
import com.yunbao.common.bean.WishModel;
|
||||
@@ -676,6 +678,18 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
||||
.setType(LiveAudienceEvent.LiveAudienceType.LIVE_PK_ING));
|
||||
}
|
||||
|
||||
if (data.getEnterRoomInfo().getRedPacketModel() != null) {
|
||||
|
||||
mLiveRoomViewHolder.redPacketManage(data.getEnterRoomInfo().getRedPacketModel());
|
||||
// mLiveRoomViewHolder.redPacketManage(new RedPacketModel()
|
||||
// .setIsShow(1)
|
||||
// .setRedPacketCount(23)
|
||||
// .setRedPacketQuantity(100)
|
||||
// .setRedPacketRemain(6)
|
||||
// .setCountdown(360));
|
||||
}else {
|
||||
mLiveRoomViewHolder.hindeRedPacket();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -2037,4 +2051,14 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
||||
mLiveRoomViewHolder.blindBoxAllServerNotify(event);
|
||||
}
|
||||
}
|
||||
public void redPacketManage(RedPacketModel redPacket) {
|
||||
if (mLiveRoomViewHolder != null) {
|
||||
mLiveRoomViewHolder.redPacketManage(redPacket);
|
||||
}
|
||||
}
|
||||
public void setRedPacketInfoModel(RedPacketInfoModel redPacket) {
|
||||
if (mLiveRoomViewHolder != null) {
|
||||
mLiveRoomViewHolder.setRedPacketInfoModel(redPacket);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.yunbao.live.views;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.RedPacketGiftModel;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.live.R;
|
||||
|
||||
public class RedPacketGiftViewHolder extends RecyclerView.ViewHolder {
|
||||
private ImageView giftIcon;
|
||||
private TextView giftName;
|
||||
public RedPacketGiftViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
giftIcon = itemView.findViewById(R.id.gift_icon);
|
||||
giftName = itemView.findViewById(R.id.gift_name);
|
||||
}
|
||||
|
||||
public void showData(RedPacketGiftModel redPacketGiftModel) {
|
||||
ImgLoader.displayAvatar(itemView.getContext(), redPacketGiftModel.getGifticon(), giftIcon);
|
||||
giftName.setText(redPacketGiftModel.getGiftNum());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.yunbao.live.views;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.RedPacketGiftModel;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.live.R;
|
||||
|
||||
public class RedPacketLuckUserViewHolder extends RecyclerView.ViewHolder {
|
||||
private ImageView giftImage;
|
||||
private TextView giftName, giftNumber;
|
||||
|
||||
public RedPacketLuckUserViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
giftImage = itemView.findViewById(R.id.gift_image);
|
||||
giftName = itemView.findViewById(R.id.gift_name);
|
||||
giftNumber = itemView.findViewById(R.id.gift_number);
|
||||
}
|
||||
|
||||
public void showData(RedPacketGiftModel redPacketGiftModel) {
|
||||
ImgLoader.displayAvatar(itemView.getContext(), redPacketGiftModel.getGifticon(), giftImage);
|
||||
giftName.setText(redPacketGiftModel.getUserNicename());
|
||||
giftNumber.setText(redPacketGiftModel.getNeedcoin());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user