新增礼物墙相关内容
This commit is contained in:
@@ -20,6 +20,7 @@ public class Constants {
|
||||
public static final String AVATAR = "avatar";
|
||||
public static final String SIGN = "sign";
|
||||
public static final String TO_UID = "toUid";
|
||||
public static final String TO_UNAME = "toUserName";
|
||||
public static final String INTOINDEX = "intoIndex";
|
||||
public static final String FROM_LIVE_ROOM = "fromLiveRoom";
|
||||
public static final String TO_NAME = "toName";
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.yunbao.common.adapter;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.bean.GiftWallInfoBean;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class GiftWallGiftInfoListItemAdapter extends RecyclerView.Adapter<GiftWallGiftInfoListItemAdapter.VH> {
|
||||
List<GiftWallInfoBean.Data> data = new ArrayList<>();
|
||||
|
||||
public void setData(List<GiftWallInfoBean.Data> data) {
|
||||
if (data == null) {
|
||||
data = new ArrayList<>();
|
||||
}
|
||||
this.data = data;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
return new VH(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_dialog_gift_wall_gift_info, parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull VH holder, int position) {
|
||||
holder.setData(data.get(position), position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return data.size();
|
||||
}
|
||||
|
||||
public class VH extends RecyclerView.ViewHolder {
|
||||
TextView tv_rank, user_name, tv_rename;
|
||||
RoundedImageView avatar;
|
||||
|
||||
public VH(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
tv_rank = itemView.findViewById(R.id.tv_rank);
|
||||
user_name = itemView.findViewById(R.id.user_name);
|
||||
tv_rename = itemView.findViewById(R.id.tv_rename);
|
||||
avatar = itemView.findViewById(R.id.avatar);
|
||||
}
|
||||
|
||||
public void setData(GiftWallInfoBean.Data data, int position) {
|
||||
tv_rank.setText(String.format(Locale.getDefault(), "%d", (position + 1)));
|
||||
tv_rank.setTextColor(Color.parseColor("#FCC755"));
|
||||
tv_rank.setTextSize(20);
|
||||
tv_rename.setText(String.format(Locale.getDefault(), "%d", (data.getGift_hall_send_num())));
|
||||
avatar.setVisibility(View.VISIBLE);
|
||||
if (data.getActive_rank_hide() == 1) {
|
||||
user_name.setText(WordUtil.getNewString(R.string.mystery_man));
|
||||
avatar.setImageResource(R.mipmap.hide);
|
||||
} else {
|
||||
user_name.setText(data.getUser_name());
|
||||
ImgLoader.display(itemView.getContext(), data.getAvatar(), avatar);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
package com.yunbao.common.adapter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.view.WindowInsets;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.opensource.svgaplayer.SVGACallback;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.bean.GiftWallBean;
|
||||
import com.yunbao.common.dialog.GiftWallGiftInfoDialog;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.manager.base.ACache;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.SVGAViewUtils;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GiftWallMainTab1List2Adapter extends RecyclerView.Adapter<GiftWallMainTab1List2Adapter.VH> {
|
||||
Context mContext;
|
||||
List<GiftWallBean.Gift> list;
|
||||
boolean isStar;
|
||||
SVGAVideoEntity drawable;
|
||||
String toUid;
|
||||
boolean isAnchor;
|
||||
private boolean isLiveRoom;
|
||||
|
||||
public GiftWallMainTab1List2Adapter(Context mContext) {
|
||||
this.mContext = mContext;
|
||||
list = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void setToUid(String toUid) {
|
||||
this.toUid = toUid;
|
||||
}
|
||||
|
||||
public void setAnchor(boolean anchor) {
|
||||
isAnchor = anchor;
|
||||
}
|
||||
|
||||
public void setList(List<GiftWallBean.Gift> list) {
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
}
|
||||
this.list = list;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void setDrawable(SVGAVideoEntity drawable) {
|
||||
this.drawable = drawable;
|
||||
}
|
||||
|
||||
public void setStar(boolean star) {
|
||||
isStar = star;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
|
||||
return new VH(LayoutInflater.from(mContext).inflate(R.layout.item_gift_wall_man_tab1_list_2, parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull VH holder, int position) {
|
||||
holder.setData(list.get(position), position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return list.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewAttachedToWindow(@NonNull VH holder) {
|
||||
super.onViewAttachedToWindow(holder);
|
||||
holder.giftBg.startAnimation();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onViewDetachedFromWindow(@NonNull VH holder) {
|
||||
super.onViewDetachedFromWindow(holder);
|
||||
holder.giftBg.stopAnimation();
|
||||
|
||||
}
|
||||
|
||||
public void setLiveRoom(boolean isLiveRoom) {
|
||||
this.isLiveRoom = isLiveRoom;
|
||||
}
|
||||
|
||||
public class VH extends RecyclerView.ViewHolder {
|
||||
SVGAImageView giftBg;
|
||||
ImageView gift_soles;
|
||||
ImageView giftImage;
|
||||
TextView gift_name;
|
||||
TextView gift_status;
|
||||
ProgressBar progressBar;
|
||||
|
||||
public VH(View itemView) {
|
||||
super(itemView);
|
||||
giftBg = itemView.findViewById(R.id.gift_bg);
|
||||
gift_soles = itemView.findViewById(R.id.gift_soles);
|
||||
giftImage = itemView.findViewById(R.id.gift);
|
||||
gift_name = itemView.findViewById(R.id.gift_name);
|
||||
gift_status = itemView.findViewById(R.id.gift_status);
|
||||
progressBar = itemView.findViewById(R.id.progressBar);
|
||||
}
|
||||
|
||||
@SuppressLint("DefaultLocale")
|
||||
public void setData(GiftWallBean.Gift gift, int position) {
|
||||
gift_name.setText(WordUtil.isNewZh() ? gift.getGift_name() : gift.getGift_name_en());
|
||||
ImgLoader.display(itemView.getContext(), gift.getGift_icon(), giftImage, 40, 40);
|
||||
giftBg.setClearsAfterDetached(false);
|
||||
giftBg.setClearsAfterStop(false);
|
||||
if (gift.getIlluminate_status() == 1) {
|
||||
gift_status.setText(String.format("%s%d", WordUtil.getNewString(R.string.dialog_gift_wall_list_spinner_up), gift.getGift_hall_send_num()));
|
||||
gift_status.setTextColor(Color.parseColor("#FFFFFF"));
|
||||
gift_soles.setImageResource(getSolesrRes());
|
||||
if (drawable != null) {
|
||||
giftBg.post(() -> {
|
||||
giftBg.setImageDrawable(new SVGADrawable(drawable));
|
||||
giftBg.setLoops(0);
|
||||
giftBg.startAnimation();
|
||||
});
|
||||
}
|
||||
progressBar.setMax(gift.getIlluminate_num());
|
||||
progressBar.setProgress(gift.getGift_hall_send_num());
|
||||
} else {
|
||||
gift_status.setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_spinner_down));
|
||||
gift_status.setTextColor(Color.parseColor("#01071A"));
|
||||
gift_soles.setImageResource(getUnSolesrRes());
|
||||
giftBg.setImageResource(R.mipmap.gift_wall_main_item_bg1);
|
||||
}
|
||||
ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
new GiftWallGiftInfoDialog(mContext, gift.getGift_id() + "", toUid, isAnchor)
|
||||
.setFullWindows(!isLiveRoom)
|
||||
.setLiveRoom(isLiveRoom)
|
||||
.setStar(isStar)
|
||||
.showDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private int getSolesrRes() {
|
||||
return isStar ? R.mipmap.gift_wall_main_item_select : R.mipmap.gift_wall_main_item_select1;
|
||||
}
|
||||
|
||||
private int getUnSolesrRes() {
|
||||
return isStar ? R.mipmap.gift_wall_main_item_unselect : R.mipmap.gift_wall_main_item_unselect1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
package com.yunbao.common.adapter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.bean.GiftWallBean;
|
||||
import com.yunbao.common.bean.GiftWallTab2Bean;
|
||||
import com.yunbao.common.dialog.GiftWallGiftInfoDialog;
|
||||
import com.yunbao.common.dialog.GiftWallMainTab2ClassicInfoDialog;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class GiftWallMainTab2ListAdapter extends RecyclerView.Adapter<GiftWallMainTab2ListAdapter.VH> {
|
||||
Context mContext;
|
||||
List<GiftWallTab2Bean.Gift> list;
|
||||
boolean isStar;
|
||||
String toUid;
|
||||
boolean isAnchor;
|
||||
private boolean isLiveRoom;
|
||||
|
||||
public GiftWallMainTab2ListAdapter(Context mContext) {
|
||||
this.mContext = mContext;
|
||||
list = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void setToUid(String toUid) {
|
||||
this.toUid = toUid;
|
||||
}
|
||||
|
||||
public void setAnchor(boolean anchor) {
|
||||
isAnchor = anchor;
|
||||
}
|
||||
|
||||
public void setList(List<GiftWallTab2Bean.Gift> list) {
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
}
|
||||
this.list = list;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
public void setStar(boolean star) {
|
||||
isStar = star;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
if (isStar) {
|
||||
return new VH(LayoutInflater.from(mContext).inflate(R.layout.item_gift_wall_man_tab2_list_1, parent, false));
|
||||
}
|
||||
return new VH(LayoutInflater.from(mContext).inflate(R.layout.item_gift_wall_man_tab2_list_2, parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull VH holder, int position) {
|
||||
holder.setData(list.get(position), position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return list.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewAttachedToWindow(@NonNull VH holder) {
|
||||
super.onViewAttachedToWindow(holder);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onViewDetachedFromWindow(@NonNull VH holder) {
|
||||
super.onViewDetachedFromWindow(holder);
|
||||
|
||||
}
|
||||
|
||||
public void setLiveRoom(boolean isLiveRoom) {
|
||||
this.isLiveRoom = isLiveRoom;
|
||||
}
|
||||
|
||||
public class VH extends RecyclerView.ViewHolder {
|
||||
ImageView gift;
|
||||
TextView gift_name;
|
||||
TextView gift_number;
|
||||
RoundedImageView user1Avatar, user2Avatar;
|
||||
TextView anchor_nickname;
|
||||
TextView user_nickname;
|
||||
TextView tv_wait;
|
||||
View imageView8;
|
||||
|
||||
public VH(View itemView) {
|
||||
super(itemView);
|
||||
|
||||
gift = itemView.findViewById(R.id.gift);
|
||||
gift_name = itemView.findViewById(R.id.gift_name);
|
||||
gift_number = itemView.findViewById(R.id.gift_number);
|
||||
user1Avatar = itemView.findViewById(R.id.user1_avatar);
|
||||
user2Avatar = itemView.findViewById(R.id.user2_avatar);
|
||||
anchor_nickname = itemView.findViewById(R.id.anchor_nickname);
|
||||
user_nickname = itemView.findViewById(R.id.user_nickname);
|
||||
tv_wait = itemView.findViewById(R.id.tv_wait);
|
||||
imageView8 = itemView.findViewById(R.id.imageView8);
|
||||
}
|
||||
|
||||
@SuppressLint("DefaultLocale")
|
||||
public void setData(GiftWallTab2Bean.Gift giftData, int position) {
|
||||
gift_name.setText(WordUtil.isNewZh() ? giftData.getGiftName() : giftData.getGiftNameEn());
|
||||
ImgLoader.display(itemView.getContext(), giftData.getGiftIcon(), gift, 60, 60);
|
||||
if (!StringUtil.isEmpty(giftData.getNamingLiveNicename(), giftData.getNamingUserNicename())) {
|
||||
anchor_nickname.setVisibility(View.VISIBLE);
|
||||
user_nickname.setVisibility(View.VISIBLE);
|
||||
gift_number.setVisibility(View.VISIBLE);
|
||||
user1Avatar.setVisibility(View.VISIBLE);
|
||||
user2Avatar.setVisibility(View.VISIBLE);
|
||||
imageView8.setVisibility(View.VISIBLE);
|
||||
tv_wait.setVisibility(View.GONE);
|
||||
gift_number.setText(String.format(Locale.getDefault(), "%d", giftData.getNeedCoinTotal()));
|
||||
ImgLoader.display(mContext, giftData.getNamingLiveAvatar(), user1Avatar, 35, 35);
|
||||
ImgLoader.display(mContext, giftData.getNamingUserAvatar(), user2Avatar, 35, 35);
|
||||
anchor_nickname.setText(giftData.getNamingLiveNicename());
|
||||
user_nickname.setText(giftData.getNamingUserNicename());
|
||||
} else {
|
||||
user1Avatar.setVisibility(View.GONE);
|
||||
user2Avatar.setVisibility(View.GONE);
|
||||
anchor_nickname.setVisibility(View.GONE);
|
||||
user_nickname.setVisibility(View.GONE);
|
||||
gift_number.setVisibility(View.GONE);
|
||||
imageView8.setVisibility(View.GONE);
|
||||
tv_wait.setVisibility(View.VISIBLE);
|
||||
}
|
||||
ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
new GiftWallMainTab2ClassicInfoDialog(mContext, giftData, isAnchor).setFullWindows(!isLiveRoom).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private int getSolesrRes() {
|
||||
return isStar ? R.mipmap.gift_wall_main_item_select : R.mipmap.gift_wall_main_item_select1;
|
||||
}
|
||||
|
||||
private int getUnSolesrRes() {
|
||||
return isStar ? R.mipmap.gift_wall_main_item_unselect : R.mipmap.gift_wall_main_item_unselect1;
|
||||
}
|
||||
}
|
||||
}
|
||||
253
common/src/main/java/com/yunbao/common/bean/GiftWallBean.java
Normal file
253
common/src/main/java/com/yunbao/common/bean/GiftWallBean.java
Normal file
@@ -0,0 +1,253 @@
|
||||
package com.yunbao.common.bean;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class GiftWallBean extends BaseModel {
|
||||
private IlluminateData illuminate_data;
|
||||
private int active_rank_hide;
|
||||
|
||||
|
||||
public GiftWallBean() {
|
||||
}
|
||||
|
||||
public IlluminateData getIlluminate_data() {
|
||||
return illuminate_data;
|
||||
}
|
||||
|
||||
public void setIlluminate_data(IlluminateData illuminate_data) {
|
||||
this.illuminate_data = illuminate_data;
|
||||
}
|
||||
|
||||
public int getActive_rank_hide() {
|
||||
return active_rank_hide;
|
||||
}
|
||||
|
||||
public void setActive_rank_hide(int active_rank_hide) {
|
||||
this.active_rank_hide = active_rank_hide;
|
||||
}
|
||||
|
||||
public static class IlluminateData {
|
||||
private List<Gift> week_star_data;
|
||||
private List<Gift> gift_data;
|
||||
private int week_gift_illuminate_num;
|
||||
private int week_star_gift_num;
|
||||
private int gift_illuminate_num;
|
||||
private int gift_num;
|
||||
private String gift_hall_start_date;
|
||||
private String gift_hall_end_date;
|
||||
|
||||
|
||||
public IlluminateData() {
|
||||
}
|
||||
|
||||
public String getGift_hall_start_date() {
|
||||
if(!StringUtil.isEmpty("gift_hall_start_date")){
|
||||
gift_hall_start_date=gift_hall_start_date.replace("-","/");
|
||||
}
|
||||
return gift_hall_start_date;
|
||||
}
|
||||
|
||||
public void setGift_hall_start_date(String gift_hall_start_date) {
|
||||
this.gift_hall_start_date = gift_hall_start_date;
|
||||
}
|
||||
|
||||
public String getGift_hall_end_date() {
|
||||
if(!StringUtil.isEmpty("gift_hall_end_date")){
|
||||
gift_hall_end_date=gift_hall_end_date.replace("-","/");
|
||||
}
|
||||
return gift_hall_end_date;
|
||||
}
|
||||
|
||||
public void setGift_hall_end_date(String gift_hall_end_date) {
|
||||
this.gift_hall_end_date = gift_hall_end_date;
|
||||
}
|
||||
|
||||
public List<Gift> getWeek_star_data() {
|
||||
return week_star_data;
|
||||
}
|
||||
|
||||
public void setWeek_star_data(List<Gift> week_star_data) {
|
||||
this.week_star_data = week_star_data;
|
||||
}
|
||||
|
||||
public List<Gift> getGift_data() {
|
||||
return gift_data;
|
||||
}
|
||||
|
||||
public void setGift_data(List<Gift> gift_data) {
|
||||
this.gift_data = gift_data;
|
||||
}
|
||||
|
||||
public int getWeek_gift_illuminate_num() {
|
||||
return week_gift_illuminate_num;
|
||||
}
|
||||
|
||||
public void setWeek_gift_illuminate_num(int week_gift_illuminate_num) {
|
||||
this.week_gift_illuminate_num = week_gift_illuminate_num;
|
||||
}
|
||||
|
||||
public int getWeek_star_gift_num() {
|
||||
return week_star_gift_num;
|
||||
}
|
||||
|
||||
public void setWeek_star_gift_num(int week_star_gift_num) {
|
||||
this.week_star_gift_num = week_star_gift_num;
|
||||
}
|
||||
|
||||
public int getGift_illuminate_num() {
|
||||
return gift_illuminate_num;
|
||||
}
|
||||
|
||||
public void setGift_illuminate_num(int gift_illuminate_num) {
|
||||
this.gift_illuminate_num = gift_illuminate_num;
|
||||
}
|
||||
|
||||
public int getGift_num() {
|
||||
return gift_num;
|
||||
}
|
||||
|
||||
public void setGift_num(int gift_num) {
|
||||
this.gift_num = gift_num;
|
||||
}
|
||||
}
|
||||
|
||||
public static class Gift {
|
||||
private int gift_id;
|
||||
private int sendtype;
|
||||
private String gift_name;
|
||||
private long need_coin; // 注意:这里可能需要更改为long类型,因为666666超过了int的最大值
|
||||
private String gift_icon;
|
||||
private int week_start_level;
|
||||
private int illuminate_num;
|
||||
private int gift_hall_type;
|
||||
private String gift_name_en;
|
||||
private String gift_hall_start; // 使用Java 8的LocalDate来处理日期
|
||||
private String gift_hall_end;
|
||||
private int gift_hall_send_num;
|
||||
private int illuminate_status;
|
||||
private long needcoin_total;
|
||||
|
||||
public Gift() {
|
||||
}
|
||||
|
||||
public String getGift_hall_start() {
|
||||
if(!StringUtil.isEmpty(gift_hall_start)){
|
||||
gift_hall_start=gift_hall_start.replace("-","/");
|
||||
}
|
||||
return gift_hall_start;
|
||||
}
|
||||
public String getGift_hall_end() {
|
||||
if(!StringUtil.isEmpty(gift_hall_end)){
|
||||
gift_hall_end=gift_hall_end.replace("-","/");
|
||||
}
|
||||
return gift_hall_end;
|
||||
}
|
||||
public int getGift_id() {
|
||||
return gift_id;
|
||||
}
|
||||
|
||||
public void setGift_id(int gift_id) {
|
||||
this.gift_id = gift_id;
|
||||
}
|
||||
|
||||
public int getSendtype() {
|
||||
return sendtype;
|
||||
}
|
||||
|
||||
public void setSendtype(int sendtype) {
|
||||
this.sendtype = sendtype;
|
||||
}
|
||||
|
||||
public String getGift_name() {
|
||||
return gift_name;
|
||||
}
|
||||
|
||||
public void setGift_name(String gift_name) {
|
||||
this.gift_name = gift_name;
|
||||
}
|
||||
|
||||
public long getNeed_coin() {
|
||||
return need_coin;
|
||||
}
|
||||
|
||||
public void setNeed_coin(long need_coin) {
|
||||
this.need_coin = need_coin;
|
||||
}
|
||||
|
||||
public String getGift_icon() {
|
||||
return gift_icon;
|
||||
}
|
||||
|
||||
public void setGift_icon(String gift_icon) {
|
||||
this.gift_icon = gift_icon;
|
||||
}
|
||||
|
||||
public int getWeek_start_level() {
|
||||
return week_start_level;
|
||||
}
|
||||
|
||||
public void setWeek_start_level(int week_start_level) {
|
||||
this.week_start_level = week_start_level;
|
||||
}
|
||||
|
||||
public int getIlluminate_num() {
|
||||
return illuminate_num;
|
||||
}
|
||||
|
||||
public void setIlluminate_num(int illuminate_num) {
|
||||
this.illuminate_num = illuminate_num;
|
||||
}
|
||||
|
||||
public int getGift_hall_type() {
|
||||
return gift_hall_type;
|
||||
}
|
||||
|
||||
public void setGift_hall_type(int gift_hall_type) {
|
||||
this.gift_hall_type = gift_hall_type;
|
||||
}
|
||||
|
||||
public String getGift_name_en() {
|
||||
return gift_name_en;
|
||||
}
|
||||
|
||||
public void setGift_name_en(String gift_name_en) {
|
||||
this.gift_name_en = gift_name_en;
|
||||
}
|
||||
|
||||
public void setGift_hall_start(String gift_hall_start) {
|
||||
this.gift_hall_start = gift_hall_start;
|
||||
}
|
||||
|
||||
|
||||
public void setGift_hall_end(String gift_hall_end) {
|
||||
this.gift_hall_end = gift_hall_end;
|
||||
}
|
||||
|
||||
public int getGift_hall_send_num() {
|
||||
return gift_hall_send_num;
|
||||
}
|
||||
|
||||
public void setGift_hall_send_num(int gift_hall_send_num) {
|
||||
this.gift_hall_send_num = gift_hall_send_num;
|
||||
}
|
||||
|
||||
public int getIlluminate_status() {
|
||||
return illuminate_status;
|
||||
}
|
||||
|
||||
public void setIlluminate_status(int illuminate_status) {
|
||||
this.illuminate_status = illuminate_status;
|
||||
}
|
||||
|
||||
public long getNeedcoin_total() {
|
||||
return needcoin_total;
|
||||
}
|
||||
|
||||
public void setNeedcoin_total(long needcoin_total) {
|
||||
this.needcoin_total = needcoin_total;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
package com.yunbao.common.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class GiftWallForUserBean extends BaseModel {
|
||||
private List<Gift> illuminate_data;
|
||||
private int active_rank_hide;
|
||||
|
||||
public GiftWallForUserBean() {
|
||||
}
|
||||
|
||||
public List<Gift> getIlluminate_data() {
|
||||
return illuminate_data;
|
||||
}
|
||||
|
||||
public void setIlluminate_data(List<Gift> illuminate_data) {
|
||||
this.illuminate_data = illuminate_data;
|
||||
}
|
||||
|
||||
public int getActive_rank_hide() {
|
||||
return active_rank_hide;
|
||||
}
|
||||
|
||||
public void setActive_rank_hide(int active_rank_hide) {
|
||||
this.active_rank_hide = active_rank_hide;
|
||||
}
|
||||
|
||||
public static class Gift {
|
||||
private String giftname;
|
||||
private String giftname_en;
|
||||
private String gifticon;
|
||||
private int needcoin;
|
||||
private int needcoin_total;
|
||||
private int gift_hall_send_num;
|
||||
private int illuminate_status;
|
||||
private int gift_id;
|
||||
private int id;
|
||||
|
||||
public Gift() {
|
||||
}
|
||||
|
||||
public String getGiftname() {
|
||||
return giftname;
|
||||
}
|
||||
|
||||
public void setGiftname(String giftname) {
|
||||
this.giftname = giftname;
|
||||
}
|
||||
|
||||
public String getGiftname_en() {
|
||||
return giftname_en;
|
||||
}
|
||||
|
||||
public void setGiftname_en(String giftname_en) {
|
||||
this.giftname_en = giftname_en;
|
||||
}
|
||||
|
||||
public String getGifticon() {
|
||||
return gifticon;
|
||||
}
|
||||
|
||||
public void setGifticon(String gifticon) {
|
||||
this.gifticon = gifticon;
|
||||
}
|
||||
|
||||
public int getNeedcoin() {
|
||||
return needcoin;
|
||||
}
|
||||
|
||||
public void setNeedcoin(int needcoin) {
|
||||
this.needcoin = needcoin;
|
||||
}
|
||||
|
||||
public int getNeedcoin_total() {
|
||||
return needcoin_total;
|
||||
}
|
||||
|
||||
public void setNeedcoin_total(int needcoin_total) {
|
||||
this.needcoin_total = needcoin_total;
|
||||
}
|
||||
|
||||
public int getGift_hall_send_num() {
|
||||
return gift_hall_send_num;
|
||||
}
|
||||
|
||||
public void setGift_hall_send_num(int gift_hall_send_num) {
|
||||
this.gift_hall_send_num = gift_hall_send_num;
|
||||
}
|
||||
|
||||
public int getIlluminate_status() {
|
||||
return illuminate_status;
|
||||
}
|
||||
|
||||
public void setIlluminate_status(int illuminate_status) {
|
||||
this.illuminate_status = illuminate_status;
|
||||
}
|
||||
|
||||
public int getGift_id() {
|
||||
return gift_id;
|
||||
}
|
||||
|
||||
public void setGift_id(int gift_id) {
|
||||
this.gift_id = gift_id;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,258 @@
|
||||
package com.yunbao.common.bean;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.yunbao.common.utils.RandomUtil;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GiftWallInfoBean extends BaseModel {
|
||||
@SerializedName("gift_info")
|
||||
private GiftInfo gift_info;
|
||||
@SerializedName("data")
|
||||
private List<Data> data;
|
||||
@SerializedName("is_me")
|
||||
private int is_me;
|
||||
|
||||
// 一般情况下,我们会添加getter和setter方法,但根据你的要求,这里省略
|
||||
|
||||
|
||||
@JSONField(name = "gift_info")
|
||||
public GiftInfo getGift_info() {
|
||||
return gift_info;
|
||||
}
|
||||
|
||||
@JSONField(name = "gift_info")
|
||||
public void setGift_info(GiftInfo gift_info) {
|
||||
this.gift_info = gift_info;
|
||||
}
|
||||
|
||||
@JSONField(name = "data")
|
||||
public List<Data> getData() {
|
||||
/* if (data == null || data.isEmpty()) {
|
||||
data = new ArrayList<>();
|
||||
for (int i = 0; i < 20; i++) {
|
||||
Data item = new Data();
|
||||
item.setId(i);
|
||||
item.setActive_rank_hide(i % 4 == 0 ? 0 : 1);
|
||||
item.setUser_name("用户:" + i);
|
||||
item.setGift_hall_send_num(RandomUtil.nextInt(100000));
|
||||
item.setAvatar("https://downs.yaoulive.com/manfive.png");
|
||||
data.add(item);
|
||||
}
|
||||
}*/
|
||||
return data;
|
||||
}
|
||||
|
||||
@JSONField(name = "data")
|
||||
public void setData(List<Data> data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public int getIs_me() {
|
||||
return is_me;
|
||||
}
|
||||
|
||||
public void setIs_me(int is_me) {
|
||||
this.is_me = is_me;
|
||||
}
|
||||
|
||||
// 嵌套类:GiftInfo
|
||||
public static class GiftInfo {
|
||||
@SerializedName("gift_name")
|
||||
private String giftname;
|
||||
@SerializedName("gift_name_en")
|
||||
private String giftname_en;
|
||||
@SerializedName("gift_icon")
|
||||
private String gifticon;
|
||||
@SerializedName("need_coin")
|
||||
private int needcoin;
|
||||
@SerializedName("needcoin_total")
|
||||
private int needcoin_total;
|
||||
@SerializedName("gift_hall_send_num")
|
||||
private String gift_hall_send_num;
|
||||
@SerializedName("illuminate_num")
|
||||
private int illuminate_num;
|
||||
@SerializedName("illuminate_status")
|
||||
private int illuminate_status;
|
||||
@SerializedName("gift_id")
|
||||
private int gift_id;
|
||||
@SerializedName("id")
|
||||
private int id;
|
||||
@SerializedName("gift_hall_start_date")
|
||||
private String gift_hall_start; // 使用Java 8的LocalDate来处理日期
|
||||
@SerializedName("gift_hall_end_date")
|
||||
private String gift_hall_end;
|
||||
|
||||
@JSONField(name = "gift_hall_start_date")
|
||||
public void setGift_hall_start(String gift_hall_start) {
|
||||
this.gift_hall_start = gift_hall_start;
|
||||
}
|
||||
@JSONField(name = "gift_hall_start_date")
|
||||
public String getGift_hall_start() {
|
||||
if(!StringUtil.isEmpty(gift_hall_start)){
|
||||
gift_hall_start=gift_hall_start.replace("-","/");
|
||||
}
|
||||
return gift_hall_start;
|
||||
}
|
||||
@JSONField(name = "gift_hall_end_date")
|
||||
public String getGift_hall_end() {
|
||||
if(!StringUtil.isEmpty(gift_hall_end)){
|
||||
gift_hall_end=gift_hall_end.replace("-","/");
|
||||
}
|
||||
return gift_hall_end;
|
||||
}
|
||||
|
||||
public void setGift_hall_end(String gift_hall_end) {
|
||||
this.gift_hall_end = gift_hall_end;
|
||||
}
|
||||
|
||||
// 同样地,这里省略getter和setter方法
|
||||
|
||||
public String getGiftname() {
|
||||
return giftname;
|
||||
}
|
||||
|
||||
public void setGiftname(String giftname) {
|
||||
this.giftname = giftname;
|
||||
}
|
||||
|
||||
public String getGiftname_en() {
|
||||
return giftname_en;
|
||||
}
|
||||
|
||||
public void setGiftname_en(String giftname_en) {
|
||||
this.giftname_en = giftname_en;
|
||||
}
|
||||
|
||||
public String getGifticon() {
|
||||
return gifticon;
|
||||
}
|
||||
|
||||
public void setGifticon(String gifticon) {
|
||||
this.gifticon = gifticon;
|
||||
}
|
||||
|
||||
public int getNeedcoin() {
|
||||
return needcoin;
|
||||
}
|
||||
|
||||
public void setNeedcoin(int needcoin) {
|
||||
this.needcoin = needcoin;
|
||||
}
|
||||
|
||||
public int getNeedcoin_total() {
|
||||
return needcoin_total;
|
||||
}
|
||||
|
||||
public void setNeedcoin_total(int needcoin_total) {
|
||||
this.needcoin_total = needcoin_total;
|
||||
}
|
||||
|
||||
public int getIlluminate_num() {
|
||||
return illuminate_num;
|
||||
}
|
||||
|
||||
public void setIlluminate_num(int illuminate_num) {
|
||||
this.illuminate_num = illuminate_num;
|
||||
}
|
||||
|
||||
public String getGift_hall_send_num() {
|
||||
if (StringUtil.isEmpty(gift_hall_send_num)) {
|
||||
gift_hall_send_num = "0";
|
||||
}
|
||||
return gift_hall_send_num;
|
||||
}
|
||||
|
||||
public void setGift_hall_send_num(String gift_hall_send_num) {
|
||||
this.gift_hall_send_num = gift_hall_send_num;
|
||||
}
|
||||
|
||||
public int getIlluminate_status() {
|
||||
return illuminate_status;
|
||||
}
|
||||
|
||||
public void setIlluminate_status(int illuminate_status) {
|
||||
this.illuminate_status = illuminate_status;
|
||||
}
|
||||
|
||||
public int getGift_id() {
|
||||
return gift_id;
|
||||
}
|
||||
|
||||
public void setGift_id(int gift_id) {
|
||||
this.gift_id = gift_id;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
}
|
||||
|
||||
// 嵌套类:Data
|
||||
public static class Data {
|
||||
private int gift_hall_send_num;
|
||||
private String user_name;
|
||||
private String avatar;
|
||||
private int id;
|
||||
private int active_rank_hide;
|
||||
private String create_time;
|
||||
|
||||
// 同样地,这里省略getter和setter方法
|
||||
|
||||
public int getGift_hall_send_num() {
|
||||
return gift_hall_send_num;
|
||||
}
|
||||
|
||||
public void setGift_hall_send_num(int gift_hall_send_num) {
|
||||
this.gift_hall_send_num = gift_hall_send_num;
|
||||
}
|
||||
|
||||
public String getUser_name() {
|
||||
return user_name;
|
||||
}
|
||||
|
||||
public void setUser_name(String user_name) {
|
||||
this.user_name = user_name;
|
||||
}
|
||||
|
||||
public String getAvatar() {
|
||||
return avatar;
|
||||
}
|
||||
|
||||
public void setAvatar(String avatar) {
|
||||
this.avatar = avatar;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getActive_rank_hide() {
|
||||
return active_rank_hide;
|
||||
}
|
||||
|
||||
public void setActive_rank_hide(int active_rank_hide) {
|
||||
this.active_rank_hide = active_rank_hide;
|
||||
}
|
||||
|
||||
public String getCreate_time() {
|
||||
return create_time;
|
||||
}
|
||||
|
||||
public void setCreate_time(String create_time) {
|
||||
this.create_time = create_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,312 @@
|
||||
package com.yunbao.common.bean;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class GiftWallTab2Bean extends BaseModel{
|
||||
|
||||
|
||||
@SerializedName("illuminate_data")
|
||||
private IlluminateData illuminateData;
|
||||
@SerializedName("gift_hall_start_date")
|
||||
private String gift_hall_start_date;
|
||||
@SerializedName("gift_hall_end_date")
|
||||
private String gift_hall_end_date;
|
||||
|
||||
public GiftWallTab2Bean() {
|
||||
}
|
||||
|
||||
public IlluminateData getIlluminateData() {
|
||||
return illuminateData;
|
||||
}
|
||||
|
||||
public void setIlluminateData(IlluminateData illuminateData) {
|
||||
this.illuminateData = illuminateData;
|
||||
}
|
||||
|
||||
public String getGift_hall_start_date() {
|
||||
return gift_hall_start_date;
|
||||
}
|
||||
|
||||
public void setGift_hall_start_date(String gift_hall_start_date) {
|
||||
this.gift_hall_start_date = gift_hall_start_date;
|
||||
}
|
||||
|
||||
public String getGift_hall_end_date() {
|
||||
return gift_hall_end_date;
|
||||
}
|
||||
|
||||
public void setGift_hall_end_date(String gift_hall_end_date) {
|
||||
this.gift_hall_end_date = gift_hall_end_date;
|
||||
}
|
||||
|
||||
public static class IlluminateData{
|
||||
@SerializedName("week_start_data")
|
||||
private List<Gift> weekStartData;
|
||||
@SerializedName("gift_data")
|
||||
private List<Gift> giftData;
|
||||
|
||||
public IlluminateData() {
|
||||
}
|
||||
|
||||
public List<Gift> getWeekStartData() {
|
||||
return weekStartData;
|
||||
}
|
||||
|
||||
public void setWeekStartData(List<Gift> weekStartData) {
|
||||
this.weekStartData = weekStartData;
|
||||
}
|
||||
|
||||
public List<Gift> getGiftData() {
|
||||
return giftData;
|
||||
}
|
||||
|
||||
public void setGiftData(List<Gift> giftData) {
|
||||
this.giftData = giftData;
|
||||
}
|
||||
}
|
||||
public static class Gift{
|
||||
@SerializedName("gift_id")
|
||||
public int giftId;
|
||||
|
||||
@SerializedName("sendtype")
|
||||
public int sendType;
|
||||
|
||||
@SerializedName("gift_name")
|
||||
public String giftName;
|
||||
|
||||
@SerializedName("need_coin")
|
||||
public int needCoin;
|
||||
|
||||
@SerializedName("gift_icon")
|
||||
public String giftIcon;
|
||||
|
||||
@SerializedName("week_star_level")
|
||||
public int weekStarLevel;
|
||||
|
||||
@SerializedName("illuminate_num")
|
||||
public int illuminateNum;
|
||||
|
||||
@SerializedName("gift_hall_type")
|
||||
public int giftHallType;
|
||||
|
||||
@SerializedName("gift_name_en")
|
||||
public String giftNameEn;
|
||||
|
||||
@SerializedName("gift_hall_start")
|
||||
public String giftHallStart;
|
||||
|
||||
@SerializedName("gift_hall_end")
|
||||
public String giftHallEnd;
|
||||
|
||||
@SerializedName("naming_live_id")
|
||||
public int namingLiveId;
|
||||
|
||||
@SerializedName("naming_live_nicename")
|
||||
public String namingLiveNicename;
|
||||
|
||||
@SerializedName("gift_hall_send_num")
|
||||
public int giftHallSendNum;
|
||||
|
||||
@SerializedName("naming_live_avatar")
|
||||
public String namingLiveAvatar;
|
||||
|
||||
@SerializedName("naming_live_active_rank_hide")
|
||||
public int namingLiveActiveRankHide;
|
||||
|
||||
@SerializedName("illuminate_status")
|
||||
public int illuminateStatus;
|
||||
|
||||
@SerializedName("naming_user_id")
|
||||
public int namingUserId;
|
||||
|
||||
@SerializedName("naming_user_nicename")
|
||||
public String namingUserNicename;
|
||||
|
||||
@SerializedName("naming_user_avatar")
|
||||
public String namingUserAvatar;
|
||||
|
||||
@SerializedName("naming_user_active_rank_hide")
|
||||
public int namingUserActiveRankHide;
|
||||
|
||||
@SerializedName("needcoin_total")
|
||||
public int needCoinTotal;
|
||||
|
||||
public int getGiftId() {
|
||||
return giftId;
|
||||
}
|
||||
|
||||
public void setGiftId(int giftId) {
|
||||
this.giftId = giftId;
|
||||
}
|
||||
|
||||
public int getSendType() {
|
||||
return sendType;
|
||||
}
|
||||
|
||||
public void setSendType(int sendType) {
|
||||
this.sendType = sendType;
|
||||
}
|
||||
|
||||
public String getGiftName() {
|
||||
return giftName;
|
||||
}
|
||||
|
||||
public void setGiftName(String giftName) {
|
||||
this.giftName = giftName;
|
||||
}
|
||||
|
||||
public int getNeedCoin() {
|
||||
return needCoin;
|
||||
}
|
||||
|
||||
public void setNeedCoin(int needCoin) {
|
||||
this.needCoin = needCoin;
|
||||
}
|
||||
|
||||
public String getGiftIcon() {
|
||||
return giftIcon;
|
||||
}
|
||||
|
||||
public void setGiftIcon(String giftIcon) {
|
||||
this.giftIcon = giftIcon;
|
||||
}
|
||||
|
||||
public int getWeekStarLevel() {
|
||||
return weekStarLevel;
|
||||
}
|
||||
|
||||
public void setWeekStarLevel(int weekStarLevel) {
|
||||
this.weekStarLevel = weekStarLevel;
|
||||
}
|
||||
|
||||
public int getIlluminateNum() {
|
||||
return illuminateNum;
|
||||
}
|
||||
|
||||
public void setIlluminateNum(int illuminateNum) {
|
||||
this.illuminateNum = illuminateNum;
|
||||
}
|
||||
|
||||
public int getGiftHallType() {
|
||||
return giftHallType;
|
||||
}
|
||||
|
||||
public void setGiftHallType(int giftHallType) {
|
||||
this.giftHallType = giftHallType;
|
||||
}
|
||||
|
||||
public String getGiftNameEn() {
|
||||
return giftNameEn;
|
||||
}
|
||||
|
||||
public void setGiftNameEn(String giftNameEn) {
|
||||
this.giftNameEn = giftNameEn;
|
||||
}
|
||||
|
||||
public String getGiftHallStart() {
|
||||
return giftHallStart;
|
||||
}
|
||||
|
||||
public void setGiftHallStart(String giftHallStart) {
|
||||
this.giftHallStart = giftHallStart;
|
||||
}
|
||||
|
||||
public String getGiftHallEnd() {
|
||||
return giftHallEnd;
|
||||
}
|
||||
|
||||
public void setGiftHallEnd(String giftHallEnd) {
|
||||
this.giftHallEnd = giftHallEnd;
|
||||
}
|
||||
|
||||
public int getNamingLiveId() {
|
||||
return namingLiveId;
|
||||
}
|
||||
|
||||
public void setNamingLiveId(int namingLiveId) {
|
||||
this.namingLiveId = namingLiveId;
|
||||
}
|
||||
|
||||
public String getNamingLiveNicename() {
|
||||
return namingLiveNicename;
|
||||
}
|
||||
|
||||
public void setNamingLiveNicename(String namingLiveNicename) {
|
||||
this.namingLiveNicename = namingLiveNicename;
|
||||
}
|
||||
|
||||
public int getGiftHallSendNum() {
|
||||
return giftHallSendNum;
|
||||
}
|
||||
|
||||
public void setGiftHallSendNum(int giftHallSendNum) {
|
||||
this.giftHallSendNum = giftHallSendNum;
|
||||
}
|
||||
|
||||
public String getNamingLiveAvatar() {
|
||||
return namingLiveAvatar;
|
||||
}
|
||||
|
||||
public void setNamingLiveAvatar(String namingLiveAvatar) {
|
||||
this.namingLiveAvatar = namingLiveAvatar;
|
||||
}
|
||||
|
||||
public int getNamingLiveActiveRankHide() {
|
||||
return namingLiveActiveRankHide;
|
||||
}
|
||||
|
||||
public void setNamingLiveActiveRankHide(int namingLiveActiveRankHide) {
|
||||
this.namingLiveActiveRankHide = namingLiveActiveRankHide;
|
||||
}
|
||||
|
||||
public int getIlluminateStatus() {
|
||||
return illuminateStatus;
|
||||
}
|
||||
|
||||
public void setIlluminateStatus(int illuminateStatus) {
|
||||
this.illuminateStatus = illuminateStatus;
|
||||
}
|
||||
|
||||
public int getNamingUserId() {
|
||||
return namingUserId;
|
||||
}
|
||||
|
||||
public void setNamingUserId(int namingUserId) {
|
||||
this.namingUserId = namingUserId;
|
||||
}
|
||||
|
||||
public String getNamingUserNicename() {
|
||||
return namingUserNicename;
|
||||
}
|
||||
|
||||
public void setNamingUserNicename(String namingUserNicename) {
|
||||
this.namingUserNicename = namingUserNicename;
|
||||
}
|
||||
|
||||
public String getNamingUserAvatar() {
|
||||
return namingUserAvatar;
|
||||
}
|
||||
|
||||
public void setNamingUserAvatar(String namingUserAvatar) {
|
||||
this.namingUserAvatar = namingUserAvatar;
|
||||
}
|
||||
|
||||
public int getNamingUserActiveRankHide() {
|
||||
return namingUserActiveRankHide;
|
||||
}
|
||||
|
||||
public void setNamingUserActiveRankHide(int namingUserActiveRankHide) {
|
||||
this.namingUserActiveRankHide = namingUserActiveRankHide;
|
||||
}
|
||||
|
||||
public int getNeedCoinTotal() {
|
||||
return needCoinTotal;
|
||||
}
|
||||
|
||||
public void setNeedCoinTotal(int needCoinTotal) {
|
||||
this.needCoinTotal = needCoinTotal;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,11 @@ import androidx.annotation.NonNull;
|
||||
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.lxj.xpopup.core.BottomPopupView;
|
||||
import com.yunbao.common.event.ClosePopupDialogEvent;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
/**
|
||||
* 底部弹窗
|
||||
@@ -16,12 +21,20 @@ public abstract class AbsDialogPopupWindow extends BottomPopupView {
|
||||
public AbsDialogPopupWindow(@NonNull Context context) {
|
||||
super(context);
|
||||
this.mContext = context;
|
||||
Bus.getOn(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dismiss() {
|
||||
super.dismiss();
|
||||
Bus.getOff(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* <a href="https://github.com/li-xiaojun/XPopup/wiki/5.-%E5%B8%B8%E7%94%A8%E8%AE%BE%E7%BD%AE">参考配置</a>
|
||||
*/
|
||||
public abstract void buildDialog(XPopup.Builder builder);
|
||||
|
||||
public abstract int bindLayoutId();
|
||||
|
||||
@Override
|
||||
@@ -36,4 +49,16 @@ public abstract class AbsDialogPopupWindow extends BottomPopupView {
|
||||
buildDialog(builder);
|
||||
builder.asCustom(this).show();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onWishSendGift(ClosePopupDialogEvent bean) {
|
||||
if(bean.getId()==null) {
|
||||
dismiss();
|
||||
return;
|
||||
}
|
||||
if(bean.getId().equals(getTag())) {
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* 礼物墙
|
||||
@@ -46,9 +47,15 @@ public class GiftWallDialog extends AbsDialogPopupWindow {
|
||||
private List<BaseFragment> fragments = new ArrayList<>();
|
||||
|
||||
private boolean isFullWindows;
|
||||
String toUserId;
|
||||
String userName;
|
||||
boolean isAnchor;
|
||||
|
||||
public GiftWallDialog(@NonNull Context context) {
|
||||
public GiftWallDialog(@NonNull Context context, String toUserId, String userName, boolean isAnchor) {
|
||||
super(context);
|
||||
this.toUserId = toUserId;
|
||||
this.isAnchor = isAnchor;
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public GiftWallDialog setFullWindows(boolean fullWindows) {
|
||||
@@ -86,8 +93,13 @@ public class GiftWallDialog extends AbsDialogPopupWindow {
|
||||
mViewPager = findViewById(R.id.viewPager2);
|
||||
mIvTabsLayout = findViewById(R.id.tab_layout);
|
||||
|
||||
fragments.add(new GiftWallMainTab1Fragment());
|
||||
fragments.add(new GiftWallMainTab2Fragment());
|
||||
mTvUserName.setText(String.format(Locale.getDefault(), "%s%s",
|
||||
userName,
|
||||
WordUtil.isNewZh() ? "的禮物展館" : "'s Gift Hall"
|
||||
));
|
||||
|
||||
fragments.add(new GiftWallMainTab1Fragment().setToUserId(toUserId).setAnchor(isAnchor).setLiveRoom(!isFullWindows));
|
||||
fragments.add(new GiftWallMainTab2Fragment().setToUserId(toUserId).setAnchor(isAnchor).setLiveRoom(!isFullWindows));
|
||||
mViewPager.setAdapter(new FragmentStateAdapter((FragmentActivity) mContext) {
|
||||
@NonNull
|
||||
@Override
|
||||
@@ -101,6 +113,18 @@ public class GiftWallDialog extends AbsDialogPopupWindow {
|
||||
}
|
||||
});
|
||||
mViewPager.setUserInputEnabled(false);
|
||||
mViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
super.onPageSelected(position);
|
||||
fragments.get(position).updateData();
|
||||
if(position==0){
|
||||
mTvUserName.setTextColor(Color.parseColor("#6BCDFF"));
|
||||
}else{
|
||||
mTvUserName.setTextColor(Color.parseColor("#FFCF94"));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
ViewClicksAntiShake.clicksAntiShake(mTvTab1, () -> {
|
||||
@@ -113,7 +137,7 @@ public class GiftWallDialog extends AbsDialogPopupWindow {
|
||||
mTvTab2.setTextColor(Color.parseColor("#FFFFFF"));
|
||||
mTvTab2.setTextSize(14);
|
||||
mTvTab2.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
||||
mViewPager.setCurrentItem(0,false);
|
||||
mViewPager.setCurrentItem(0, false);
|
||||
});
|
||||
ViewClicksAntiShake.clicksAntiShake(mTvTab2, () -> {
|
||||
|
||||
@@ -124,13 +148,13 @@ public class GiftWallDialog extends AbsDialogPopupWindow {
|
||||
mTvTab1.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
||||
|
||||
mTvTab2.setTextColor(Color.parseColor("#FFC593"));
|
||||
if(WordUtil.isNewZh()) {
|
||||
if (WordUtil.isNewZh()) {
|
||||
mTvTab2.setTextSize(16);
|
||||
}else{
|
||||
} else {
|
||||
mTvTab2.setTextSize(14.5f);
|
||||
}
|
||||
mTvTab2.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
||||
mViewPager.setCurrentItem(1,false);
|
||||
mViewPager.setCurrentItem(1, false);
|
||||
});
|
||||
|
||||
}
|
||||
@@ -141,11 +165,11 @@ public class GiftWallDialog extends AbsDialogPopupWindow {
|
||||
initView();
|
||||
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mIvBack.getLayoutParams();
|
||||
if (isFullWindows) {
|
||||
params.width=DpUtil.dp2px(20);
|
||||
params.width = DpUtil.dp2px(20);
|
||||
mIvBack.setVisibility(View.VISIBLE);
|
||||
mIvBg.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
} else {
|
||||
params.width=DpUtil.dp2px(1);
|
||||
params.width = DpUtil.dp2px(1);
|
||||
mIvBack.setVisibility(View.INVISIBLE);
|
||||
mIvBg.setScaleType(ImageView.ScaleType.FIT_XY);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,392 @@
|
||||
package com.yunbao.common.dialog;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.adapter.GiftWallGiftInfoListItemAdapter;
|
||||
import com.yunbao.common.bean.GiftWallInfoBean;
|
||||
import com.yunbao.common.bean.JsWishBean;
|
||||
import com.yunbao.common.custom.ItemDecoration;
|
||||
import com.yunbao.common.event.ClosePopupDialogEvent;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.ScreenDimenUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class GiftWallGiftInfoDialog extends AbsDialogPopupWindow {
|
||||
private boolean isFullWindows;
|
||||
private ImageView mIvBg;
|
||||
private ImageView mIvBack;
|
||||
TextView giftName;
|
||||
ImageView gift;
|
||||
SVGAImageView gift_bg;
|
||||
TextView diamond_text;
|
||||
TextView gift_tv_progress;
|
||||
TextView gift_tv_max;
|
||||
ProgressBar gift_progress;
|
||||
Button gift_btn;
|
||||
Button tab1, tab2;
|
||||
ImageView tips_timer;
|
||||
TextView tv_list_title;
|
||||
RoundedImageView avatar;
|
||||
TextView user_name;
|
||||
TextView send_num;
|
||||
TextView btn_one;
|
||||
Button btn_one_tips;
|
||||
Button btn_lighten;
|
||||
View tab_layout;
|
||||
View bottom_layout;
|
||||
|
||||
GiftWallGiftInfoListItemAdapter adapter;
|
||||
RecyclerView recyclerView;
|
||||
|
||||
String giftId;
|
||||
String toUserId;
|
||||
boolean isAnchor;
|
||||
int gift_hall_type = 1;
|
||||
int list_type = 1;
|
||||
private boolean isLiveRoom;
|
||||
String time;
|
||||
private boolean isStar;
|
||||
|
||||
|
||||
public GiftWallGiftInfoDialog(Context context, String giftId, String toUserId, boolean isAnchor) {
|
||||
super(context);
|
||||
this.giftId = giftId;
|
||||
this.toUserId = toUserId;
|
||||
this.isAnchor = isAnchor;
|
||||
}
|
||||
|
||||
public GiftWallGiftInfoDialog setFullWindows(boolean fullWindows) {
|
||||
isFullWindows = fullWindows;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public GiftWallGiftInfoDialog setLiveRoom(boolean isLiveRoom) {
|
||||
this.isLiveRoom = isLiveRoom;
|
||||
return this;
|
||||
}
|
||||
|
||||
public GiftWallGiftInfoDialog setStar(boolean isStar) {
|
||||
this.isStar = isStar;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getPopupHeight() {
|
||||
if (isFullWindows) {
|
||||
return super.getPopupHeight();
|
||||
}
|
||||
int screenHeight = ScreenDimenUtil.getInstance().getScreenHeight();
|
||||
return (int) (screenHeight * 0.8);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildDialog(XPopup.Builder builder) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int bindLayoutId() {
|
||||
return R.layout.dialog_gift_wall_gift_info;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate() {
|
||||
super.onCreate();
|
||||
initView();
|
||||
initData();
|
||||
}
|
||||
|
||||
void initView() {
|
||||
mIvBg = findViewById(R.id.iv_root_bg);
|
||||
mIvBack = findViewById(R.id.iv_back);
|
||||
giftName = findViewById(R.id.gift_name);
|
||||
gift = findViewById(R.id.gift);
|
||||
diamond_text = findViewById(R.id.diamond_text);
|
||||
gift_tv_progress = findViewById(R.id.gift_tv_progress);
|
||||
gift_tv_max = findViewById(R.id.gift_tv_max);
|
||||
gift_progress = findViewById(R.id.gift_progress);
|
||||
gift_btn = findViewById(R.id.gift_btn);
|
||||
tab1 = findViewById(R.id.tab1);
|
||||
tab2 = findViewById(R.id.tab2);
|
||||
tips_timer = findViewById(R.id.tips_timer);
|
||||
tv_list_title = findViewById(R.id.tv_list_title);
|
||||
avatar = findViewById(R.id.bottom_avatar);
|
||||
user_name = findViewById(R.id.bottom_user_name);
|
||||
send_num = findViewById(R.id.send_num);
|
||||
btn_one = findViewById(R.id.btn_one);
|
||||
btn_one_tips = findViewById(R.id.btn_one_tips);
|
||||
gift_bg = findViewById(R.id.gift_bg);
|
||||
btn_lighten = findViewById(R.id.btn_lighten);
|
||||
recyclerView = findViewById(R.id.recyclerView);
|
||||
tab_layout = findViewById(R.id.tab_layout);
|
||||
bottom_layout = findViewById(R.id.bottom_layout);
|
||||
adapter = new GiftWallGiftInfoListItemAdapter();
|
||||
recyclerView.setAdapter(adapter);
|
||||
recyclerView.addItemDecoration(new ItemDecoration(mContext, 0x00000000, 0, 10));
|
||||
|
||||
if (isStar) {
|
||||
tab2.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_title_star));
|
||||
((TextView) findViewById(R.id.user_name)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_list_header_rename1));
|
||||
((TextView) findViewById(R.id.tv_rename)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_list_header_rename_value1));
|
||||
tv_list_title.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_title_star));
|
||||
} else {
|
||||
tab2.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_title_champion));
|
||||
tv_list_title.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_title_champion));
|
||||
((TextView) findViewById(R.id.user_name)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_list_header_rename));
|
||||
((TextView) findViewById(R.id.tv_rename)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_list_header_rename_value));
|
||||
}
|
||||
btn_one.setVisibility(View.GONE);
|
||||
btn_one_tips.setVisibility(View.GONE);
|
||||
ViewClicksAntiShake.clicksAntiShake(tab1, () -> {
|
||||
|
||||
btn_one.setVisibility(View.GONE);
|
||||
btn_one_tips.setVisibility(View.GONE);
|
||||
|
||||
tab1.setBackgroundResource(R.drawable.gift_wall_gift_info_list_btn_up);
|
||||
tab1.setTextColor(Color.parseColor("#31326D"));
|
||||
|
||||
tab2.setBackgroundResource(R.drawable.gift_wall_gift_info_list_btn_down);
|
||||
tab2.setTextColor(Color.parseColor("#FFFFFF"));
|
||||
list_type = 1;
|
||||
initData();
|
||||
});
|
||||
ViewClicksAntiShake.clicksAntiShake(tab2, () -> {
|
||||
btn_one.setVisibility(View.VISIBLE);
|
||||
btn_one_tips.setVisibility(View.VISIBLE);
|
||||
|
||||
tab2.setBackgroundResource(R.drawable.gift_wall_gift_info_list_btn_up);
|
||||
tab2.setTextColor(Color.parseColor("#31326D"));
|
||||
|
||||
tab1.setBackgroundResource(R.drawable.gift_wall_gift_info_list_btn_down);
|
||||
tab1.setTextColor(Color.parseColor("#FFFFFF"));
|
||||
list_type = 2;
|
||||
initData();
|
||||
});
|
||||
XPopup.Builder builder = new XPopup.Builder(getContext())
|
||||
.atView(tips_timer);
|
||||
builder.hasShadowBg(false);
|
||||
tips_timer.setTag(builder);
|
||||
ViewClicksAntiShake.clicksAntiShake(tips_timer, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
XPopup.Builder b = (XPopup.Builder) tips_timer.getTag();
|
||||
b.asCustom(new GiftWallMainTab1TipsDialog(mContext, new OnItemClickListener<Integer>() {
|
||||
@Override
|
||||
public void onItemClick(Integer bean, int position) {
|
||||
|
||||
}
|
||||
}).setTime(time)).show();
|
||||
}
|
||||
});
|
||||
ViewClicksAntiShake.clicksAntiShake(btn_one, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
Bus.get().post(new JsWishBean(giftId));//setUname==by
|
||||
Bus.get().post(new ClosePopupDialogEvent());
|
||||
}
|
||||
});
|
||||
ViewClicksAntiShake.clicksAntiShake(gift_btn, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
Bus.get().post(new JsWishBean(giftId));//setUname==by
|
||||
Bus.get().post(new ClosePopupDialogEvent());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void initData() {
|
||||
if (isAnchor) {
|
||||
LiveNetManager.get(mContext)
|
||||
.liveGiftHallDetail(toUserId, giftId, gift_hall_type, list_type, new HttpCallback<GiftWallInfoBean>() {
|
||||
@Override
|
||||
public void onSuccess(GiftWallInfoBean data) {
|
||||
initData(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
LiveNetManager.get(mContext)
|
||||
.singleUserGiftHallDetail(toUserId, giftId, new HttpCallback<GiftWallInfoBean>() {
|
||||
@Override
|
||||
public void onSuccess(GiftWallInfoBean data) {
|
||||
initData(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void initData(GiftWallInfoBean giftBean) {
|
||||
giftName.setText(WordUtil.isNewZh() ? giftBean.getGift_info().getGiftname() : giftBean.getGift_info().getGiftname_en());
|
||||
ImgLoader.display(mContext, giftBean.getGift_info().getGifticon(), gift);
|
||||
diamond_text.setText(String.format(Locale.getDefault(), "%d", giftBean.getGift_info().getNeedcoin()));
|
||||
gift_tv_max.setText(String.format(Locale.getDefault(), "/%s", giftBean.getGift_info().getIlluminate_num()));
|
||||
gift_tv_progress.setText(String.format(Locale.getDefault(), "%s", giftBean.getGift_info().getGift_hall_send_num()));
|
||||
gift_progress.setMax(Integer.parseInt(giftBean.getGift_info().getGift_hall_send_num()));
|
||||
gift_progress.setProgress(giftBean.getGift_info().getNeedcoin_total());
|
||||
if (giftBean.getGift_info().getIlluminate_status() == 1) {
|
||||
gift_btn.setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_top_btn_continue));
|
||||
btn_lighten.setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_spinner_up));
|
||||
btn_lighten.setBackgroundResource(R.drawable.gift_wall_gift_info_lighten);
|
||||
} else {
|
||||
gift_btn.setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_top_btn_to));
|
||||
btn_lighten.setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_spinner_down));
|
||||
btn_lighten.setBackgroundResource(R.drawable.gift_wall_gift_info_un_lighten);
|
||||
}
|
||||
if (isAnchor) {
|
||||
tab_layout.setVisibility(View.VISIBLE);
|
||||
bottom_layout.setVisibility(View.VISIBLE);
|
||||
tv_list_title.setVisibility(View.GONE);
|
||||
} else {
|
||||
tab_layout.setVisibility(View.GONE);
|
||||
bottom_layout.setVisibility(View.GONE);
|
||||
tv_list_title.setVisibility(View.VISIBLE);
|
||||
gift_btn.setVisibility(View.GONE);
|
||||
}
|
||||
if (!isLiveRoom) {
|
||||
gift_btn.setEnabled(false);
|
||||
}
|
||||
adapter.setData(giftBean.getData());
|
||||
time = (WordUtil.isNewZh() ? "榜單結算時間" : "Settlement time") + giftBean.getGift_info().getGift_hall_start() + " - " + giftBean.getGift_info().getGift_hall_end();
|
||||
ImgLoader.display(mContext, IMLoginManager.get(mContext).getUserInfo().getAvatar(), avatar);
|
||||
user_name.setText(IMLoginManager.get(mContext).getUserInfo().getUserNicename());
|
||||
send_num.setText(String.format(Locale.getDefault(), "%s", giftBean.getGift_info().getGift_hall_send_num()));
|
||||
|
||||
String tmp = "";
|
||||
if (giftBean.getGift_info().getIlluminate_status() == 0) {//未點亮
|
||||
btn_one.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_bottom_btn_one_light));
|
||||
tmp = String.format(Locale.getDefault(), "%s", (giftBean.getGift_info().getIlluminate_num() - Integer.parseInt(giftBean.getGift_info().getGift_hall_send_num())));
|
||||
setTips(tmp);
|
||||
} else {//冠名/摘星
|
||||
if (isStar) {
|
||||
loadStar(giftBean);
|
||||
} else {
|
||||
loadChampion(giftBean);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
initAnim();
|
||||
}
|
||||
|
||||
private void setTips(String tmp) {
|
||||
btn_one_tips.setText(String.format(Locale.getDefault(), "%s%s%s"
|
||||
, WordUtil.isNewZh() ? "需" : "Need",
|
||||
tmp,
|
||||
WordUtil.isNewZh() ? "個" : ""));
|
||||
}
|
||||
|
||||
private void loadChampion(GiftWallInfoBean giftBean) {
|
||||
int tmp = 0;
|
||||
int mySend = Integer.parseInt(giftBean.getGift_info().getGift_hall_send_num());
|
||||
if (giftBean.getData() != null && !giftBean.getData().isEmpty()) {
|
||||
tmp = giftBean.getData().get(0).getGift_hall_send_num() - Integer.parseInt(giftBean.getGift_info().getGift_hall_send_num()) + 1;
|
||||
}
|
||||
if (mySend > tmp) {
|
||||
btn_one.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_bottom_btn_one_champion_get));
|
||||
btn_one_tips.setVisibility(View.GONE);
|
||||
} else {
|
||||
btn_one.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_bottom_btn_one_champion));
|
||||
setTips(String.valueOf(tmp + 1));
|
||||
}
|
||||
}
|
||||
|
||||
private void loadStar(GiftWallInfoBean giftBean) {
|
||||
int tmp = 0;
|
||||
int mySend = Integer.parseInt(giftBean.getGift_info().getGift_hall_send_num());
|
||||
if (giftBean.getData() != null && !giftBean.getData().isEmpty()) {
|
||||
tmp = giftBean.getData().get(0).getGift_hall_send_num() - Integer.parseInt(giftBean.getGift_info().getGift_hall_send_num()) + 1;
|
||||
}
|
||||
if (mySend > tmp) {
|
||||
btn_one.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_bottom_btn_one_star_get));
|
||||
btn_one_tips.setVisibility(View.GONE);
|
||||
} else {
|
||||
btn_one.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_bottom_btn_one_star));
|
||||
setTips(String.valueOf(tmp + 1));
|
||||
}
|
||||
}
|
||||
|
||||
void initAnim() {
|
||||
if (gift.getTag() != null) {
|
||||
return;
|
||||
}
|
||||
// 创建一个向上移动的动画
|
||||
ObjectAnimator upAnimator = ObjectAnimator.ofFloat(gift, "translationY", 0f, -10f); // 假设 10f 是你想要移动的距离(注意:这里使用的是像素值,而不是 dp)
|
||||
upAnimator.setDuration(1000); // 设置动画时长为 1000 毫秒(即 1 秒)
|
||||
// 创建一个向下移动的动画
|
||||
ObjectAnimator downAnimator = ObjectAnimator.ofFloat(gift, "translationY", -10f, 0f);
|
||||
downAnimator.setDuration(1000); // 同样设置动画时长为 1 秒
|
||||
// 设置动画监听器以在向上动画结束后开始向下动画(如果需要的话)
|
||||
upAnimator.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
super.onAnimationEnd(animation);
|
||||
// 在这里开始向下动画
|
||||
downAnimator.start();
|
||||
}
|
||||
});
|
||||
downAnimator.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
super.onAnimationEnd(animation);
|
||||
gift.postDelayed(upAnimator::start, 1000);
|
||||
}
|
||||
});
|
||||
// 开始向上动画
|
||||
upAnimator.start();
|
||||
gift.setTag("start");
|
||||
|
||||
new SVGAParser(getContext()).decodeFromAssets("gift_wall_gift_info_light.svga", new SVGAParser.ParseCompletion() {
|
||||
@Override
|
||||
public void onComplete(@NonNull SVGAVideoEntity videoItem) {
|
||||
gift_bg.setImageDrawable(new SVGADrawable(videoItem));
|
||||
gift_bg.setLoops(0);
|
||||
gift_bg.startAnimation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
System.err.println("-------------SVGA报错了");
|
||||
}
|
||||
}, null);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.yunbao.common.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.lxj.xpopup.core.AttachPopupView;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
|
||||
public class GiftWallMainTab1List2SpinnerDialog extends AttachPopupView {
|
||||
TextView all, up, down;
|
||||
OnItemClickListener<Integer> listener;
|
||||
|
||||
public GiftWallMainTab1List2SpinnerDialog(@NonNull Context context, OnItemClickListener<Integer> listener) {
|
||||
super(context);
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDismiss() {
|
||||
super.onDismiss();
|
||||
listener.onItemClick(-1, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getImplLayoutId() {
|
||||
return R.layout.dialog_gift_wall_main_tab1_list2_spinner;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate() {
|
||||
super.onCreate();
|
||||
all = findViewById(R.id.spinner_all);
|
||||
up = findViewById(R.id.spinner_up);
|
||||
down = findViewById(R.id.spinner_down);
|
||||
ViewClicksAntiShake.clicksAntiShake(all, () -> {
|
||||
listener.onItemClick(0, 0);
|
||||
dismiss();
|
||||
});
|
||||
|
||||
ViewClicksAntiShake.clicksAntiShake(up, () -> {
|
||||
listener.onItemClick(1, 0);
|
||||
dismiss();
|
||||
});
|
||||
|
||||
ViewClicksAntiShake.clicksAntiShake(down, () -> {
|
||||
listener.onItemClick(2, 0);
|
||||
dismiss();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.yunbao.common.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.lxj.xpopup.core.AttachPopupView;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
|
||||
public class GiftWallMainTab1TipsDialog extends AttachPopupView {
|
||||
TextView tips;
|
||||
OnItemClickListener<Integer> listener;
|
||||
String time;
|
||||
|
||||
public GiftWallMainTab1TipsDialog(@NonNull Context context, OnItemClickListener<Integer> listener) {
|
||||
super(context);
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
public GiftWallMainTab1TipsDialog setTime(String time) {
|
||||
this.time = time;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDismiss() {
|
||||
super.onDismiss();
|
||||
listener.onItemClick(-1, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getImplLayoutId() {
|
||||
return R.layout.dialog_gift_wall_main_tab1_tips;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate() {
|
||||
super.onCreate();
|
||||
tips = findViewById(R.id.tips);
|
||||
tips.setText(time);
|
||||
ViewClicksAntiShake.clicksAntiShake(tips, () -> {
|
||||
listener.onItemClick(0, 0);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.yunbao.common.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||
import androidx.viewpager2.widget.ViewPager2;
|
||||
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.bean.GiftWallTab2Bean;
|
||||
import com.yunbao.common.fragment.BaseFragment;
|
||||
import com.yunbao.common.fragment.GiftWallMainTab1Fragment;
|
||||
import com.yunbao.common.fragment.GiftWallMainTab2Fragment;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.ScreenDimenUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.views.CustomEllipsizeTextView;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class GiftWallMainTab2ClassicInfoDialog extends AbsDialogPopupWindow {
|
||||
|
||||
private ImageView mIvBg;
|
||||
private ImageView mIvTips;
|
||||
private ImageView mIvBack;
|
||||
private CustomEllipsizeTextView mTvUserName;
|
||||
private View mAchievement;
|
||||
private TextView mTvTab1, mTvTab2;
|
||||
private ViewPager2 mViewPager;
|
||||
private LinearLayout mIvTabsLayout;
|
||||
private List<BaseFragment> fragments = new ArrayList<>();
|
||||
|
||||
private boolean isFullWindows;
|
||||
GiftWallTab2Bean.Gift gift;
|
||||
String userName;
|
||||
boolean isAnchor;
|
||||
|
||||
public GiftWallMainTab2ClassicInfoDialog(@NonNull Context context, GiftWallTab2Bean.Gift gift,boolean isAnchor) {
|
||||
super(context);
|
||||
this.gift = gift;
|
||||
this.isAnchor = isAnchor;
|
||||
}
|
||||
|
||||
public GiftWallMainTab2ClassicInfoDialog setFullWindows(boolean fullWindows) {
|
||||
isFullWindows = fullWindows;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildDialog(XPopup.Builder builder) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int bindLayoutId() {
|
||||
return R.layout.dialog_gift_wall_tab2_classic_info;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getPopupHeight() {
|
||||
if (isFullWindows) {
|
||||
return super.getPopupHeight();
|
||||
}
|
||||
int screenHeight = ScreenDimenUtil.getInstance().getScreenHeight();
|
||||
return (int) (screenHeight * 0.8);
|
||||
}
|
||||
|
||||
void initView() {
|
||||
mIvBg = findViewById(R.id.iv_root_bg);
|
||||
mIvTips = findViewById(R.id.v_tips);
|
||||
mIvBack = findViewById(R.id.iv_back);
|
||||
mTvUserName = findViewById(R.id.user_name);
|
||||
mAchievement = findViewById(R.id.v_achievement);
|
||||
mTvTab1 = findViewById(R.id.tab1);
|
||||
mTvTab2 = findViewById(R.id.tab2);
|
||||
mViewPager = findViewById(R.id.viewPager2);
|
||||
mIvTabsLayout = findViewById(R.id.tab_layout);
|
||||
|
||||
mTvUserName.setText(String.format(Locale.getDefault(), "%s%s",
|
||||
userName,
|
||||
WordUtil.isNewZh() ? "的禮物展館" : "'s Gift Hall"
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate() {
|
||||
super.onCreate();
|
||||
initView();
|
||||
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mIvBack.getLayoutParams();
|
||||
if (isFullWindows) {
|
||||
params.width = DpUtil.dp2px(20);
|
||||
mIvBack.setVisibility(View.VISIBLE);
|
||||
mIvBg.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
} else {
|
||||
params.width = DpUtil.dp2px(1);
|
||||
mIvBack.setVisibility(View.INVISIBLE);
|
||||
mIvBg.setScaleType(ImageView.ScaleType.FIT_XY);
|
||||
}
|
||||
mIvBack.setLayoutParams(params);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.yunbao.common.event;
|
||||
|
||||
import com.yunbao.common.bean.BaseModel;
|
||||
|
||||
public class ClosePopupDialogEvent extends BaseModel {
|
||||
public Object id=null;
|
||||
|
||||
public ClosePopupDialogEvent(Object id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Object getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Object id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public ClosePopupDialogEvent() {
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,58 @@
|
||||
package com.yunbao.common.fragment;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.graphics.LinearGradient;
|
||||
import android.graphics.Shader;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.adapter.GiftWallMainTab1List2Adapter;
|
||||
import com.yunbao.common.bean.GiftWallBean;
|
||||
import com.yunbao.common.custom.ItemDecoration;
|
||||
import com.yunbao.common.dialog.GiftWallMainTab1List2SpinnerDialog;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class GiftWallMainTab1Fragment extends BaseFragment {
|
||||
TextView classicGiftsTitle, starGiftsTitle;
|
||||
TextView classicGiftsNumber, starGiftsNumber;
|
||||
RecyclerView recyclerView1, recyclerView2;
|
||||
View spinner;
|
||||
TextView spinnerText;
|
||||
ImageView spinnerImage;
|
||||
|
||||
GiftWallMainTab1List2Adapter list1Adapter, list2Adapter;
|
||||
|
||||
int screen;
|
||||
String toUserId;
|
||||
boolean isAnchor;
|
||||
boolean isLiveRoom;
|
||||
SVGAVideoEntity drawable;
|
||||
View classic_layout, star_layout;
|
||||
TextView show_time;
|
||||
View show_time_layout;
|
||||
|
||||
@Override
|
||||
public View createView(LayoutInflater inflater, ViewGroup container) {
|
||||
TextView textView = new TextView(getActivity());
|
||||
textView.setText("第一页");
|
||||
textView.setTextColor(Color.WHITE);
|
||||
textView.setTextSize(24);
|
||||
return textView;
|
||||
return inflater.inflate(R.layout.fragment_gift_wall_man_tab_1, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -22,9 +60,172 @@ public class GiftWallMainTab1Fragment extends BaseFragment {
|
||||
|
||||
}
|
||||
|
||||
public GiftWallMainTab1Fragment setToUserId(String toUserId) {
|
||||
this.toUserId = toUserId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public GiftWallMainTab1Fragment setAnchor(boolean anchor) {
|
||||
isAnchor = anchor;
|
||||
return this;
|
||||
}
|
||||
|
||||
public GiftWallMainTab1Fragment setLiveRoom(boolean liveRoom) {
|
||||
isLiveRoom = liveRoom;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateData() {
|
||||
super.updateData();
|
||||
list1Adapter.notifyDataSetChanged();
|
||||
list2Adapter.notifyDataSetChanged();
|
||||
|
||||
}
|
||||
|
||||
private void initData() {
|
||||
if (isAnchor) {
|
||||
LiveNetManager.get(getContext())
|
||||
.liveGiftHall(toUserId, screen, new HttpCallback<GiftWallBean>() {
|
||||
@Override
|
||||
public void onSuccess(GiftWallBean data) {
|
||||
initData(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
LiveNetManager.get(getContext())
|
||||
.singleUserGiftHall(toUserId, screen, new HttpCallback<GiftWallBean>() {
|
||||
@Override
|
||||
public void onSuccess(GiftWallBean data) {
|
||||
initData(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void initData(GiftWallBean bean) {
|
||||
list1Adapter.setDrawable(drawable);
|
||||
list1Adapter.setList(bean.getIlluminate_data().getWeek_star_data());
|
||||
list2Adapter.setList(bean.getIlluminate_data().getGift_data());
|
||||
list1Adapter.setLiveRoom(isLiveRoom);
|
||||
list2Adapter.setLiveRoom(isLiveRoom);
|
||||
|
||||
starGiftsNumber.setText(String.format(Locale.getDefault(), "%s%d/%d",
|
||||
WordUtil.getNewString(R.string.dialog_gift_wall_list_spinner_up),
|
||||
bean.getIlluminate_data().getWeek_gift_illuminate_num(),
|
||||
bean.getIlluminate_data().getWeek_star_gift_num()
|
||||
));
|
||||
classicGiftsNumber.setText(String.format(Locale.getDefault(), "%s%d/%d",
|
||||
WordUtil.getNewString(R.string.dialog_gift_wall_list_spinner_up),
|
||||
bean.getIlluminate_data().getGift_illuminate_num(),
|
||||
bean.getIlluminate_data().getGift_num()
|
||||
));
|
||||
if (bean.getIlluminate_data().getWeek_star_data() != null) {
|
||||
show_time.setText(String.format(Locale.getDefault(), "%s - %s",
|
||||
bean.getIlluminate_data().getGift_hall_start_date(),
|
||||
bean.getIlluminate_data().getGift_hall_end_date()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initViews(Bundle savedInstanceState, View contentView) {
|
||||
classicGiftsTitle = contentView.findViewById(R.id.classic_gifts_title);
|
||||
classicGiftsNumber = contentView.findViewById(R.id.classic_gifts_number);
|
||||
recyclerView1 = contentView.findViewById(R.id.recyclerView1);
|
||||
recyclerView2 = contentView.findViewById(R.id.recyclerView2);
|
||||
starGiftsTitle = contentView.findViewById(R.id.star_gifts_title);
|
||||
starGiftsNumber = contentView.findViewById(R.id.star_gifts_number);
|
||||
spinner = contentView.findViewById(R.id.classic_gift_spinner);
|
||||
spinnerText = contentView.findViewById(R.id.classic_gift_spinner_text);
|
||||
spinnerImage = contentView.findViewById(R.id.classic_gift_spinner_ic);
|
||||
classic_layout = contentView.findViewById(R.id.classic_layout);
|
||||
star_layout = contentView.findViewById(R.id.star_layout);
|
||||
show_time = contentView.findViewById(R.id.show_time);
|
||||
show_time_layout = contentView.findViewById(R.id.show_time_layout);
|
||||
|
||||
list1Adapter = new GiftWallMainTab1List2Adapter(getContext());
|
||||
list2Adapter = new GiftWallMainTab1List2Adapter(getContext());
|
||||
|
||||
list1Adapter.setToUid(toUserId);
|
||||
list2Adapter.setToUid(toUserId);
|
||||
list1Adapter.setAnchor(isAnchor);
|
||||
list2Adapter.setAnchor(isAnchor);
|
||||
list1Adapter.setStar(true);
|
||||
|
||||
recyclerView1.setAdapter(list1Adapter);
|
||||
recyclerView2.setAdapter(list2Adapter);
|
||||
|
||||
recyclerView1.addItemDecoration(new ItemDecoration(getContext(), 0x00000000, DpUtil.dp2px(10), 1));
|
||||
recyclerView2.addItemDecoration(new ItemDecoration(getContext(), 0x00000000, DpUtil.dp2px(2), 1));
|
||||
|
||||
starGiftsTitle.getPaint().setShader(new LinearGradient(0, 0, 0, classicGiftsTitle.getPaint().getTextSize(),
|
||||
Color.parseColor("#FEE8C6"), Color.parseColor("#FFD5A3"), Shader.TileMode.CLAMP));
|
||||
|
||||
classicGiftsTitle.getPaint().setShader(new LinearGradient(0, 0, 0, classicGiftsTitle.getPaint().getTextSize(),
|
||||
Color.parseColor("#A0E9FF"), Color.parseColor("#72D1FF"), Shader.TileMode.CLAMP));
|
||||
XPopup.Builder builder = new XPopup.Builder(getContext())
|
||||
.atView(spinner);
|
||||
spinner.setTag(builder);
|
||||
|
||||
if (!isAnchor) {
|
||||
show_time_layout.setVisibility(View.GONE);
|
||||
star_layout.setVisibility(View.GONE);
|
||||
}
|
||||
if (!isLiveRoom) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
ViewClicksAntiShake.clicksAntiShake(spinner, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
spinnerImage.setRotation(180);
|
||||
((XPopup.Builder) spinner.getTag()).asCustom(new GiftWallMainTab1List2SpinnerDialog(getContext(), new OnItemClickListener<Integer>() {
|
||||
@Override
|
||||
public void onItemClick(Integer bean, int position) {
|
||||
if (bean > -1) {
|
||||
screen = bean;
|
||||
initData();
|
||||
}
|
||||
switch (bean) {
|
||||
case 0:
|
||||
spinnerText.setText(R.string.dialog_gift_wall_list_spinner_all);
|
||||
break;
|
||||
case 1:
|
||||
spinnerText.setText(R.string.dialog_gift_wall_list_spinner_up);
|
||||
break;
|
||||
case 2:
|
||||
spinnerText.setText(R.string.dialog_gift_wall_list_spinner_down);
|
||||
break;
|
||||
}
|
||||
spinnerImage.setRotation(0);
|
||||
}
|
||||
})).show();
|
||||
|
||||
}
|
||||
});
|
||||
new SVGAParser(getContext()).decodeFromAssets("gift_wall_light_up.svga", new SVGAParser.ParseCompletion() {
|
||||
@Override
|
||||
public void onComplete(@NonNull SVGAVideoEntity videoItem) {
|
||||
GiftWallMainTab1Fragment.this.drawable = videoItem;
|
||||
initData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
System.err.println("-------------SVGA报错了");
|
||||
}
|
||||
}, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,20 +1,75 @@
|
||||
package com.yunbao.common.fragment;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.graphics.LinearGradient;
|
||||
import android.graphics.Shader;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.angcyo.tablayout.DslTabLayout;
|
||||
import com.angcyo.tablayout.DslTabLayoutConfig;
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.adapter.GiftWallMainTab2ListAdapter;
|
||||
import com.yunbao.common.bean.GiftWallTab2Bean;
|
||||
import com.yunbao.common.custom.ItemDecoration;
|
||||
import com.yunbao.common.dialog.GiftWallMainTab1List2SpinnerDialog;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import kotlin.jvm.functions.Function4;
|
||||
|
||||
public class GiftWallMainTab2Fragment extends BaseFragment {
|
||||
TextView classicGiftsTitle, starGiftsTitle;
|
||||
RecyclerView recyclerView1, recyclerView2;
|
||||
View spinner;
|
||||
TextView spinnerText;
|
||||
ImageView spinnerImage;
|
||||
GiftWallMainTab2ListAdapter list1Adapter, list2Adapter;
|
||||
TextView show_time;
|
||||
DslTabLayout tabLayout;
|
||||
TextView dslTab1, dslTab2;
|
||||
|
||||
|
||||
int screen;
|
||||
int type = 1;
|
||||
String toUserId;
|
||||
boolean isAnchor;
|
||||
private boolean isLiveRoom;
|
||||
|
||||
public GiftWallMainTab2Fragment setToUserId(String toUserId) {
|
||||
this.toUserId = toUserId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public GiftWallMainTab2Fragment setAnchor(boolean anchor) {
|
||||
isAnchor = anchor;
|
||||
return this;
|
||||
}
|
||||
|
||||
public GiftWallMainTab2Fragment setLiveRoom(boolean liveRoom) {
|
||||
isLiveRoom = liveRoom;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View createView(LayoutInflater inflater, ViewGroup container) {
|
||||
TextView textView = new TextView(getActivity());
|
||||
textView.setText("第二页");
|
||||
textView.setTextColor(Color.WHITE);
|
||||
textView.setTextSize(24);
|
||||
return textView;
|
||||
return inflater.inflate(R.layout.fragment_gift_wall_man_tab_2, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -24,7 +79,156 @@ public class GiftWallMainTab2Fragment extends BaseFragment {
|
||||
|
||||
@Override
|
||||
protected void initViews(Bundle savedInstanceState, View contentView) {
|
||||
classicGiftsTitle = contentView.findViewById(R.id.classic_gifts_title);
|
||||
recyclerView1 = contentView.findViewById(R.id.recyclerView1);
|
||||
recyclerView2 = contentView.findViewById(R.id.recyclerView2);
|
||||
starGiftsTitle = contentView.findViewById(R.id.star_gifts_title);
|
||||
spinner = contentView.findViewById(R.id.classic_gift_spinner);
|
||||
spinnerText = contentView.findViewById(R.id.classic_gift_spinner_text);
|
||||
spinnerImage = contentView.findViewById(R.id.classic_gift_spinner_ic);
|
||||
show_time = contentView.findViewById(R.id.show_time);
|
||||
tabLayout = findViewById(R.id.tab_layout);
|
||||
dslTab1 = findViewById(R.id.dsl_tab1);
|
||||
dslTab2 = findViewById(R.id.dsl_tab2);
|
||||
|
||||
list1Adapter = new GiftWallMainTab2ListAdapter(getContext());
|
||||
list2Adapter = new GiftWallMainTab2ListAdapter(getContext());
|
||||
|
||||
list1Adapter.setToUid(toUserId);
|
||||
list2Adapter.setToUid(toUserId);
|
||||
list1Adapter.setAnchor(isAnchor);
|
||||
list2Adapter.setAnchor(isAnchor);
|
||||
list1Adapter.setStar(true);
|
||||
|
||||
recyclerView1.setAdapter(list1Adapter);
|
||||
recyclerView2.setAdapter(list2Adapter);
|
||||
|
||||
|
||||
recyclerView1.addItemDecoration(new ItemDecoration(getContext(), 0x00000000, DpUtil.dp2px(2), 1));
|
||||
recyclerView2.addItemDecoration(new ItemDecoration(getContext(), 0x00000000, DpUtil.dp2px(2), 1));
|
||||
|
||||
starGiftsTitle.getPaint().setShader(new LinearGradient(0, 0, 0, classicGiftsTitle.getPaint().getTextSize(),
|
||||
Color.parseColor("#FEE8C6"), Color.parseColor("#FFD5A3"), Shader.TileMode.CLAMP));
|
||||
|
||||
classicGiftsTitle.getPaint().setShader(new LinearGradient(0, 0, 0, classicGiftsTitle.getPaint().getTextSize(),
|
||||
Color.parseColor("#A0E9FF"), Color.parseColor("#72D1FF"), Shader.TileMode.CLAMP));
|
||||
|
||||
setDslTabColor(dslTab1, dslTab2);
|
||||
|
||||
tabLayout.configTabLayoutConfig(new Function1<DslTabLayoutConfig, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(DslTabLayoutConfig dslTabLayoutConfig) {
|
||||
dslTabLayoutConfig.setOnSelectItemView(new Function4<View, Integer, Boolean, Boolean, Boolean>() {
|
||||
@Override
|
||||
public Boolean invoke(View itemView, Integer index, Boolean select, Boolean fromUser) {
|
||||
//当需要选中itemView时, 触发的回调.
|
||||
//返回true, 拦截库中的默认处理.
|
||||
setDslTabColor(index == 1 ? dslTab1 : dslTab2, index == 0 ? dslTab1 : dslTab2);
|
||||
type = (index + 1);
|
||||
screen=0;
|
||||
spinnerText.setText(R.string.dialog_gift_wall_list_spinner_all);
|
||||
initData();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
dslTabLayoutConfig.setOnSelectViewChange(new Function4<View, List<? extends View>, Boolean, Boolean, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(View fromView, List<? extends View> selectViewList, Boolean select, Boolean fromUser) {
|
||||
//fromView 表示之前选中的view, 多选模式不支持.
|
||||
//selectViewList 表示目前选中view的集合, 单选模式列表里面只有一个,可以使用selectViewList.get(0)获取.
|
||||
return null;
|
||||
}
|
||||
});
|
||||
dslTabLayoutConfig.setOnSelectIndexChange(new Function4<Integer, List<Integer>, Boolean, Boolean, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(Integer fromIndex, List<Integer> selectIndexList, Boolean select, Boolean fromUser) {
|
||||
//参考setOnSelectViewChange
|
||||
//只不过对象从view,变成了view在ViewGroup中的索引
|
||||
return null;
|
||||
}
|
||||
});
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
XPopup.Builder builder = new XPopup.Builder(getContext())
|
||||
.atView(spinner);
|
||||
spinner.setTag(builder);
|
||||
|
||||
ViewClicksAntiShake.clicksAntiShake(spinner, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
spinnerImage.setRotation(180);
|
||||
((XPopup.Builder) spinner.getTag()).asCustom(new GiftWallMainTab1List2SpinnerDialog(getContext(), new OnItemClickListener<Integer>() {
|
||||
@Override
|
||||
public void onItemClick(Integer bean, int position) {
|
||||
if (bean > -1) {
|
||||
screen = bean;
|
||||
initData();
|
||||
}
|
||||
switch (bean) {
|
||||
case 0:
|
||||
spinnerText.setText(R.string.dialog_gift_wall_list_spinner_all);
|
||||
break;
|
||||
case 1:
|
||||
spinnerText.setText(R.string.dialog_gift_wall_list_spinner_up);
|
||||
break;
|
||||
case 2:
|
||||
spinnerText.setText(R.string.dialog_gift_wall_list_spinner_down);
|
||||
break;
|
||||
}
|
||||
spinnerImage.setRotation(0);
|
||||
}
|
||||
})).show();
|
||||
|
||||
}
|
||||
});
|
||||
initData();
|
||||
}
|
||||
|
||||
void setDslTabColor(TextView select, TextView unSelect) {
|
||||
select.getPaint().setShader(new LinearGradient(0, 0, 0, select.getPaint().getTextSize(),
|
||||
Color.parseColor("#FEE0B6"), Color.parseColor("#FFCF95"), Shader.TileMode.CLAMP));
|
||||
unSelect.setTextColor(Color.parseColor("#FFEED8"));
|
||||
unSelect.getPaint().setShader(null);
|
||||
}
|
||||
|
||||
void initData() {
|
||||
LiveNetManager.get(getContext())
|
||||
.allGiftHall(String.valueOf(type), new HttpCallback<GiftWallTab2Bean>() {
|
||||
@Override
|
||||
public void onSuccess(GiftWallTab2Bean data) {
|
||||
if (screen != 0) {
|
||||
filtrationData(data);
|
||||
}
|
||||
initData(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void filtrationData(GiftWallTab2Bean bean) {
|
||||
Iterator<GiftWallTab2Bean.Gift> iterator = bean.getIlluminateData().getGiftData().iterator();
|
||||
while (iterator.hasNext()){
|
||||
GiftWallTab2Bean.Gift next = iterator.next();
|
||||
if (screen == 1 && next.getIlluminateStatus() != 1) {//已点亮
|
||||
iterator.remove();
|
||||
} else if (screen == 2 && next.getIlluminateStatus() == 1) {//未点亮
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void initData(GiftWallTab2Bean bean) {
|
||||
list1Adapter.setList(bean.getIlluminateData().getWeekStartData());
|
||||
list2Adapter.setList(bean.getIlluminateData().getGiftData());
|
||||
show_time.setText(String.format(Locale.getDefault(), "%s - %s",
|
||||
bean.getGift_hall_start_date(),
|
||||
bean.getGift_hall_end_date()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,8 +26,11 @@ import com.yunbao.common.bean.FansGroupGiftPackInfo;
|
||||
import com.yunbao.common.bean.GiftAlreadyWallModel;
|
||||
import com.yunbao.common.bean.GiftGuideModel;
|
||||
import com.yunbao.common.bean.GiftNamingInfoModel;
|
||||
import com.yunbao.common.bean.GiftWallBean;
|
||||
import com.yunbao.common.bean.GiftWallGiftDetail;
|
||||
import com.yunbao.common.bean.GiftWallInfoBean;
|
||||
import com.yunbao.common.bean.GiftWallModel;
|
||||
import com.yunbao.common.bean.GiftWallTab2Bean;
|
||||
import com.yunbao.common.bean.GuardGetGuardOpenInfoModel;
|
||||
import com.yunbao.common.bean.GuardGetGuardUserInfoModel;
|
||||
import com.yunbao.common.bean.HourRank;
|
||||
@@ -53,7 +56,6 @@ import com.yunbao.common.bean.NobleRankHideUserListModel;
|
||||
import com.yunbao.common.bean.NobleTrumpetModel;
|
||||
import com.yunbao.common.bean.OpenAdModel;
|
||||
import com.yunbao.common.bean.PkRankBean;
|
||||
import com.yunbao.common.bean.PrankGiftBean;
|
||||
import com.yunbao.common.bean.PrankGiftResultBean;
|
||||
import com.yunbao.common.bean.PrankHttpTurntableBean;
|
||||
import com.yunbao.common.bean.PrankProgressBean;
|
||||
@@ -1266,4 +1268,50 @@ public interface PDLiveApi {
|
||||
Observable<ResponseModel<QiniuLog>> getPrankList(
|
||||
@Query("type")String type
|
||||
);
|
||||
|
||||
/**
|
||||
* 个人展馆
|
||||
*/
|
||||
@GET("/api/public/?service=Gift.singleUserGiftHall")
|
||||
Observable<ResponseModel<GiftWallBean>> singleUserGiftHall(
|
||||
@Query("user_id")String userId,
|
||||
@Query("screen")int screen
|
||||
);
|
||||
|
||||
/**
|
||||
* 主播展馆
|
||||
*/
|
||||
@GET("/api/public/?service=Gift.liveGiftHall")
|
||||
Observable<ResponseModel<GiftWallBean>> liveGiftHall(
|
||||
@Query("live_id")String userId,
|
||||
@Query("screen")int screen
|
||||
);
|
||||
|
||||
/**
|
||||
* 个人展馆详情
|
||||
*/
|
||||
@GET("/api/public/?service=Gift.singleUserGiftHallDetail")
|
||||
Observable<ResponseModel<GiftWallInfoBean>> singleUserGiftHallDetail(
|
||||
@Query("user_id")String userId,
|
||||
@Query("gift_id")String gift_id
|
||||
);
|
||||
|
||||
/**
|
||||
* 主播展馆详情
|
||||
*/
|
||||
@GET("/api/public/?service=Gift.liveGiftHallDetail")
|
||||
Observable<ResponseModel<GiftWallInfoBean>> liveGiftHallDetail(
|
||||
@Query("live_id")String live_id,
|
||||
@Query("gift_id")String gift_id,
|
||||
@Query("gift_hall_type")int gift_hall_type,
|
||||
@Query("list_type")int list_type
|
||||
);
|
||||
|
||||
/**
|
||||
* 全站展馆
|
||||
*/
|
||||
@GET("/api/public/?service=Gift.allGiftHall")
|
||||
Observable<ResponseModel<GiftWallTab2Bean>> allGiftHall(
|
||||
@Query("type")String type
|
||||
);
|
||||
}
|
||||
|
||||
@@ -29,8 +29,11 @@ import com.yunbao.common.bean.FansGroupGiftPackInfo;
|
||||
import com.yunbao.common.bean.GiftAlreadyWallModel;
|
||||
import com.yunbao.common.bean.GiftGuideModel;
|
||||
import com.yunbao.common.bean.GiftNamingInfoModel;
|
||||
import com.yunbao.common.bean.GiftWallBean;
|
||||
import com.yunbao.common.bean.GiftWallGiftDetail;
|
||||
import com.yunbao.common.bean.GiftWallInfoBean;
|
||||
import com.yunbao.common.bean.GiftWallModel;
|
||||
import com.yunbao.common.bean.GiftWallTab2Bean;
|
||||
import com.yunbao.common.bean.GuardGetGuardOpenInfoModel;
|
||||
import com.yunbao.common.bean.GuardGetGuardUserInfoModel;
|
||||
import com.yunbao.common.bean.HttpCallbackModel;
|
||||
@@ -53,7 +56,6 @@ import com.yunbao.common.bean.NobleRankHideUserListModel;
|
||||
import com.yunbao.common.bean.NobleTrumpetModel;
|
||||
import com.yunbao.common.bean.OpenAdModel;
|
||||
import com.yunbao.common.bean.PkRankBean;
|
||||
import com.yunbao.common.bean.PrankGiftBean;
|
||||
import com.yunbao.common.bean.PrankGiftResultBean;
|
||||
import com.yunbao.common.bean.PrankHttpTurntableBean;
|
||||
import com.yunbao.common.bean.PrankProgressBean;
|
||||
@@ -99,7 +101,6 @@ import io.reactivex.schedulers.Schedulers;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.MultipartBody;
|
||||
import okhttp3.RequestBody;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
|
||||
/**
|
||||
@@ -3262,6 +3263,106 @@ public class LiveNetManager {
|
||||
}
|
||||
}).isDisposed();
|
||||
|
||||
}
|
||||
public void singleUserGiftHall(String userId,int screen, HttpCallback<GiftWallBean>callback) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.singleUserGiftHall(userId,screen)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(listResponseModel -> {
|
||||
if (callback != null) {
|
||||
callback.onSuccess(listResponseModel.getData().getInfo());
|
||||
}
|
||||
}, new Consumer<Throwable>() {
|
||||
@Override
|
||||
public void accept(Throwable throwable) throws Exception {
|
||||
throwable.printStackTrace();
|
||||
if (callback != null) {
|
||||
callback.onError(mContext.getString(R.string.net_error));
|
||||
}
|
||||
}
|
||||
}).isDisposed();
|
||||
|
||||
}
|
||||
public void liveGiftHall(String userId,int screen, HttpCallback<GiftWallBean>callback) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.liveGiftHall(userId,screen)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(listResponseModel -> {
|
||||
if (callback != null) {
|
||||
callback.onSuccess(listResponseModel.getData().getInfo());
|
||||
}
|
||||
}, new Consumer<Throwable>() {
|
||||
@Override
|
||||
public void accept(Throwable throwable) throws Exception {
|
||||
throwable.printStackTrace();
|
||||
if (callback != null) {
|
||||
callback.onError(mContext.getString(R.string.net_error));
|
||||
}
|
||||
}
|
||||
}).isDisposed();
|
||||
|
||||
}
|
||||
public void singleUserGiftHallDetail(String userId,String giftId, HttpCallback<GiftWallInfoBean>callback) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.singleUserGiftHallDetail(userId,giftId)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(listResponseModel -> {
|
||||
if (callback != null) {
|
||||
callback.onSuccess(listResponseModel.getData().getInfo());
|
||||
}
|
||||
}, new Consumer<Throwable>() {
|
||||
@Override
|
||||
public void accept(Throwable throwable) throws Exception {
|
||||
throwable.printStackTrace();
|
||||
if (callback != null) {
|
||||
callback.onError(mContext.getString(R.string.net_error));
|
||||
}
|
||||
}
|
||||
}).isDisposed();
|
||||
|
||||
}
|
||||
public void liveGiftHallDetail(String liveId,String giftId,int gift_hall_type,int list_type, HttpCallback<GiftWallInfoBean>callback) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.liveGiftHallDetail(liveId,giftId,gift_hall_type,list_type)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(listResponseModel -> {
|
||||
if (callback != null) {
|
||||
callback.onSuccess(listResponseModel.getData().getInfo());
|
||||
}
|
||||
}, new Consumer<Throwable>() {
|
||||
@Override
|
||||
public void accept(Throwable throwable) throws Exception {
|
||||
throwable.printStackTrace();
|
||||
if (callback != null) {
|
||||
callback.onError(mContext.getString(R.string.net_error));
|
||||
}
|
||||
}
|
||||
}).isDisposed();
|
||||
|
||||
}
|
||||
public void allGiftHall(String type, HttpCallback<GiftWallTab2Bean>callback) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.allGiftHall(type)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(listResponseModel -> {
|
||||
if (callback != null) {
|
||||
callback.onSuccess(listResponseModel.getData().getInfo());
|
||||
}
|
||||
}, new Consumer<Throwable>() {
|
||||
@Override
|
||||
public void accept(Throwable throwable) throws Exception {
|
||||
throwable.printStackTrace();
|
||||
if (callback != null) {
|
||||
callback.onError(mContext.getString(R.string.net_error));
|
||||
}
|
||||
}
|
||||
}).isDisposed();
|
||||
|
||||
}
|
||||
|
||||
public void updateFile(File file, HttpCallback<AvatarBean> callback) {
|
||||
|
||||
@@ -13,13 +13,14 @@ import java.util.List;
|
||||
public class SVGAViewUtils {
|
||||
private final static List<SVGAImageView> SVGA_CACHE = new ArrayList<>();
|
||||
|
||||
public static void playEndClear(SVGAImageView svga, boolean isClear, SVGACallback callback) {
|
||||
public static void playEndClear(SVGAImageView svga, boolean isClear,int loop, SVGACallback callback) {
|
||||
if (!isClear) {
|
||||
if (!SVGA_CACHE.contains(svga)) {
|
||||
SVGA_CACHE.add(svga);
|
||||
}
|
||||
}
|
||||
CrashSaveBean.getInstance().addPlaySvga();
|
||||
svga.setLoops(loop);
|
||||
svga.setCallback(new SVGACallback() {
|
||||
@Override
|
||||
public void onPause() {
|
||||
@@ -72,9 +73,11 @@ public class SVGAViewUtils {
|
||||
}
|
||||
SVGA_CACHE.clear();
|
||||
}
|
||||
|
||||
public static void playEndClear(SVGAImageView svga, boolean isClear, SVGACallback callback) {
|
||||
playEndClear(svga, isClear,1, null);
|
||||
}
|
||||
public static void playEndClear(SVGAImageView svga, boolean isClear) {
|
||||
playEndClear(svga, isClear, null);
|
||||
playEndClear(svga, isClear,null);
|
||||
}
|
||||
|
||||
public static void playEndClear(SVGAImageView svga) {
|
||||
|
||||
Reference in New Issue
Block a user