對接開通接口神龍送財的im消息

This commit is contained in:
18401019693
2024-03-13 11:18:26 +08:00
parent bc8d916445
commit 50b6deaf01
53 changed files with 1438 additions and 225 deletions

View File

@@ -21,6 +21,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.GsonUtils;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.activity.AbsActivity;
@@ -1266,6 +1267,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
if (uid == null) {
uid = mLiveUid;
}
MobclickAgent.onEvent(mContext, "guardian_people", "守护席点击次数及人数");
LiveHttpUtil.getGuardList(uid, 1, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {

View File

@@ -45,6 +45,7 @@ import com.yunbao.common.bean.AnchorRecommendItemModel;
import com.yunbao.common.bean.AnchorRecommendModel;
import com.yunbao.common.bean.CrashSaveBean;
import com.yunbao.common.bean.CustomSidebarChildModel;
import com.yunbao.common.bean.GuardMaturityDateRemindModel;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.LinkMicUserBean;
import com.yunbao.common.bean.LiveBean;
@@ -108,6 +109,7 @@ import com.yunbao.live.adapter.VerticalPagerAdapter;
import com.yunbao.live.bean.ImUserBean;
import com.yunbao.live.bean.LiveChatBean;
import com.yunbao.live.bean.LiveGuardInfo;
import com.yunbao.live.dialog.DragonExpirePopup;
import com.yunbao.live.dialog.LiveFansFragment;
import com.yunbao.live.dialog.LiveGameDialogFragment;
import com.yunbao.live.dialog.LiveGiftPopup;
@@ -865,7 +867,7 @@ public class LiveAudienceActivity extends LiveActivity {
if (!TextUtils.isEmpty(event.getMethod())) {
if (TextUtils.equals(event.getMethod(), "closeLiveRoom")) {
onBackPressed();
}else if (TextUtils.equals(event.getMethod(), "androidtoCommunityVideo")) {
} else if (TextUtils.equals(event.getMethod(), "androidtoCommunityVideo")) {
RouteUtil.forwardCommunityActivity();
}
}
@@ -1476,6 +1478,11 @@ public class LiveAudienceActivity extends LiveActivity {
manager.showXydComplete(event.getXydCompleteModel(), event.getLiveReceiveGiftBean());
}
break;
case GuardSpecialEffect:
if (manager != null) {
manager.guardSpecialEffect(event.getLiveReceiveGiftBean());
}
break;
case VOTE_CREATE:
case VOTE_UPDATE:
LiveRoomVoteModel voteModel = new LiveRoomVoteModel();
@@ -1909,6 +1916,21 @@ public class LiveAudienceActivity extends LiveActivity {
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onGuardMaturityDateRemind(GuardMaturityDateRemindModel maturityDateRemindModel) {
Log.e("DateRemindModel", maturityDateRemindModel.toString());
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
new XPopup.Builder(mContext)
.asCustom(new DragonExpirePopup(mContext, mLiveUid, maturityDateRemindModel))
.show();
}
}, 3000);
}
/**
* 检查消息,有未读就要显示红点
*/

View File

@@ -62,6 +62,46 @@ public class LiveReceiveGiftBean extends BaseModel {
private String namingUserAvatar;
private String namingStatus;
private String namingCoin;
private String medal_name;
private String msg;
private String msg_en;
private String guard_type;
public String getMsg() {
return msg;
}
public LiveReceiveGiftBean setMsg(String msg) {
this.msg = msg;
return this;
}
public String getMsg_en() {
return msg_en;
}
public LiveReceiveGiftBean setMsg_en(String msg_en) {
this.msg_en = msg_en;
return this;
}
public String getGuard_type() {
return guard_type;
}
public LiveReceiveGiftBean setGuard_type(String guard_type) {
this.guard_type = guard_type;
return this;
}
public String getMedal_name() {
return medal_name;
}
public LiveReceiveGiftBean setMedal_name(String medal_name) {
this.medal_name = medal_name;
return this;
}
public String getNamingLiveuid() {
return namingLiveuid;

View File

@@ -0,0 +1,112 @@
package com.yunbao.live.dialog;
import android.content.Context;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import com.lxj.xpopup.core.CenterPopupView;
import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.bean.GuardMaturityDateRemindModel;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
public class DragonExpirePopup extends CenterPopupView {
FragmentActivity activity;
String mLiveUid;
RoundedImageView liveAvatar;
RoundedImageView userAvatar;
TextView guardTitleTop;
TextView dueInGuard;
TextView userName;
TextView guardianPrivilege;
TextView dueIn;
TextView dueInGuard2;
GuardMaturityDateRemindModel maturityDateRemindModel;
public DragonExpirePopup(@NonNull Context context, String liveUid, GuardMaturityDateRemindModel maturityDateRemindModel) {
super(context);
activity = (FragmentActivity) context;
mLiveUid = liveUid;
this.maturityDateRemindModel = maturityDateRemindModel;
}
// 返回自定义弹窗的布局
@Override
protected int getImplLayoutId() {
return R.layout.dragon_expire_popup;
}
// 执行初始化操作比如findView设置点击或者任何你弹窗内的业务逻辑
@Override
protected void onCreate() {
super.onCreate();
liveAvatar = findViewById(R.id.live_avatar);
userAvatar = findViewById(R.id.user_avatar);
guardTitleTop = findViewById(R.id.guard_title_top);
dueInGuard = findViewById(R.id.due_in_guard);
userName = findViewById(R.id.user_name);
guardianPrivilege = findViewById(R.id.guardian_privilege);
dueInGuard2 = findViewById(R.id.due_in_guard2);
dueIn = findViewById(R.id.due_in);
ImgLoader.display(getContext(), maturityDateRemindModel.getUserAvatar(), userAvatar);
ImgLoader.display(getContext(), maturityDateRemindModel.getLiveAvatar(), liveAvatar);
String guardName = WordUtil.isNewZh() ? "星之守護" : "Star Guardian";
switch (maturityDateRemindModel.getGuardType()) {
case "1":
guardName = WordUtil.isNewZh() ? "星之守護" : "Star Guardian";
break;
case "2":
guardName = WordUtil.isNewZh() ? "王之守護" : "King Guardian";
break;
default:
guardName = WordUtil.isNewZh() ? "神之守護" : "God Guardian";
break;
}
StringBuffer guardTitleTopBuffer = new StringBuffer();
if (WordUtil.isNewZh()) {
guardTitleTopBuffer.append("您的")
.append(guardName);
} else {
guardTitleTopBuffer.append("Your")
.append(guardName);
}
if (maturityDateRemindModel.getIsOverdue() == 0) {
guardianPrivilege.setText(WordUtil.getNewString(R.string.continuative_guardian_privilege));
dueIn.setText(WordUtil.isNewZh() ? "還有" : "Due in ");
dueInGuard2.setText(WordUtil.isNewZh() ? "天到期" : " days ");
} else {
guardianPrivilege.setText(WordUtil.getNewString(R.string.continuative_guardian_privilege2));
dueIn.setText(WordUtil.isNewZh() ? "已到期" : "Expired ");
dueInGuard2.setText(WordUtil.isNewZh() ? "" : " days ");
}
dueInGuard.setText(String.valueOf(maturityDateRemindModel.getDays()));
guardTitleTop.setText(guardTitleTopBuffer.toString());
StringBuffer userNameBuffer = new StringBuffer();
userNameBuffer.append(maturityDateRemindModel.getLiveNicename())
.append("&")
.append(maturityDateRemindModel.getUserNicename());
userName.setText(userNameBuffer.toString());
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.dragon_close), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
dismiss();
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.travel_renewal), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
dismiss();
new LiveBuyGuardDialog(activity, mLiveUid).showDialog();
}
});
}
}

