神龍送財彈窗頁面。神龍送財規則頁面

This commit is contained in:
18401019693 2024-03-06 17:18:54 +08:00
parent 6870037683
commit bc8d916445
15 changed files with 409 additions and 7 deletions

View File

@ -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<GuardPriceModel> 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;
}

View File

@ -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();
}
});
}
}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="18dp" />
<gradient
android:angle="180"
android:endColor="#FCDEC4"
android:startColor="#EEC593" />
</shape>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="15dp" />
<stroke android:width="1dp" android:color="@color/white"/>
<solid android:color="#E6454444"/>
</shape>

View File

@ -0,0 +1,87 @@
<?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">
<FrameLayout
android:layout_width="320dp"
android:layout_height="320dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@mipmap/background_dragon_rule" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
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.2"
android:text="@string/regular_bubble"
android:textSize="23sp"
android:textStyle="bold"
app:gradient_angle="180"
app:gradient_endColor="#F9E1AE"
app:gradient_startColor="#C28413" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="13dp"
android:layout_marginTop="14dp"
android:layout_marginEnd="10dp"
android:text="@string/dragon_rule1"
android:textColor="#FFE0BF"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="13dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="10dp"
android:text="@string/dragon_rule2"
android:textColor="#FFE0BF"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="13dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="10dp"
android:text="@string/dragon_rule3"
android:textColor="#FFE0BF"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="13dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="10dp"
android:text="@string/dragon_rule4"
android:textColor="#FFE0BF"
android:textSize="14sp" />
</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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1480,5 +1480,13 @@ Limited ride And limited avatar frame</string>
<string name="this_week_contribution">本周貢獻值</string>
<string name="contribution">貢獻度</string>
<string name="have_opened">已開通</string>
<string name="dragon_sends_money">神龍送財</string>
<string name="please_enter_the_number_of_gold_beans">請輸入金豆數量</string>
<string name="please_enter_the_number_of_gold_beans_hint">您本次消耗的金豆將增長您的守護經驗值</string>
<string name="open_an_activity">開啓活動</string>
<string name="dragon_rule1">1.龍神送財是您開通【神之守護】後給予直播間觀眾的福利您可選擇自定義金豆數量並召喚龍神給直播间内主播粉丝瓜分金豆數量不低於1000或者您可以選擇不开启活动</string>
<string name="dragon_rule2">2.此次金豆消耗将计入守护贡献值和经验值增长每提供10金豆將獲得1貢獻值貢獻值可用於增長守護等級</string>
<string name="dragon_rule3">3.用戶關注主播並參與活動,將在五分鐘倒計時後將獲得您提供的福利;</string>
<string name="dragon_rule4">4.此活動的最終解釋權歸PDLIVE所有。</string>
</resources>

View File

@ -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;

View File

@ -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();
}
}
}
});
}
}

View File

@ -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<String> 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();
}
});
}

View File

@ -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);

View File

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="258dp"
android:layout_height="wrap_content">
<ImageView
android:layout_width="258dp"
android:layout_height="265dp"
android:layout_marginTop="35dp"
android:src="@mipmap/background_dragon_sends_money" />
<ImageView
android:id="@+id/dragon_close"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_gravity="center_horizontal|bottom"
android:src="@mipmap/icon_dragon_close" />
<ImageView
android:id="@+id/dragon_rule"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_gravity="end"
android:src="@mipmap/icon_dragon_rule" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
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/dragon_sends_money"
android:textSize="23sp"
android:textStyle="bold"
app:gradient_angle="45"
app:gradient_endColor="#F9D78F"
app:gradient_startColor="#E59F1F" />
<EditText
android:id="@+id/dragon_money"
android:layout_width="130dp"
android:layout_height="30dp"
android:layout_marginTop="100dp"
android:background="@drawable/input_dragon_money"
android:hint="@string/please_enter_the_number_of_gold_beans"
android:inputType="number"
android:paddingStart="12dp"
android:paddingEnd="12dp"
android:singleLine="true"
android:textColor="@color/white"
android:textColorHint="#C9C7C7"
android:textSize="12sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/guard_my"
android:textColor="#000000"
android:textSize="14sp" />
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:src="@mipmap/gold_coin" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:text=":"
android:textColor="#000000"
android:textSize="14sp" />
<TextView
android:id="@+id/my_gold_coin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:text="123456789"
android:textColor="#000000"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/please_enter_the_number_of_gold_beans_hint"
android:textColor="#333333"
android:textSize="12sp" />
<Button
android:id="@+id/open_an_activity"
android:layout_width="134dp"
android:layout_height="30dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="30dp"
android:background="@drawable/button_dragon_sure"
android:gravity="center"
android:text="@string/open_an_activity"
android:textColor="#893D0D"
android:textSize="15sp" />
</LinearLayout>
</FrameLayout>