diff --git a/common/src/main/java/com/yunbao/common/dialog/AbsDialogPopupWindow.java b/common/src/main/java/com/yunbao/common/dialog/AbsDialogPopupWindow.java index c74e3ea45..6c3775ea9 100644 --- a/common/src/main/java/com/yunbao/common/dialog/AbsDialogPopupWindow.java +++ b/common/src/main/java/com/yunbao/common/dialog/AbsDialogPopupWindow.java @@ -9,7 +9,7 @@ import com.lxj.xpopup.core.BottomPopupView; public abstract class AbsDialogPopupWindow extends BottomPopupView { - private final Context mContext; + public final Context mContext; public AbsDialogPopupWindow(@NonNull Context context) { super(context); diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveContactDetailsSendGiftDialog.java b/live/src/main/java/com/yunbao/live/dialog/LiveContactDetailsSendGiftDialog.java new file mode 100644 index 000000000..7290ba84f --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/LiveContactDetailsSendGiftDialog.java @@ -0,0 +1,154 @@ +package com.yunbao.live.dialog; + +import static com.yunbao.common.utils.RouteUtil.PATH_COIN; + +import android.app.Dialog; +import android.content.Context; +import android.text.Html; +import android.text.Spanned; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.lxj.xpopup.XPopup; +import com.yunbao.common.bean.LiveGiftBean; +import com.yunbao.common.dialog.AbsDialogPopupWindow; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.http.HttpCallback; +import com.yunbao.common.utils.DialogUitl; +import com.yunbao.live.R; +import com.yunbao.live.http.LiveHttpUtil; + +import java.util.ArrayList; +import java.util.List; + +public class LiveContactDetailsSendGiftDialog extends AbsDialogPopupWindow { + TextView title; + TextView giftName; + TextView diamond; + ImageView giftIcon; + + int giftId; + String anchorName; + private String mLiveUid; + private String mStream; + LiveGiftBean bean; + + public LiveContactDetailsSendGiftDialog(@NonNull Context context) { + super(context); + } + + public LiveContactDetailsSendGiftDialog setGiftId(int giftId) { + this.giftId = giftId; + return this; + } + + public LiveContactDetailsSendGiftDialog setLiveUid(String mLiveUid) { + this.mLiveUid = mLiveUid; + return this; + } + + public LiveContactDetailsSendGiftDialog setStream(String mStream) { + this.mStream = mStream; + return this; + } + + public LiveContactDetailsSendGiftDialog setAnchorName(String anchorName) { + this.anchorName = anchorName; + return this; + } + + @Override + public void buildDialog(XPopup.Builder builder) { + + } + + @Override + public int bindLayoutId() { + return R.layout.dialog_live_contact_details_gift; + } + + @Override + protected void onCreate() { + super.onCreate(); + findViewById(R.id.back).setOnClickListener(v -> dismiss()); + findViewById(R.id.send).setOnClickListener(v -> send()); + + title = findViewById(R.id.title); + giftIcon = findViewById(R.id.gift_icon); + giftName = findViewById(R.id.gift_name); + diamond = findViewById(R.id.diamond); + + initData(); + } + + private void initData() { + LiveHttpUtil.getNewGiftList(new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 0 && info.length > 0) { + JSONObject obj = JSON.parseObject(info[0]); + JSONArray array = obj.getJSONArray("listarray"); + List list = new ArrayList<>(); + for (int i = 0; i < array.size(); i++) { + list.addAll(JSONArray.parseArray(array.getJSONObject(i).getJSONArray("giftlist").toJSONString(), LiveGiftBean.class)); + } + for (LiveGiftBean bean : list) { + if (bean.getId() == giftId) { + setData(bean); + break; + } + } + } + } + + @Override + public void onFinish() { + + } + }); + } + + private void setData(LiveGiftBean bean) { + this.bean=bean; + ImgLoader.display(mContext,bean.getIcon(),giftIcon); + diamond.setText(bean.getPrice()); + giftName.setText(bean.getName()); + Spanned spanned = Html.fromHtml( + ""+mContext.getString(R.string.live_details_sned_gift_text1)+"" + + " " + bean.getName() + " " + + ""+mContext.getString(R.string.live_details_sned_gift_text2)+"" + + " " + anchorName + " " + + ""+mContext.getString(R.string.live_details_sned_gift_text3)+"" + ); + title.setText(spanned); + } + + private void send() { + LiveHttpUtil.sendGift("0", mLiveUid, mStream, bean.getId(), "1", 1, new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 1001 || code==1005) { + new DialogUitl.Builder(mContext) + .setView(R.layout.dialog_live_unfollow) + .setConfirmString(mContext.getString(R.string.charge)) + .setContent(mContext.getString(R.string.insufficient_balance)) + .setClickCallback(new DialogUitl.SimpleCallback() { + @Override + public void onConfirmClick(Dialog dialog, String content) { + LiveContactDetailsSendGiftDialog.this.dismiss(); + ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation(); + } + }).build().show(); + }else{ + dismiss(); + } + } + }); + } +} diff --git a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java index ebca71e8f..7910bc48a 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -147,6 +147,7 @@ import com.yunbao.live.bean.WishlistItemModel; import com.yunbao.live.custom.LiveLightView; import com.yunbao.live.custom.RightGradual; import com.yunbao.live.custom.TopGradual; +import com.yunbao.live.dialog.LiveContactDetailsSendGiftDialog; import com.yunbao.live.dialog.LiveFaceUnityDialogFragment; import com.yunbao.live.dialog.LiveFansMedalDialogFragment; import com.yunbao.live.dialog.LiveGameDialogFragment; @@ -5073,17 +5074,13 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis .showDialog(); return; } - LiveGiftDialogFragment fragment = new LiveGiftDialogFragment(); - fragment.setOnDismissListener(dialog -> checkNewLetter() - ); - fragment.setOnShowListener(dialog -> mHandler.postDelayed(loading::dismiss, 500)); - Bundle bundle = new Bundle(); - bundle.putString(Constants.LIVE_UID, mLiveUid); - bundle.putString(Constants.LIVE_STREAM, mStream); - bundle.putString(Constants.LIVE_WISH_GIFTID, data.getGiftId() + ""); - bundle.putBoolean("isContactGift", true); - fragment.setArguments(bundle); - fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment"); + new LiveContactDetailsSendGiftDialog(mContext) + .setGiftId(data.getGiftId()) + .setAnchorName(mAnchorName) + .setStream(mStream) + .setLiveUid(mLiveUid) + .showDialog(); + loading.dismiss(); } @Override @@ -5151,17 +5148,13 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis .showDialog(); return; } - LiveGiftDialogFragment fragment = new LiveGiftDialogFragment(); - fragment.setOnDismissListener(dialog -> checkNewLetter() - ); - fragment.setOnShowListener(dialog -> mHandler.postDelayed(loading::dismiss, 500)); - Bundle bundle = new Bundle(); - bundle.putString(Constants.LIVE_UID, mLiveUid); - bundle.putString(Constants.LIVE_STREAM, mStream); - bundle.putString(Constants.LIVE_WISH_GIFTID, data.getGiftId() + ""); - bundle.putBoolean("isContactGift", true); - fragment.setArguments(bundle); - fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment"); + new LiveContactDetailsSendGiftDialog(mContext) + .setGiftId(data.getGiftId()) + .setAnchorName(mAnchorName) + .setStream(mStream) + .setLiveUid(mLiveUid) + .showDialog(); + loading.dismiss(); } @Override diff --git a/live/src/main/res/drawable/background_d6e8fe.xml b/live/src/main/res/drawable/background_d6e8fe.xml new file mode 100644 index 000000000..fb55461a0 --- /dev/null +++ b/live/src/main/res/drawable/background_d6e8fe.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/drawable/bg_item_live_send_details_gift.xml b/live/src/main/res/drawable/bg_item_live_send_details_gift.xml new file mode 100644 index 000000000..07cd54a13 --- /dev/null +++ b/live/src/main/res/drawable/bg_item_live_send_details_gift.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/dialog_live_contact_details_gift.xml b/live/src/main/res/layout/dialog_live_contact_details_gift.xml new file mode 100644 index 000000000..99c21fb7c --- /dev/null +++ b/live/src/main/res/layout/dialog_live_contact_details_gift.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/mipmap-xhdpi/ic_contact_details_back.png b/live/src/main/res/mipmap-xhdpi/ic_contact_details_back.png new file mode 100644 index 000000000..94a90f78d Binary files /dev/null and b/live/src/main/res/mipmap-xhdpi/ic_contact_details_back.png differ diff --git a/live/src/main/res/values-en/strings.xml b/live/src/main/res/values-en/strings.xml index f4b3db2d3..62effd87e 100644 --- a/live/src/main/res/values-en/strings.xml +++ b/live/src/main/res/values-en/strings.xml @@ -93,4 +93,8 @@ Minute Please select You have been banned + Confirm + Give + Obtain the + letter and contact information \ No newline at end of file diff --git a/live/src/main/res/values/strings.xml b/live/src/main/res/values/strings.xml index 9e1539431..46d3ec1c6 100644 --- a/live/src/main/res/values/strings.xml +++ b/live/src/main/res/values/strings.xml @@ -91,4 +91,8 @@ 分鐘 請選擇禁言時間 您已被禁言 + 確認獲取 + 贈送 + 會獲取到 + 的信件與聯繫方式