View File

@@ -0,0 +1,31 @@
package com.yunbao.live.dialog;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.live.R;
public class DragonSendMoneyListPopup extends AbsDialogPopupWindow {
FragmentActivity activity;
String mLiveUid;
public DragonSendMoneyListPopup(@NonNull Context context, String liveUid) {
super(context);
activity = (FragmentActivity) context;
mLiveUid = liveUid;
}
@Override
public void buildDialog(XPopup.Builder builder) {
}
@Override
public int bindLayoutId() {
return R.layout.dialog_dragon_send_money_list;
}
}

View File

@@ -6,6 +6,7 @@ import android.widget.EditText;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import com.blankj.utilcode.util.GsonUtils;
import com.lxj.xpopup.XPopup;
@@ -23,9 +24,13 @@ public class DragonSendsMoneyPopup extends CenterPopupView {
TextView my_gold_coin;
long goldMoney;
EditText dragon_money;
String mLiveUid;
FragmentActivity activity;
public DragonSendsMoneyPopup(@NonNull Context context) {
public DragonSendsMoneyPopup(@NonNull Context context, String liveUid) {
super(context);
activity = (FragmentActivity) context;
mLiveUid = liveUid;
}
// 返回自定义弹窗的布局

View File

@@ -0,0 +1,38 @@
package com.yunbao.live.dialog;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import com.lxj.xpopup.core.CenterPopupView;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
public class GuardUpgradePopup extends CenterPopupView {
FragmentActivity activity;
String mLiveUid;
public GuardUpgradePopup(@NonNull Context context, String liveUid) {
super(context);
activity = (FragmentActivity) context;
mLiveUid = liveUid;
}
@Override
protected int getImplLayoutId() {
return R.layout.guard_upgrade_popup;
}
// 执行初始化操作比如findView设置点击或者任何你弹窗内的业务逻辑
@Override
protected void onCreate() {
super.onCreate();
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.confirm), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
dismiss();
}
});
}
}

View File

