diff --git a/common/src/main/java/com/yunbao/common/bean/GuardDataTipModel.java b/common/src/main/java/com/yunbao/common/bean/GuardDataTipModel.java index d08b56f6b..ded88a7eb 100644 --- a/common/src/main/java/com/yunbao/common/bean/GuardDataTipModel.java +++ b/common/src/main/java/com/yunbao/common/bean/GuardDataTipModel.java @@ -1,5 +1,7 @@ package com.yunbao.common.bean; +import android.text.TextUtils; + import com.google.gson.annotations.SerializedName; import java.util.List; @@ -65,7 +67,7 @@ public class GuardDataTipModel extends BaseModel { @SerializedName("open_img") private String openImg; @SerializedName("is_open") - private boolean isOpen; + private String isOpen; @SerializedName("price") private List price; @SerializedName("guard_privilege") @@ -108,11 +110,15 @@ public class GuardDataTipModel extends BaseModel { } public boolean isOpen() { + return TextUtils.equals(isOpen, "1"); + } + + public String getIsOpen() { return isOpen; } - public GuardDataTipModel setOpen(boolean open) { - isOpen = open; + public GuardDataTipModel setIsOpen(String isOpen) { + this.isOpen = isOpen; return this; } diff --git a/common/src/main/java/com/yunbao/common/dialog/DragonRulePopup.java b/common/src/main/java/com/yunbao/common/dialog/DragonRulePopup.java new file mode 100644 index 000000000..65678bb32 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/dialog/DragonRulePopup.java @@ -0,0 +1,33 @@ +package com.yunbao.common.dialog; + +import android.content.Context; + +import androidx.annotation.NonNull; + +import com.lxj.xpopup.core.CenterPopupView; +import com.yunbao.common.R; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +public class DragonRulePopup extends CenterPopupView { + public DragonRulePopup(@NonNull Context context) { + super(context); + } + + // 返回自定义弹窗的布局 + @Override + protected int getImplLayoutId() { + return R.layout.dragon_rule_popup; + } + + // 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑 + @Override + protected void onCreate() { + super.onCreate(); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.dragon_close), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + dismiss(); + } + }); + } +} diff --git a/common/src/main/res/drawable/button_dragon_sure.xml b/common/src/main/res/drawable/button_dragon_sure.xml new file mode 100644 index 000000000..c722e1673 --- /dev/null +++ b/common/src/main/res/drawable/button_dragon_sure.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/input_dragon_money.xml b/common/src/main/res/drawable/input_dragon_money.xml new file mode 100644 index 000000000..431619486 --- /dev/null +++ b/common/src/main/res/drawable/input_dragon_money.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/dragon_rule_popup.xml b/common/src/main/res/layout/dragon_rule_popup.xml new file mode 100644 index 000000000..d7223a9ea --- /dev/null +++ b/common/src/main/res/layout/dragon_rule_popup.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/mipmap-xxhdpi/background_dragon_rule.png b/common/src/main/res/mipmap-xxhdpi/background_dragon_rule.png new file mode 100644 index 000000000..9e272b03e Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/background_dragon_rule.png differ diff --git a/common/src/main/res/mipmap-xxhdpi/background_dragon_sends_money.png b/common/src/main/res/mipmap-xxhdpi/background_dragon_sends_money.png new file mode 100644 index 000000000..ba898d489 Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/background_dragon_sends_money.png differ diff --git a/common/src/main/res/mipmap-xxhdpi/icon_dragon_close.png b/common/src/main/res/mipmap-xxhdpi/icon_dragon_close.png new file mode 100644 index 000000000..ae5a359d7 Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/icon_dragon_close.png differ diff --git a/common/src/main/res/mipmap-xxhdpi/icon_dragon_rule.png b/common/src/main/res/mipmap-xxhdpi/icon_dragon_rule.png new file mode 100644 index 000000000..c63251cee Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/icon_dragon_rule.png differ diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 796942da7..0906f22b0 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1480,5 +1480,13 @@ Limited ride And limited avatar frame 本周貢獻值 貢獻度 已開通 + 神龍送財 + 請輸入金豆數量 + 您本次消耗的金豆將增長您的守護經驗值 + 開啓活動 + 1.龍神送財是您開通【神之守護】後給予直播間觀眾的福利,您可選擇自定義金豆數量並召喚龍神給直播间内主播粉丝瓜分(金豆數量不低於1000),或者您可以選擇不开启活动; + 2.此次金豆消耗将计入守护贡献值和经验值增长,每提供10金豆將獲得1貢獻值,貢獻值可用於增長守護等級; + 3.用戶關注主播並參與活動,將在五分鐘倒計時後將獲得您提供的福利; + 4.此活動的最終解釋權歸PDLIVE所有。 diff --git a/live/src/main/java/com/yunbao/live/bean/CoinModel.java b/live/src/main/java/com/yunbao/live/bean/CoinModel.java index b78325dbd..0d45a6fe5 100644 --- a/live/src/main/java/com/yunbao/live/bean/CoinModel.java +++ b/live/src/main/java/com/yunbao/live/bean/CoinModel.java @@ -31,6 +31,7 @@ public class CoinModel extends BaseModel { //包裹红点 @SerializedName("users_pack_red_dot") private String usersPackRedDot; + private long goldMoney; public String getCoin() { long coinMoney = Long.parseLong(coin); @@ -56,7 +57,7 @@ public class CoinModel extends BaseModel { } public String getGold() { - long goldMoney = Long.parseLong(gold); + goldMoney = Long.parseLong(gold); if (999999999 < goldMoney && goldMoney <= 999999999999L) { gold = gold.substring(0, gold.length() - 3); gold = gold + "k"; @@ -68,6 +69,15 @@ public class CoinModel extends BaseModel { return gold; } + public long getGoldMoney() { + return goldMoney; + } + + public CoinModel setGoldMoney(long goldMoney) { + this.goldMoney = goldMoney; + return this; + } + public CoinModel setGold(String gold) { this.gold = gold; return this; diff --git a/live/src/main/java/com/yunbao/live/dialog/DragonSendsMoneyPopup.java b/live/src/main/java/com/yunbao/live/dialog/DragonSendsMoneyPopup.java new file mode 100644 index 000000000..96efea8e1 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/DragonSendsMoneyPopup.java @@ -0,0 +1,94 @@ +package com.yunbao.live.dialog; + +import android.content.Context; +import android.text.TextUtils; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.blankj.utilcode.util.GsonUtils; +import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.core.CenterPopupView; +import com.yunbao.common.dialog.DragonRulePopup; +import com.yunbao.common.http.HttpCallback; +import com.yunbao.common.http.LiveHttpUtil; +import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.R; +import com.yunbao.live.bean.CoinModel; + +public class DragonSendsMoneyPopup extends CenterPopupView { + TextView my_gold_coin; + long goldMoney; + EditText dragon_money; + + public DragonSendsMoneyPopup(@NonNull Context context) { + super(context); + } + + // 返回自定义弹窗的布局 + @Override + protected int getImplLayoutId() { + return R.layout.dragon_sends_money_popup; + } + + // 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑 + @Override + protected void onCreate() { + super.onCreate(); + my_gold_coin = findViewById(R.id.my_gold_coin); + dragon_money = findViewById(R.id.dragon_money); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.dragon_close), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + dismiss(); + } + }); ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.dragon_rule), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + new XPopup.Builder(getContext()) + .asCustom(new DragonRulePopup(getContext())) + .show(); + } + }); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.open_an_activity), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + String dragonMoney = dragon_money.getText().toString().trim(); + if (!TextUtils.isEmpty(dragonMoney)) { + long money = Long.parseLong(dragonMoney); + if (goldMoney>money){ + + }else { + ToastUtil.show(WordUtil.isNewZh() ? "輸入數量不能大於自己的金豆總數量" : "The input quantity cannot be greater than the total number of gold beans"); + } + + }else { + ToastUtil.show(WordUtil.isNewZh() ? "輸入數量不能大於自己的金豆總數量" : "The input quantity cannot be greater than the total number of gold beans"); + } + + } + }); + getCoin(); + } + + private void getCoin() { + LiveHttpUtil.getCoin(new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 0 && info.length > 0) { + if (!TextUtils.isEmpty(info[0])) { + CoinModel coinModel = GsonUtils.fromJson(info[0], CoinModel.class); + + my_gold_coin.setText(coinModel.getGold()); + goldMoney = coinModel.getGoldMoney(); + } + } + } + + + }); + } +} diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveBuyGuardDialog.java b/live/src/main/java/com/yunbao/live/dialog/LiveBuyGuardDialog.java index c9a16d99b..2c9de83e3 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveBuyGuardDialog.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveBuyGuardDialog.java @@ -1,6 +1,7 @@ package com.yunbao.live.dialog; import android.animation.ObjectAnimator; +import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.graphics.Color; @@ -29,13 +30,20 @@ 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; @@ -66,7 +74,7 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow { RecyclerView guardPrivilege; LiveBuyGuardPrivilegeAdapter buyGuardPrivilegeAdapter; List guardPrivilegeStrings = new ArrayList<>(); - + GuardDataTipModel dataTipModel; public LiveBuyGuardDialog(@NonNull Context context, String liveUid) { super(context); activity = (FragmentActivity) context; @@ -110,7 +118,7 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow { @Override public void onSuccess(GuardGetGuardOpenInfoModel data) { guardDataTipModels = data.getGuardData(); - guardDataTipModels.get(0).setOpen(true); +// guardDataTipModels.get(0).setOpen(true); for (GuardDataTipModel guardDataTipModel : guardDataTipModels) { BuyGuardBannerModel guardBannerModel = new BuyGuardBannerModel(); guardBannerModel.setGuardianMedal(guardDataTipModel.isOpen() ? guardDataTipModel.getOpenImg() : guardDataTipModel.getCloseImg()) @@ -176,7 +184,7 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow { @Override public void onPageSelected(int position) { BuyGuardBannerModel guardBannerModel = buyGuardBannerModels.get(position); - GuardDataTipModel dataTipModel = guardDataTipModels.get(position); + dataTipModel = guardDataTipModels.get(position); price = dataTipModel.getPrice(); Log.e("LiveBuyGuardDialog", "name = " + guardBannerModel.getName() + " position=" + position); if (position == 0) { @@ -263,6 +271,28 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow { .show(); } }); + 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(); + } + }); } diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveGuardDialog.java b/live/src/main/java/com/yunbao/live/dialog/LiveGuardDialog.java index 561daba2b..2a4407f81 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveGuardDialog.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveGuardDialog.java @@ -149,9 +149,11 @@ public class LiveGuardDialog extends AbsDialogPopupWindow { ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.btn_guard_open), new ViewClicksAntiShake.ViewClicksCallBack() { @Override public void onViewClicks() { + dismiss(); new LiveBuyGuardDialog(mContext, mLiveUid).showDialog(); } }); + //神龙送财 userNickname.setVisibility(GONE); weekContribution.setVisibility(GONE); userSex.setVisibility(GONE); diff --git a/live/src/main/res/layout/dragon_sends_money_popup.xml b/live/src/main/res/layout/dragon_sends_money_popup.xml new file mode 100644 index 000000000..6dc4ce7ed --- /dev/null +++ b/live/src/main/res/layout/dragon_sends_money_popup.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +