From 122d5842fed351ab4d4d3bdb821dc90123d90be9 Mon Sep 17 00:00:00 2001 From: wzq Date: Mon, 25 Sep 2023 16:00:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E5=85=85=E5=80=BC?= =?UTF-8?q?=E9=A1=B5=E8=B7=B3=E8=BD=AC=E7=A7=81=E8=81=8A=E5=AE=A2=E6=9C=8D?= =?UTF-8?q?=E5=85=85=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yizhuan/erban/ui/im/ImInitHelper.java | 5 ++ .../chat/MsgViewHolderP2PContactRecharge.java | 81 ++++++++++++++++++ .../yizhuan/erban/ui/pay/ChargeActivity.java | 28 ++++-- .../bg_msg_vh_p2p_contact_recharge.webp | Bin 0 -> 8216 bytes ..._view_holder_customer_service_recharge.xml | 35 ++++++++ app/src/main/res/values/strings.xml | 4 +- .../im/custom/bean/CustomAttachParser.java | 5 ++ .../im/custom/bean/CustomAttachment.java | 7 ++ .../bean/P2PContactRechargeAttachment.java | 26 ++++++ .../xchat_android_core/pay/IPayModel.java | 2 + .../xchat_android_core/pay/PayModel.java | 17 +++- 11 files changed, 203 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderP2PContactRecharge.java create mode 100644 app/src/main/res/drawable-xhdpi/bg_msg_vh_p2p_contact_recharge.webp create mode 100644 app/src/main/res/layout/layout_msg_view_holder_customer_service_recharge.xml create mode 100644 core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/P2PContactRechargeAttachment.java diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java b/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java index 7441cdded..41b0ec718 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java +++ b/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java @@ -22,6 +22,7 @@ import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity; import com.yizhuan.erban.ui.im.chat.MsgViewHolderAudioParty; import com.yizhuan.erban.ui.im.chat.MsgViewHolderChatHint; import com.yizhuan.erban.ui.im.chat.MsgViewHolderContent; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderP2PContactRecharge; import com.yizhuan.erban.ui.im.chat.MsgViewHolderFairy; import com.yizhuan.erban.ui.im.chat.MsgViewHolderGift; import com.yizhuan.erban.ui.im.chat.MsgViewHolderHello; @@ -43,6 +44,7 @@ import com.yizhuan.xchat_android_core.im.custom.bean.CarAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.CarveUpGoldThirdLevelAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.ChatHintAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.CpInviteAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.P2PContactRechargeAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.FairySendAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.GiftAttachment; import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingFamilyAttachment; @@ -169,6 +171,9 @@ public class ImInitHelper { //CP NimUIKit.registerMsgItemViewHolder(CpInviteAttachment.class, MsgViewHolderText.class); NimUIKit.registerMsgItemViewHolder(FairySendAttachment.class, MsgViewHolderFairy.class); + // 客服充值 + NimUIKit.registerMsgItemViewHolder(P2PContactRechargeAttachment.class, MsgViewHolderP2PContactRecharge.class); + NimUIKit.setSessionListener(listener); NimUIKit.setContactEventListener(listener1); } diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderP2PContactRecharge.java b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderP2PContactRecharge.java new file mode 100644 index 000000000..272c9b895 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderP2PContactRecharge.java @@ -0,0 +1,81 @@ + +package com.yizhuan.erban.ui.im.chat; + +import android.text.SpannableString; +import android.text.method.LinkMovementMethod; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; +import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; +import com.yizhuan.erban.R; +import com.yizhuan.erban.common.widget.OriginalDrawStatusClickSpan; +import com.yizhuan.erban.utils.ClipboardUtils; +import com.yizhuan.xchat_android_core.im.custom.bean.OpenRoomNotiAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.P2PContactRechargeAttachment; +import com.yizhuan.xchat_android_library.utils.SingleToastUtil; + +/** + * Created by chenran on 2017/9/21. + */ + +public class MsgViewHolderP2PContactRecharge extends MsgViewHolderBase implements View.OnClickListener { + + + private TextView mTvInstructions; + private String mCopyText; + + public MsgViewHolderP2PContactRecharge(BaseMultiItemFetchLoadAdapter adapter) { + super(adapter); + } + + @Override + protected int getContentResId() { + return R.layout.layout_msg_view_holder_customer_service_recharge; + } + + @Override + protected void inflateContentView() { + mTvInstructions = findViewById(R.id.tv_instructions); + mTvInstructions.setMovementMethod(new LinkMovementMethod()); + mCopyText = context.getString(R.string.copy); + } + + @Override + protected int leftBackground() { + return 0; + } + + @Override + protected void bindContentView() { + P2PContactRechargeAttachment attachment = (P2PContactRechargeAttachment) message.getAttachment(); + String string = context.getString(R.string.tips_cs_recharge, attachment.getIdWeChat(), attachment.getIdLine()); + int first = string.indexOf(mCopyText); + SpannableString spannableString = new SpannableString(string); + spannableString.setSpan(new OriginalDrawStatusClickSpan(ContextCompat.getColor(context, R.color.color_9168FA)) { + @Override + public void onClick(@NonNull View widget) { + ClipboardUtils.copyText(attachment.getIdWeChat()); + SingleToastUtil.showToast(context.getString(R.string.have_copy)); + + } + }, first, first + 2, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE); + int second = string.indexOf(mCopyText, first + 2); + spannableString.setSpan(new OriginalDrawStatusClickSpan(ContextCompat.getColor(context, R.color.color_9168FA)) { + @Override + public void onClick(@NonNull View widget) { + ClipboardUtils.copyText(attachment.getIdLine()); + SingleToastUtil.showToast(context.getString(R.string.have_copy)); + } + }, second, second + 2, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE); + mTvInstructions.setText(spannableString); + } + + @Override + public void onClick(View v) { + + } +} diff --git a/app/src/main/java/com/yizhuan/erban/ui/pay/ChargeActivity.java b/app/src/main/java/com/yizhuan/erban/ui/pay/ChargeActivity.java index 821591383..40b3d3398 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/pay/ChargeActivity.java +++ b/app/src/main/java/com/yizhuan/erban/ui/pay/ChargeActivity.java @@ -1,5 +1,7 @@ package com.yizhuan.erban.ui.pay; +import static com.yizhuan.xchat_android_core.pay.PayModel.RECHARGE_LIMIT; + import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; @@ -28,23 +30,21 @@ import com.appsflyer.AFInAppEventParameterName; import com.appsflyer.AFInAppEventType; import com.appsflyer.AppsFlyerLib; import com.netease.nim.uikit.StatusBarUtil; -import com.netease.nim.uikit.support.glide.ImageLoaderKit; import com.yizhuan.erban.R; -import com.yizhuan.erban.UIHelper; import com.yizhuan.erban.application.IReportConstants; import com.yizhuan.erban.application.ReportManager; import com.yizhuan.erban.base.BaseMvpActivity; import com.yizhuan.erban.common.widget.OriginalDrawStatusClickSpan; import com.yizhuan.erban.pay.presenter.ChargePresenter; import com.yizhuan.erban.pay.view.IChargeView; +import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity; import com.yizhuan.erban.ui.setting.ModifyPwdActivity; -import com.yizhuan.erban.ui.utils.ImageLoadKt; -import com.yizhuan.erban.ui.utils.ImageLoadUtils; import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2; import com.yizhuan.erban.ui.webview.CommonWebViewActivity; import com.yizhuan.xchat_android_core.DemoCache; import com.yizhuan.xchat_android_core.UriProvider; import com.yizhuan.xchat_android_core.auth.AuthModel; +import com.yizhuan.xchat_android_core.exception.FailReasonException; import com.yizhuan.xchat_android_core.pay.PayModel; import com.yizhuan.xchat_android_core.pay.bean.Banner; import com.yizhuan.xchat_android_core.pay.bean.ChargeBean; @@ -275,13 +275,31 @@ public class ChargeActivity extends BaseMvpActivity billingManager.initiatePurchaseFlow(skuDetails, recordId.getRecordId()), - throwable -> SingleToastUtil.showToast(throwable.getMessage())); + throwable -> { + if (throwable instanceof FailReasonException) { + FailReasonException failReasonException = (FailReasonException) throwable; + if (failReasonException.getCode() == RECHARGE_LIMIT) { + getDialogManager().showOkDialog(failReasonException.getMessage(), "聯繫客服", true, + () -> jumpContact()); + return; + } + } + SingleToastUtil.showToast(throwable.getMessage()); + }); } else { Log.w(TAG, "skuDetails ==null"); } } + @SuppressLint("CheckResult") + private void jumpContact() { + PayModel.get().getChargeContact() + .compose(bindToLifecycle()) + .subscribe(data -> NimP2PMessageActivity.start(this, data), + e -> toast(e.getMessage())); + } + @Override protected void onResume() { super.onResume(); diff --git a/app/src/main/res/drawable-xhdpi/bg_msg_vh_p2p_contact_recharge.webp b/app/src/main/res/drawable-xhdpi/bg_msg_vh_p2p_contact_recharge.webp new file mode 100644 index 0000000000000000000000000000000000000000..f6d4930bf9d927e27452ca46374ffcd7aa18c90b GIT binary patch literal 8216 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 + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8c187eea7..119050170 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -866,7 +866,6 @@ 一起玩 刪除 - 復製 舉報 已復製 已刪除 @@ -4910,6 +4909,7 @@ %s鉆 向%s轉贈 已複製 + 複製 轉贈記錄 數量 全部 @@ -5127,5 +5127,7 @@ 購買%d個碎片 購買%d個愛心 請選擇或輸入購買的愛心數量 + 如何儲值: + 1.在Piko語音App內前往【我的】—【儲值鑽石】進行儲值\n2.聯繁客服獲取儲值鏈接\n客服WeChat: %s 複製\n客服Line: %s 複製\n3.如遇提示"儲值失敗,請聯系客服處理~",請添加客服進行處理 \ No newline at end of file diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachParser.java b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachParser.java index 2d4bfc057..c7ee3519d 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachParser.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachParser.java @@ -646,6 +646,11 @@ public class CustomAttachParser implements MsgAttachmentParser { case CustomAttachment.CUSTOM_MSG_NOTIFY_H5: attachment = new NotifyH5Attachment(second); break; + case CustomAttachment.CUSTOM_MSG_P2P: + if (second == CustomAttachment.CUSTOM_MSG_P2P_CONTACT_RECHAGE) { + attachment = new P2PContactRechargeAttachment(); + } + break; default: LogUtils.e(ResUtil.getString(R.string.custom_bean_customattachparser_01) + first + " second=" + second); break; diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java index 2cf40ba04..ab4356be0 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/CustomAttachment.java @@ -453,6 +453,13 @@ public class CustomAttachment implements MsgAttachment { public static final int CUSTOM_MSG_SUB_CONVERT_L2 = 9732; // 召唤L2 public static final int CUSTOM_MSG_SUB_CONVERT_L3 = 9733; // 召唤L3 + public static final int CUSTOM_MSG_P2P = 99; + + /** + * 联系客服充值 + */ + public static final int CUSTOM_MSG_P2P_CONTACT_RECHAGE = 99; + /** * H5活动通用飘屏 */ diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/P2PContactRechargeAttachment.java b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/P2PContactRechargeAttachment.java new file mode 100644 index 000000000..16eb59e64 --- /dev/null +++ b/core/src/main/java/com/yizhuan/xchat_android_core/im/custom/bean/P2PContactRechargeAttachment.java @@ -0,0 +1,26 @@ +package com.yizhuan.xchat_android_core.im.custom.bean; + +import com.alibaba.fastjson.JSONObject; + +public class P2PContactRechargeAttachment extends CustomAttachment { + private String idWeChat; + private String idLine; + + public P2PContactRechargeAttachment() { + super(CUSTOM_MSG_P2P, CUSTOM_MSG_P2P_CONTACT_RECHAGE); + } + + @Override + protected void parseData(JSONObject data) { + idWeChat = data.getString("official0"); + idLine = data.getString("official1"); + } + + public String getIdWeChat() { + return idWeChat; + } + + public String getIdLine() { + return idLine; + } +} diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/pay/IPayModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/pay/IPayModel.java index bf10eb8a9..3c3938bbc 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/pay/IPayModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/pay/IPayModel.java @@ -116,4 +116,6 @@ public interface IPayModel extends IModel { Single> loadChargeBanner(); + Single getChargeContact(); + } diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/pay/PayModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/pay/PayModel.java index d07268f8e..6b0edd294 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/pay/PayModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/pay/PayModel.java @@ -65,6 +65,11 @@ public class PayModel extends BaseModel implements IPayModel { */ public static final int NOT_REAL_NAME_BEFORE_CHARGING = 10108; + /** + * 封控, 限制充值 + */ + public static final int RECHARGE_LIMIT = 50000; + protected WalletInfo walletInfo; private boolean firstChargeSuccess = false; @@ -468,7 +473,7 @@ public class PayModel extends BaseModel implements IPayModel { @Override public Single placeOrder(String googlePlayProdId) { return api.placeOrder(googlePlayProdId) - .compose(RxHelper.handleBeanData()) + .compose(RxHelper.handleCommon()) .compose(RxHelper.handleSchedulers()); } @@ -480,6 +485,13 @@ public class PayModel extends BaseModel implements IPayModel { .map(ChargeBannerInfo::getBanners); } + @Override + public Single getChargeContact() { + return api.getChargeContact() + .compose(RxHelper.handleBeanData()) + .compose(RxHelper.handleSchedulers()); + } + public interface Api { @@ -647,6 +659,9 @@ public class PayModel extends BaseModel implements IPayModel { @GET("/charge/guide/banner") Single> getChargeBanner(); + @GET("/charge/guide/contact") + Single> getChargeContact(); + /** * 验证googlePlay订单 *