@@ -26,24 +26,20 @@ import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.enums.PopupPosition;
import com.makeramen.roundedimageview.RoundedImageView;
import com.stx.xhb.androidx.XBanner;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.adapter.LiveBuyGuardPrivilegeAdapter;
import com.yunbao.common.bean.GuardDataTipModel;
import com.yunbao.common.bean.GuardGetGuardOpenInfoModel;
import com.yunbao.common.bean.GuardPriceModel;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.LiveAiRobotBean;
import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.dialog.GuardBuyTipsDialog;
import com.yunbao.common.dialog.LiveBuyGuardSelectPopup;
import com.yunbao.common.event.LiveRobotSayHelloEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.InputCustomPopup;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
import com.yunbao.live.bean.BuyGuardBannerModel;
@@ -75,6 +71,7 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow {
LiveBuyGuardPrivilegeAdapter buyGuardPrivilegeAdapter;
List<String> guardPrivilegeStrings = new ArrayList<>();
GuardDataTipModel dataTipModel;
public LiveBuyGuardDialog(@NonNull Context context, String liveUid) {
super(context);
activity = (FragmentActivity) context;
@@ -129,15 +126,15 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow {
if (guardDataTipModel.getGuardType() == 1) {
guardBannerModel.setGradientColors(gradientColorsStart)
.setGuardOpen(R.mipmap.icon_bg_star_guard_open)
.setGuardImage(R.mipmap.bg_star_guard);
.setGuardImage(WordUtil.isNewZh()?R.mipmap.bg_star_guard:R.mipmap.bg_star_guard_en);
} else if (guardDataTipModel.getGuardType() == 2) {
guardBannerModel.setGuardOpen(R.mipmap.icon_bg_king_guard_open)
.setGradientColors(gradientColorsKing)
.setGuardImage(R.mipmap.bg_king_guard);
.setGuardImage(WordUtil.isNewZh()?R.mipmap.bg_king_guard:R.mipmap.bg_king_guard_en);
} else {
guardBannerModel.setGuardOpen(R.mipmap.icon_god_guard_open)
.setGradientColors(gradientColorsGod)
.setGuardImage(R.mipmap.bg_god_guard);
.setGuardImage(WordUtil.isNewZh()?R.mipmap.bg_god_guard:R.mipmap.bg_god_guard_en);
}
buyGuardBannerModels.add(guardBannerModel);
}
@@ -188,20 +185,23 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow {
price = dataTipModel.getPrice();
Log.e("LiveBuyGuardDialog", "name = " + guardBannerModel.getName() + " position=" + position);
if (position == 0) {
MobclickAgent.onEvent(mContext, "star_guardian_people", "星之守护页面观看次数及人数");
bottomPanel.setBackgroundResource(R.drawable.bg_star_guard_bottom_panel);
ImgLoader.display(getContext(), R.mipmap.btn_star_guard, btnGuard);
openTheGuard.setText(dataTipModel.isOpen() ? WordUtil.getNewString(R.string.renew_the_start_guard)
openTheGuard.setText(dataTipModel.isOpen() ? WordUtil.getNewString(R.string.renewal_guardian)
: WordUtil.getNewString(R.string.open_the_start_guard));
} else if (position == 1) {
MobclickAgent.onEvent(mContext, "king_guardian_people", "王之守护页面观看次数及人数");
bottomPanel.setBackgroundResource(R.drawable.bg_king_guard_bottom_panel);
ImgLoader.display(getContext(), R.mipmap.btn_king_guard, btnGuard);
openTheGuard.setText(dataTipModel.isOpen() ? WordUtil.getNewString(R.string.renew_the_kings_guard)
openTheGuard.setText(dataTipModel.isOpen() ? WordUtil.getNewString(R.string.renewal_guardian)
: WordUtil.getNewString(R.string.open_the_kings_guard));
} else if (position == 2) {
MobclickAgent.onEvent(mContext, "god_guardian_people", "神之守护页面观看次数及人数");
bottomPanel.setBackgroundResource(R.drawable.bg_god_guard_bottom_panel);
ImgLoader.display(getContext(), R.mipmap.btn_god_guard, btnGuard);
openTheGuard.setText(dataTipModel.isOpen() ? WordUtil.getNewString(R.string.renew_the_god_guard)
openTheGuard.setText(dataTipModel.isOpen() ? WordUtil.getNewString(R.string.renewal_guardian)
: WordUtil.getNewString(R.string.open_the_god_guard));
}
guardPriceModel = price.get(0);
@@ -213,12 +213,23 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow {
originalPrice.setVisibility(VISIBLE);
discount.setVisibility(VISIBLE);
discountPrice.setText(String.valueOf(guardPriceModel.getDiscountPrice()));
originalPrice.setText(String.valueOf(guardPriceModel.getOriginalPrice()));
discount.setText(String.valueOf(guardPriceModel.getDiscount()));
originalPrice.post(new Runnable() {
@Override
public void run() {
// SpannableString spannableString = new SpannableString(String.valueOf(guardPriceModel.getOriginalPrice()));
// StrikethroughSpan strikethroughSpan = new StrikethroughSpan();
// spannableString.setSpan(strikethroughSpan, 0, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
originalPrice.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
originalPrice.setText(String.valueOf(guardPriceModel.getOriginalPrice()));
}
});
}
guardMonth.setText(guardPriceModel.getOpeningTime());
guardPrivilegeStrings = dataTipModel.getGuardPrivilege();
if (buyGuardPrivilegeAdapter != null){
if (buyGuardPrivilegeAdapter != null) {
buyGuardPrivilegeAdapter.setGuardPrivilege(guardPrivilegeStrings);
}
@@ -244,29 +255,40 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow {
.isLightStatusBar(false)
.popupPosition(PopupPosition.Top)
.asCustom(new LiveBuyGuardSelectPopup(getContext(), price)
.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
closeAnimSudGameListEvent(guardArrow);
}
}).setBuyGuardSelectListener(new LiveBuyGuardSelectPopup.LiveBuyGuardSelectListener() {
@Override
public void onLiveBuyGuardSelectListener(GuardPriceModel model) {
guardPriceModel = model;
if (TextUtils.isEmpty(guardPriceModel.getDiscountPrice())) {
discountPrice.setText(String.valueOf(guardPriceModel.getOriginalPrice()));
originalPrice.setVisibility(GONE);
discount.setVisibility(GONE);
} else {
originalPrice.setVisibility(VISIBLE);
discount.setVisibility(VISIBLE);
discountPrice.setText(String.valueOf(guardPriceModel.getDiscountPrice()));
originalPrice.setText(String.valueOf(guardPriceModel.getOriginalPrice()));
discount.setText(String.valueOf(guardPriceModel.getDiscount()));
}
guardMonth.setText(guardPriceModel.getOpeningTime());
}
})
.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
closeAnimSudGameListEvent(guardArrow);
}
}).setBuyGuardSelectListener(new LiveBuyGuardSelectPopup.LiveBuyGuardSelectListener() {
@Override
public void onLiveBuyGuardSelectListener(GuardPriceModel model) {
guardPriceModel = model;
if (TextUtils.isEmpty(guardPriceModel.getDiscountPrice())) {
discountPrice.setText(String.valueOf(guardPriceModel.getOriginalPrice()));
originalPrice.setVisibility(GONE);
discount.setVisibility(GONE);
} else {
originalPrice.setVisibility(VISIBLE);
discount.setVisibility(VISIBLE);
discountPrice.setText(String.valueOf(guardPriceModel.getDiscountPrice()));
discount.setText(String.valueOf(guardPriceModel.getDiscount()));
originalPrice.post(new Runnable() {
@Override
public void run() {
// SpannableString spannableString = new SpannableString(String.valueOf(guardPriceModel.getOriginalPrice()));
// StrikethroughSpan strikethroughSpan = new StrikethroughSpan();
// spannableString.setSpan(strikethroughSpan, 0, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
// originalPrice.setText(spannableString);
originalPrice.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
originalPrice.setText(String.valueOf(guardPriceModel.getOriginalPrice()));
}
});
}
guardMonth.setText(guardPriceModel.getOpeningTime());
}
})
)
.show();
}
@@ -274,23 +296,50 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow {
ViewClicksAntiShake.clicksAntiShake(openTheGuard, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
// GuardBuyTipsDialog
// .showBuyOrRenewDialog(mContext,
// discountPrice.getText().toString(),
// dataTipModel.getGuardName(), new DialogUitl.SimpleCallback2() {
// @Override
// public void onCancelClick() {
//
// }
//
// @Override
// public void onConfirmClick(Dialog dialog, String content) {
// dismiss();
// }
// });
new XPopup.Builder(mContext)
.asCustom(new DragonSendsMoneyPopup(mContext))
.show();
switch (dataTipModel.getGuardType()) {
case 1:
MobclickAgent.onEvent(mContext, "star_guardian_renew_btn", "星之守护开通/续费按钮点击次数及人数");
break;
case 2:
MobclickAgent.onEvent(mContext, "king_guardian_renew_btn", "王之守护开通/续费按钮点击次数及人数");
break;
case 3:
MobclickAgent.onEvent(mContext, "god_guardian_renew_btn", "神之守护开通/续费按钮点击次数及人数");
break;
}
GuardBuyTipsDialog
.showBuyOrRenewDialog(mContext,
discountPrice.getText().toString(),
dataTipModel.getGuardName(), new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
dismiss();
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveNetManager.get(activity)
.openGuard(mLiveUid,
String.valueOf(dataTipModel.getGuardType()),
String.valueOf(guardPriceModel.getPriceKey()), new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
ToastUtil.show(data);
dismiss();
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
});
// new XPopup.Builder(mContext)
// .asCustom(new DragonSendsMoneyPopup(mContext))
// .show();
}
});

