From d30069aa687ad395dee8d0bd191027163c51783c Mon Sep 17 00:00:00 2001 From: huangjian Date: Wed, 1 Mar 2023 23:24:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B2=BE=E7=81=B5=E5=A4=BA=E5=AE=9D:=E8=B5=A0?= =?UTF-8?q?=E9=80=81=E7=B2=BE=E7=81=B5=E5=90=8E=E9=9A=90=E8=97=8F=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../treasurefairy/dialog/MyFairySendDialog.kt | 11 +++++- .../moshen/ui/im/chat/MsgViewHolderFairy.java | 26 +++++++++++--- .../res/drawable/shape_007983_4dp_round.xml | 9 +++++ .../res/drawable/shape_00a69d_8dp_round.xml | 5 +-- .../main/res/layout/fragment_recommend.xml | 34 +++++++++++-------- .../layout/layout_msg_view_holder_fairy.xml | 6 ++-- .../treasure_fairy_item_my_fairy_record.xml | 20 +++++++---- 7 files changed, 78 insertions(+), 33 deletions(-) create mode 100644 app/src/main/res/drawable/shape_007983_4dp_round.xml diff --git a/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairySendDialog.kt b/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairySendDialog.kt index 77bb3750e..0db723e29 100644 --- a/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairySendDialog.kt +++ b/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairySendDialog.kt @@ -20,6 +20,7 @@ class MyFairySendDialog : BaseDialog() { override var width = WindowManager.LayoutParams.MATCH_PARENT override var gravity = Gravity.CENTER + private var onSendListener: (() -> Unit)? = null companion object { fun newInstance(bundle: Bundle, userInfo: SimpleUserInfo): MyFairySendDialog { @@ -63,8 +64,16 @@ class MyFairySendDialog : BaseDialog() { } viewModel.sendFairyLiveData.observe(viewLifecycleOwner) { - if (it.getContentIfNotHandled() == true) dismissAllowingStateLoss() + if (it.getContentIfNotHandled() == true) { + dismissAllowingStateLoss() + onSendListener?.invoke() + } } } + fun setOnSendListener(onSendListener: () -> Nothing) { + this.onSendListener = onSendListener + } + + } \ No newline at end of file diff --git a/app/src/main/java/com/mango/moshen/ui/im/chat/MsgViewHolderFairy.java b/app/src/main/java/com/mango/moshen/ui/im/chat/MsgViewHolderFairy.java index ea8603c53..7740b4d72 100644 --- a/app/src/main/java/com/mango/moshen/ui/im/chat/MsgViewHolderFairy.java +++ b/app/src/main/java/com/mango/moshen/ui/im/chat/MsgViewHolderFairy.java @@ -10,6 +10,7 @@ import com.mango.core.auth.AuthModel; import com.mango.core.gift.bean.SimpleUserInfo; import com.mango.core.im.custom.bean.CustomAttachment; import com.mango.core.im.custom.bean.FairySendAttachment; +import com.mango.core.manager.IMNetEaseManager; import com.mango.core.treasurefairy.FairyInfo; import com.mango.moshen.R; import com.mango.moshen.treasurefairy.dialog.MyFairySendDialog; @@ -17,11 +18,15 @@ import com.mango.moshen.ui.utils.ImageLoadUtils; import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; +import java.util.HashMap; +import java.util.Map; + /** * Created by chenran on 2018/1/2. */ public class MsgViewHolderFairy extends MsgViewHolderBase implements View.OnClickListener { + private final static String IS_SEND = "afafagag"; private TextView tvContent; private ImageView ivFairyIcon; private View flIconBg; @@ -55,10 +60,14 @@ public class MsgViewHolderFairy extends MsgViewHolderBase implements View.OnClic } else { flIconBg.setBackgroundResource(R.drawable.shape_f5f4fa_8dp_round); } - + Map localExtension = message.getLocalExtension(); + boolean isSend = false; + if (localExtension != null && localExtension.containsKey(IS_SEND)) { + isSend = (boolean) localExtension.get(IS_SEND); + } boolean isAskFor = attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_FAIRY_ASK_FOR; - if (isAskFor && attachment.getUid() != AuthModel.get().getCurrentUid()) { + if (!isSend && isAskFor && attachment.getUid() != AuthModel.get().getCurrentUid()) { tvView.setVisibility(View.VISIBLE); contentContainer.setOnClickListener(this); } else { @@ -72,11 +81,20 @@ public class MsgViewHolderFairy extends MsgViewHolderBase implements View.OnClic public void onClick(View v) { FairySendAttachment attachment = (FairySendAttachment) message.getAttachment(); SimpleUserInfo userInfo = new SimpleUserInfo(attachment.getNick(), attachment.getUid(), 0, "", ""); - FairyInfo fairyInfo = new FairyInfo(attachment.getElfId(), 1, 1, attachment.getElfName(), attachment.getElfPicUrl(),0); + FairyInfo fairyInfo = new FairyInfo(attachment.getElfId(), 1, 1, attachment.getElfName(), attachment.getElfPicUrl(), 0); Bundle bundle = new Bundle(); bundle.putSerializable("userInfo", userInfo); bundle.putSerializable("fairyInfo", fairyInfo); bundle.putBoolean("isSend", true); - MyFairySendDialog.Companion.newInstance(bundle, userInfo).show(context); + MyFairySendDialog sendDialog = MyFairySendDialog.Companion.newInstance(bundle, userInfo); + sendDialog.setOnSendListener(() -> { + Map localExtension = message.getLocalExtension(); + if (localExtension == null) localExtension = new HashMap<>(); + localExtension.put(IS_SEND, true); + message.setLocalExtension(localExtension); + IMNetEaseManager.get().updateMessageToLocal(message); + return null; + }); + sendDialog.show(context); } } diff --git a/app/src/main/res/drawable/shape_007983_4dp_round.xml b/app/src/main/res/drawable/shape_007983_4dp_round.xml new file mode 100644 index 000000000..c2270f462 --- /dev/null +++ b/app/src/main/res/drawable/shape_007983_4dp_round.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_00a69d_8dp_round.xml b/app/src/main/res/drawable/shape_00a69d_8dp_round.xml index 35146ef77..1c11eebc6 100644 --- a/app/src/main/res/drawable/shape_00a69d_8dp_round.xml +++ b/app/src/main/res/drawable/shape_00a69d_8dp_round.xml @@ -2,11 +2,8 @@ - + - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_recommend.xml b/app/src/main/res/layout/fragment_recommend.xml index cdb696726..096113a56 100644 --- a/app/src/main/res/layout/fragment_recommend.xml +++ b/app/src/main/res/layout/fragment_recommend.xml @@ -71,7 +71,7 @@ - + android:layout_height="0dp" + android:src="@drawable/ic_resource_0" + app:layout_constraintDimensionRatio="222:148" + app:layout_constraintEnd_toStartOf="@id/iv_resource_1" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + android:src="@drawable/ic_resource_1" + app:layout_constraintDimensionRatio="222:148" + app:layout_constraintEnd_toStartOf="@id/iv_resource_2" + app:layout_constraintStart_toEndOf="@id/iv_resource_0" + app:layout_constraintTop_toTopOf="parent" /> + android:src="@drawable/ic_resource_2" + app:layout_constraintDimensionRatio="222:148" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@id/iv_resource_1" + app:layout_constraintTop_toTopOf="parent" /> - + - + android:background="@drawable/shape_00a69d_8dp_round"> + + + + +