From 3b8796c3780c80dbb44ba340b74b59f0fbc4fd23 Mon Sep 17 00:00:00 2001 From: huangjian Date: Tue, 7 Feb 2023 11:51:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=81=E8=81=8A=E6=94=B9=E9=80=A0:bugfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mango/moshen/ui/im/InputPanel.java | 8 +++-- .../moshen/ui/im/MessageListPanelEx.java | 4 ++- .../ui/im/avtivity/AddBlackListActivity.java | 5 ++- .../layout/activity_nim_add_black_list.xml | 4 +-- gradle.properties | 4 +-- library/build.gradle | 1 + .../res/drawable-xhdpi/nim_bottom_arrow.png | Bin 0 -> 506 bytes .../res/layout/nim_custom_popup_window.xml | 21 ++++++++++--- .../common/ui/dialog/CustomPopupWindow.java | 29 ++++++++---------- 9 files changed, 48 insertions(+), 28 deletions(-) create mode 100644 nim_uikit/res/drawable-xhdpi/nim_bottom_arrow.png diff --git a/app/src/main/java/com/mango/moshen/ui/im/InputPanel.java b/app/src/main/java/com/mango/moshen/ui/im/InputPanel.java index e81333699..95753ea20 100644 --- a/app/src/main/java/com/mango/moshen/ui/im/InputPanel.java +++ b/app/src/main/java/com/mango/moshen/ui/im/InputPanel.java @@ -347,9 +347,9 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba public int getPanelTriggerId() { return R.id.emoji_button; } - }).logTrack(false)//output log + }) + .logTrack(false)//output log .build(); - messageListView.setPanelSwitchHelper(mHelper); } @@ -859,6 +859,10 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba @Override public void onRecordSuccess(File audioFile, long audioLength, RecordType recordType) { + if (audioLength < 1000) { + SingleToastUtil.showToast("说话时间太短!"); + return; + } IMMessage audioMessage = MessageBuilder.createAudioMessage(container.account, container.sessionType, audioFile, audioLength); container.proxy.sendMessage(audioMessage); } diff --git a/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java b/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java index b3ec971f0..e170b2413 100644 --- a/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java +++ b/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java @@ -1056,7 +1056,9 @@ public class MessageListPanelEx { private boolean enableRevokeButton(IMMessage selectedItem) { return selectedItem.getStatus() == MsgStatusEnum.success - && selectedItem.getMsgType() == MsgTypeEnum.text + && (selectedItem.getMsgType() == MsgTypeEnum.text || + selectedItem.getMsgType() == MsgTypeEnum.audio || + selectedItem.getMsgType() == MsgTypeEnum.image) && !recordOnly && selectedItem.getDirect() == MsgDirectionEnum.Out && CurrentTimeUtils.getCurrentTime() - selectedItem.getTime() < 2 * 60 * 1000; diff --git a/app/src/main/java/com/mango/moshen/ui/im/avtivity/AddBlackListActivity.java b/app/src/main/java/com/mango/moshen/ui/im/avtivity/AddBlackListActivity.java index b490ed3fa..471d6edda 100644 --- a/app/src/main/java/com/mango/moshen/ui/im/avtivity/AddBlackListActivity.java +++ b/app/src/main/java/com/mango/moshen/ui/im/avtivity/AddBlackListActivity.java @@ -49,6 +49,7 @@ public class AddBlackListActivity extends BaseMvpActivity + android:textSize="12sp" + tools:text="ID:953842" /> Px$v`IukR7gv`ls!uWK@f&#?m|c!MT-=IAR=gK6)Y^oLTv=|1B8I31`=|2DP622 zyCgv*ptap0f})LuSZblx76~GPrHYrJ7k6aEh#yJT@9p+>-sjn2xk1aa77fG5z&|c2 z72k;pCp4F9qG(D(h3d_G@&604O+B-+B^@G$`N z{)L=~&V1h=EEEb?ivJ>3n`AQC6AT8A0HEWS<=3@ZEt<>aPV3w^V)ZedP7j!-sX7n+ zlKhT{hB)UZuX!KD>d>;RQNu9Qn;SorO8|&vv)Rq}oQC4(&ZkV%-1v!DN;xfrSZl;+ zDptj|ZO!;>4yQL3pkF`1pwy_elsbh>=Qzib&RG1L>F`%Ckg-uuj`0tgmb>H w%W4OR4v@)Y#))V}ja(_^oDgD5mwA8w2ocbl0B2Ud*8l(j07*qoM6N<$f + android:orientation="vertical"> + + + + + + \ No newline at end of file diff --git a/nim_uikit/src/com/netease/nim/uikit/common/ui/dialog/CustomPopupWindow.java b/nim_uikit/src/com/netease/nim/uikit/common/ui/dialog/CustomPopupWindow.java index 2aae1027e..c2968e84d 100644 --- a/nim_uikit/src/com/netease/nim/uikit/common/ui/dialog/CustomPopupWindow.java +++ b/nim_uikit/src/com/netease/nim/uikit/common/ui/dialog/CustomPopupWindow.java @@ -1,17 +1,11 @@ package com.netease.nim.uikit.common.ui.dialog; -import static android.widget.LinearLayout.SHOW_DIVIDER_BEGINNING; - import android.content.Context; import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; import android.util.Pair; import android.view.Gravity; -import android.view.LayoutInflater; import android.view.View; -import android.view.WindowManager; import android.widget.LinearLayout; -import android.widget.PopupWindow; import android.widget.TextView; import com.netease.nim.uikit.R; @@ -20,8 +14,10 @@ import com.netease.nim.uikit.common.util.sys.ScreenUtil; import java.util.LinkedList; import java.util.List; +import razerdp.basepopup.BasePopupWindow; -public class CustomPopupWindow extends PopupWindow { + +public class CustomPopupWindow extends BasePopupWindow { private final Context context; private final LinearLayout llRoot; @@ -29,15 +25,17 @@ public class CustomPopupWindow extends PopupWindow { private int orientation; public CustomPopupWindow(Context context, int orientation) { + super(context); this.context = context; this.orientation = orientation; - llRoot = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.nim_custom_popup_window, null); - setContentView(llRoot); - llRoot.setShowDividers(SHOW_DIVIDER_BEGINNING); + + setContentView(createPopupById(R.layout.nim_custom_popup_window)); + llRoot = findViewById(R.id.ll_root); llRoot.setOrientation(orientation); - setBackgroundDrawable(new ColorDrawable()); - setOutsideTouchable(true); - setFocusable(true); + setOutSideDismiss(true); + setBackgroundColor(Color.TRANSPARENT); + hideKeyboardOnShow(false); + setPopupAnimationStyle(-1); } public void addItem(String itemText, View.OnClickListener listener) { @@ -51,9 +49,8 @@ public class CustomPopupWindow extends PopupWindow { new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, ScreenUtil.dip2px(30)) ); } - setHeight(ScreenUtil.dip2px(30 * (orientation == LinearLayout.HORIZONTAL ? 1 : itemTextList.size()))); - setWidth(WindowManager.LayoutParams.WRAP_CONTENT); - showAsDropDown(anchor, xoff, yoff); + setPopupGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL); + showPopupWindow(anchor); } private TextView createTextView(CharSequence text, View.OnClickListener listener) {