View File

@@ -3,7 +3,6 @@ package com.yunbao.live.dialog;
import android.content.Context;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
@@ -15,6 +14,7 @@ import com.alibaba.fastjson.JSON;
import com.lxj.xpopup.XPopup;
import com.makeramen.roundedimageview.RoundedImageView;
import com.opensource.svgaplayer.SVGAImageView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.bean.GuardGetGuardUserInfoModel;
import com.yunbao.common.custom.CommonRefreshView;
@@ -52,7 +52,7 @@ public class LiveGuardDialog extends AbsDialogPopupWindow {
ImageView userSex, tagKing;
RoundedImageView guardIcon;
SVGAImageView giftSvga;
ImageView btnGuardOpen;
TextView btnGuardOpen;
public LiveGuardDialog(@NonNull Context context, boolean isEmpty, String liveUid) {
super(context);
@@ -144,11 +144,13 @@ public class LiveGuardDialog extends AbsDialogPopupWindow {
guardingTheAnchor.setVisibility(VISIBLE);
} else {
guardingTheAnchor.setVisibility(GONE);
}
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.btn_guard_open), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "guardian_renew_btn", "守护席开通守护/续费守护按钮点击次数及人数");
dismiss();
new LiveBuyGuardDialog(mContext, mLiveUid).showDialog();
}
@@ -167,12 +169,11 @@ public class LiveGuardDialog extends AbsDialogPopupWindow {
if (data.getGuardType() == 0) {
guardianTask.setVisibility(GONE);
myGraudGrade.setVisibility(GONE);
ImgLoader.display(mContext,R.mipmap.btn_guard_open,btnGuardOpen);
btnGuardOpen.setText(WordUtil.isNewZh() ? "開通守護" : "Open Guard");
} else {
guardianTask.setVisibility(VISIBLE);
myGraudGrade.setVisibility(VISIBLE);
ImgLoader.display(mContext,R.mipmap.btn_renewal_guard,btnGuardOpen);//续费守护
btnGuardOpen.setText(WordUtil.isNewZh() ? "續費守護" : "Renewal Guard");
}
}
@@ -182,7 +183,7 @@ public class LiveGuardDialog extends AbsDialogPopupWindow {
ToastUtil.show(error);
guardianTask.setVisibility(GONE);
myGraudGrade.setVisibility(GONE);
ImgLoader.display(mContext,R.mipmap.btn_guard_open,btnGuardOpen);
btnGuardOpen.setText(WordUtil.isNewZh() ? "開通守護" : "Open Guard");
}
});
}

View File

@@ -488,7 +488,8 @@ public class LiveAudienceEvent extends BaseModel {
GIFT_WALL(73, "礼物墙"),
UPDATE_FANS_TASK_STATUS(74, "更新粉丝任务状态"),
SUD_GAME_CREATE_ROOM(75, "主播创建sud游戏"),
PK_RANK_START(76, "PK排位赛开始");
PK_RANK_START(76, "PK排位赛开始"),
GuardSpecialEffect(77, "PK排位赛开始");
private int type;
private String name;

View File

@@ -24,6 +24,7 @@ import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.AiAutomaticSpeechModel;
import com.yunbao.common.bean.FansModel;
import com.yunbao.common.bean.GuardMaturityDateRemindModel;
import com.yunbao.common.bean.LinkMicUserBean;
import com.yunbao.common.bean.LiveUserGiftBean;
import com.yunbao.common.bean.MsgModel;
@@ -680,6 +681,7 @@ public class SocketRyClient {
.setCustomFullServiceNotifyEvent(customFullServiceNotifyEvent));
break;
case Constants.XYD_COMPLETE:
// xydComplete(map);
XydCompleteModel xydCompleteModel = GsonUtils.fromJson(map.toString(), XydCompleteModel.class);
EventBus.getDefault().post(new LiveAudienceEvent()
@@ -687,6 +689,13 @@ public class SocketRyClient {
.setXydCompleteModel(xydCompleteModel)
.setLiveReceiveGiftBean(JSON.parseObject(map.toString(), LiveReceiveGiftBean.class)));
break;
case "GuardSpecialEffect":
LiveReceiveGiftBean giftBean= JSON.parseObject(map.toString(), LiveReceiveGiftBean.class);
giftBean.setMedal_name(map.getString("medal_name"));
EventBus.getDefault().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.GuardSpecialEffect)
.setLiveReceiveGiftBean(giftBean));
break;
case Constants.WISH_LIST_PROGRESS:
StringBuffer conString = new StringBuffer();
conString.append(WordUtil.isNewZh() ? map.getString("msg") : map.getString("msg_en"));
@@ -782,13 +791,17 @@ public class SocketRyClient {
item.getString("pkuid_win_continuity");
pkRankBean = new PkRankBean();
pkRankBean.setBlueVal(item.getString("pkuid_win_continuity"));
pkRankBean.setRedVal( item.getString("uid_win_continuity"));
pkRankBean.setRedVal(item.getString("uid_win_continuity"));
pkRankBean.setPkTopImgUrl(item.getString("pktt_img"));
EventBus.getDefault().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.PK_RANK_START)
.setObject(pkRankBean));
break;
case "guardMaturityDateRemind":
GuardMaturityDateRemindModel maturityDateRemindModel = GsonUtils.fromJson(map.toString(), GuardMaturityDateRemindModel.class);
Bus.get().post(maturityDateRemindModel);
break;
}
}

View File

@@ -161,7 +161,9 @@ import com.yunbao.live.bean.LiveWishlistBean;
import com.yunbao.live.bean.WishlistItemModel;
import com.yunbao.live.custom.LiveLightView;
import com.yunbao.live.custom.RightGradual;
import com.yunbao.live.dialog.DragonSendsMoneyPopup;
import com.yunbao.live.dialog.GiftWallDialog;
import com.yunbao.live.dialog.GuardUpgradePopup;
import com.yunbao.live.dialog.LiveContactDetailsSendGiftDialog;
import com.yunbao.live.dialog.LiveFaceUnityDialogFragment;
import com.yunbao.live.dialog.LiveFansMedalDialogFragment;
@@ -617,6 +619,27 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
}
public void guardSpecialEffect(LiveReceiveGiftBean liveReceiveGiftBean) {
LiveChatBean chatBean = new LiveChatBean();
chatBean.setContent(
(WordUtil.isNewZh() ? liveReceiveGiftBean.getMsg() : liveReceiveGiftBean.getMsg_en()));
chatBean.setType(LiveChatBean.SYSTEM);
mLiveChatAdapter.insertItem(chatBean);
Log.e("guardSpecialEffect", "msg" + liveReceiveGiftBean.getMsg() + "msg-en" + liveReceiveGiftBean.getMsg_en() + "guard_type" + liveReceiveGiftBean.getGuard_type());
if (mLiveGiftAnimPresenter == null) {
mLiveGiftAnimPresenter = new LiveGiftAnimPresenter(mContext, mContentView, mGifImageView, mSVGAImageView, mLiveGiftPrizePoolContainer, windowManager);
}
liveReceiveGiftBean.setGiftId(liveReceiveGiftBean.getGiftName());
mLiveGiftAnimPresenter.showGifGift(liveReceiveGiftBean);
// if (TextUtils.equals(String.valueOf(IMLoginManager.get(mContext).getUserInfo().getId()), liveReceiveGiftBean.getUid())
// && TextUtils.equals(liveReceiveGiftBean.getGuard_type(), "3")) {
new XPopup.Builder(mContext)
.asCustom(new DragonSendsMoneyPopup(mContext, mLiveUid))
.show();
// }
}
List<XydCompleteModel> xydCompleteModels = new ArrayList<>();
@@ -1568,8 +1591,19 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
pa_pao_layout.setVisibility(View.GONE);
combo_layout.setVisibility(View.GONE);
dragonImmediateParticipation = (LinearLayout) findViewById(R.id.dragon_immediate_participation);
ViewClicksAntiShake.clicksAntiShake(dragonImmediateParticipation, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
// new DragonSendMoneyListPopup(mContext, mLiveUid).showDialog();
new XPopup.Builder(mContext)
.asCustom(new GuardUpgradePopup(mContext, mLiveUid))
.show();
}
});
}
private LinearLayout dragonImmediateParticipation;
private FrameLayout redPacket;
private TextView redPacketCountdown, redSchedule, openRedPacket;
private LinearLayout redPacketQueue;

View File

@@ -449,7 +449,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
public void run() {
//加入房间发送Im消息
LiveNetManager.get(mContext).userJoinRoomNew(mLiveBean.getStream(), mLiveBean.getUid());
Log.e("观看时长","userJoinRoomNew-----------------------"+mLiveBean.getUid());
Log.e("观看时长", "userJoinRoomNew-----------------------" + mLiveBean.getUid());
}
};
@@ -462,7 +462,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
.enterRoomNew(mLiveBean.getStream(), mLiveBean.getUid(), mLiveBean.getCity(), new com.yunbao.common.http.base.HttpCallback<EnterRoomNewModel>() {
@Override
public void onSuccess(EnterRoomNewModel data) {
Log.e("观看时长","enterRoomNew-----------------------"+ mLiveBean.getUid());
Log.e("观看时长", "enterRoomNew-----------------------" + mLiveBean.getUid());
isEnterRoom = true;
if (TextUtils.isEmpty(leaveStream)) {
leaveStream = mLiveBean.getStream();
@@ -624,7 +624,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
if (pkInfo != null && pkInfo.getIntValue("drpk_status") != 1) {
String pkUid = pkInfo.getString("pkuid");
//初始化天梯赛信息
mLiveRoomViewHolder.initRankPKInfo(String.valueOf(data.getLiveInfo().getUid()),pkUid);
mLiveRoomViewHolder.initRankPKInfo(String.valueOf(data.getLiveInfo().getUid()), pkUid);
anyway = "1";
if (!TextUtils.isEmpty(pkUid) && !"0".equals(pkUid) && anyway.equals("0")) {
if (mLiveSDK != Constants.LIVE_SDK_TX) {
@@ -817,7 +817,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
Log.e("直播间接口调用排查", "onRemove---------------");
LiveNetManager.get(mContext).cancelLive();
liveHandler.removeCallbacks(sendFIm);
pkInfo=null;
pkInfo = null;
linkMicPkStartHandler.removeCallbacks(linkMicPkStartRunnable);
LiveHttpUtil.cancel(LiveHttpConsts.CHECK_LIVE);
LiveHttpUtil.cancel(LiveHttpConsts.ENTER_ROOM);
@@ -2171,6 +2171,12 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
}
public void guardSpecialEffect(LiveReceiveGiftBean liveReceiveGiftBean) {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.guardSpecialEffect(liveReceiveGiftBean);
}
}
public void blindBoxAllServerNotify(AllServerNotifyEvent event) {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.blindBoxAllServerNotify(event);

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:topLeftRadius="12dp"
android:topRightRadius="12dp" />
<gradient
android:angle="90"
android:endColor="#1B1814"
android:startColor="#2D2720" />
</shape>

View File

@@ -19,6 +19,9 @@
android:layout_height="wrap_content"
android:layout_marginStart="11dp"
android:layout_marginTop="60dp"
android:maxWidth="200dp"
android:maxLines="1"
android:ellipsize="end"
android:text="@string/be_their_exclusive_guardian"
android:textColor="#FAE3B9"
android:textSize="12sp" />
@@ -52,7 +55,7 @@
android:layout_gravity="center"
android:letterSpacing="0.1"
android:text="@string/not_yet_open"
android:textSize="16sp"
android:textSize="12sp"
android:visibility="visible"
app:gradient_angle="45"
app:gradient_endColor="#FFF2D7"
@@ -95,6 +98,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:maxWidth="150dp"
android:text="@string/tas_guardian_group"
android:textColor="#FDECCB"
android:textSize="12sp" />

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="450dp"
android:layout_gravity="bottom"
android:background="@drawable/backgroud_dragon_send_money_list"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="15dp">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:src="@mipmap/icon_live_dragon_money_back" />
<ImageView
android:id="@+id/dragon_rule"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_gravity="end"
android:src="@mipmap/icon_dragon_rule" />
<com.flyjingfish.gradienttextviewlib.GradientTextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:letterSpacing="0.1"
android:text="@string/dragon_sends_money"
android:textSize="18sp"
android:textStyle="bold"
app:gradient_angle="45"
app:gradient_endColor="#F9D78F"
app:gradient_startColor="#E59F1F" />
</FrameLayout>
</LinearLayout>

View File

@@ -58,8 +58,8 @@
android:layout_height="match_parent"
android:layout_marginTop="9dp"
android:layout_marginBottom="73dp"
android:paddingEnd="9dp"
android:overScrollMode="never"
android:paddingEnd="9dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="4"
tools:itemCount="10"
@@ -111,13 +111,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/original_price"
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="564000"
android:textColor="@color/white"
android:textSize="14sp" />
android:layout_height="wrap_content">
<TextView
android:id="@+id/original_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="564000"
android:textColor="@color/white"
android:textSize="14sp" />
</FrameLayout>
<TextView
android:id="@+id/discount"

View File

@@ -77,6 +77,7 @@
<FrameLayout
android:id="@+id/guardian_task"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
@@ -91,9 +92,9 @@
android:textSize="12sp" />
<View
android:layout_width="48dp"
android:layout_width="53dp"
android:layout_height="1dp"
android:layout_gravity="bottom"
android:layout_gravity="bottom|center_horizontal"
android:background="#E8C7F9" />
</FrameLayout>
@@ -186,28 +187,35 @@
</RelativeLayout>
<FrameLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="71dp"
android:layout_gravity="bottom"
android:background="@drawable/background_live_guard3">
<TextView
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center_vertical"
android:layout_marginStart="18dp"
android:layout_marginEnd="16dp"
android:layout_marginEnd="20dp"
android:text="@string/guardian_for_your_favorite_anchor"
android:textColor="@color/white"
android:textSize="14sp" />
<ImageView
<TextView
android:id="@+id/btn_guard_open"
android:layout_width="124dp"
android:layout_height="42dp"
android:gravity="center"
android:textSize="16sp"
android:textColor="@color/white"
android:textStyle="bold"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="16dp"
android:text="續費守護"
android:background="@mipmap/btn_guard_open" />
</FrameLayout>
</LinearLayout>
</FrameLayout>

View File

@@ -0,0 +1,144 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:id="@+id/guard_title_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="您的神之守護"
android:textColor="#FEECDC"
android:textSize="25sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center">
<TextView
android:id="@+id/due_in"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/due_in"
android:textColor="#FEECDC"
android:textSize="25sp"
android:textStyle="bold" />
<TextView
android:id="@+id/due_in_guard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:text="2"
android:textColor="#F9AB71"
android:textSize="35sp"
android:textStyle="bold" />
<TextView
android:id="@+id/due_in_guard2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/due_in_guard"
android:textColor="#FEECDC"
android:textSize="25sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="9dp">
<ImageView
android:layout_width="262dp"
android:layout_height="202dp"
android:src="@mipmap/bg_dragon_expire" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:orientation="vertical">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="23dp">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/user_avatar"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="25dp"
android:scaleType="centerCrop"
android:src="@mipmap/icon_male_default"
app:riv_oval="true" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/live_avatar"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_vertical"
android:scaleType="centerCrop"
android:src="@mipmap/icon_male_default"
app:riv_oval="true" />
</FrameLayout>
<TextView
android:id="@+id/user_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="9dp"
android:text="主播昵稱&amp;用戶昵稱"
android:textColor="#FFE0BF"
android:textSize="14sp" />
<TextView
android:id="@+id/guardian_privilege"
android:layout_width="220dp"
android:layout_height="35dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:text="@string/continuative_guardian_privilege"
android:textColor="#FFE0BF"
android:textSize="12sp" />
<Button
android:id="@+id/travel_renewal"
android:layout_width="203dp"
android:layout_height="37dp"
android:layout_marginTop="10dp"
android:background="@drawable/button_dragon_expire"
android:gravity="center"
android:text="@string/travel_renewal"
android:textColor="#F3D0B7"
android:textSize="15sp" />
</LinearLayout>
</FrameLayout>
<ImageView
android:id="@+id/dragon_close"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginTop="30dp"
android:src="@mipmap/icon_dragon_close" />
</LinearLayout>

View File

@@ -98,6 +98,8 @@
<TextView
android:layout_width="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_height="wrap_content"
android:text="@string/please_enter_the_number_of_gold_beans_hint"
android:textColor="#333333"

View File

@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<com.flyjingfish.gradienttextviewlib.GradientTextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:letterSpacing="0.1"
android:text="@string/congratulations_on_the_promotion"
android:textSize="30sp"
android:textStyle="bold"
app:gradient_angle="45"
app:gradient_endColor="@color/white"
app:gradient_startColor="@color/white"
app:gradient_stroke_endColor="#F86A01"
app:gradient_stroke_startColor="#F9CB22"
app:gradient_stroke_strokeWidth="5dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:gravity="center"
android:text="@string/guard_level_has_been_reached"
android:textColor="#FFE0BF"
android:textSize="14sp" />
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="258dp"
android:layout_height="174dp"
android:layout_marginTop="52dp"
android:src="@mipmap/background_guard_upgrade" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="13dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:scaleType="fitXY"
android:src="@mipmap/tequan_1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:gravity="center"
android:text="獎勵名稱"
android:textColor="#FF8503"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="12dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:scaleType="fitXY"
android:src="@mipmap/tequan_1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:gravity="center"
android:text="獎勵名稱"
android:textColor="#FF8503"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="13dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:scaleType="fitXY"
android:src="@mipmap/tequan_1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:gravity="center"
android:text="獎勵名稱"
android:textColor="#FF8503"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginStart="13dp"
android:layout_marginEnd="13dp"
android:layout_marginBottom="38dp">
<Button
android:layout_width="94dp"
android:layout_height="36dp"
android:background="@drawable/button_guard_upgrade"
android:text="@string/view_grade"
android:textColor="#893D0D"
android:textSize="14sp" />
<Button
android:id="@+id/confirm"
android:layout_width="94dp"
android:layout_height="36dp"
android:layout_gravity="end"
android:background="@drawable/button_guard_upgrade"
android:text="@string/confirm"
android:textColor="#893D0D"
android:textSize="14sp" />
</FrameLayout>
</FrameLayout>
</LinearLayout>

View File

@@ -43,9 +43,9 @@
android:id="@+id/level_anchor"
android:layout_width="13dp"
android:layout_height="13dp"
android:visibility="gone"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true" />
android:layout_alignParentBottom="true"
android:visibility="gone" />
</RelativeLayout>
<LinearLayout
@@ -2545,4 +2545,57 @@
android:layout_marginEnd="125dp"
android:src="@mipmap/background_quick_gift_reminder"
android:visibility="gone" />
<LinearLayout
android:id="@+id/dragon_immediate_participation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="180dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="36dp"
android:layout_height="39dp"
android:src="@mipmap/icon_live_dragon_money" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-5dp"
android:background="@drawable/background_dragon_immediate_participation"
android:padding="1dp"
android:text="@string/dragon_immediate_participation"
android:textColor="#F9BA03"
android:textSize="10sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/dragon_immediate_participation_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="120dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="36dp"
android:layout_height="39dp"
android:src="@mipmap/icon_live_dragon_money" />
<TextView
android:layout_width="45dp"
android:layout_height="wrap_content"
android:layout_marginTop="-5dp"
android:background="@drawable/background_dragon_immediate_participation"
android:gravity="center"
android:padding="1dp"
android:text="00:00"
android:textColor="#F9BA03"
android:textSize="10sp"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 33 KiB