From 321fa1b9eae8fec41792cf77b32600db9712c9e8 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 26 Dec 2023 23:22:04 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=AE=8C=E6=88=90=E4=B8=80?= =?UTF-8?q?=E9=94=AE=E5=8C=B9=E9=85=8D=E5=85=A5=E5=8F=A3=E8=BF=9B=E7=A7=81?= =?UTF-8?q?=E8=81=8A=EF=BC=9A=E5=BF=BD=E7=95=A5=E9=99=90=E5=88=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/home/fragment/home/friends/FriendsFragment.kt | 2 +- .../app/ui/im/avtivity/NimP2PMessageActivity.java | 9 +++++++++ .../nnbc123/app/ui/im/fragment/MessageFragment.java | 10 ++++++++++ .../nim/uikit/business/session/constant/Extras.java | 2 ++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nnbc123/app/home/fragment/home/friends/FriendsFragment.kt b/app/src/main/java/com/nnbc123/app/home/fragment/home/friends/FriendsFragment.kt index e3a6c4b15..166b4bfa6 100644 --- a/app/src/main/java/com/nnbc123/app/home/fragment/home/friends/FriendsFragment.kt +++ b/app/src/main/java/com/nnbc123/app/home/fragment/home/friends/FriendsFragment.kt @@ -82,7 +82,7 @@ class FriendsFragment : BaseBindingFragment() { dialogManager.dismissDialog() it?.let { if (it.isNotEmpty()) { - NimP2PMessageActivity.start(context, it) + NimP2PMessageActivity.startWithIgnoreChatLimit(context, it) } } } diff --git a/app/src/main/java/com/nnbc123/app/ui/im/avtivity/NimP2PMessageActivity.java b/app/src/main/java/com/nnbc123/app/ui/im/avtivity/NimP2PMessageActivity.java index ac4737f33..7022281bf 100644 --- a/app/src/main/java/com/nnbc123/app/ui/im/avtivity/NimP2PMessageActivity.java +++ b/app/src/main/java/com/nnbc123/app/ui/im/avtivity/NimP2PMessageActivity.java @@ -159,6 +159,15 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity { startReal(context, contactId, new Intent()); } + /** + * 忽略聊天限制 + */ + public static void startWithIgnoreChatLimit(Context context, String contactId) { + Intent intent = new Intent(); + intent.putExtra(Extras.EXTRA_IGNORE_CHAT_LIMIT, true); + startReal(context, contactId, intent); + } + public static void start(Context context, String contactId, boolean isFromVoiceMatch) { Intent intent = new Intent(); intent.putExtra(Extras.EXTRA_ACCOUNT, contactId); diff --git a/app/src/main/java/com/nnbc123/app/ui/im/fragment/MessageFragment.java b/app/src/main/java/com/nnbc123/app/ui/im/fragment/MessageFragment.java index 347b1dac1..dd89102eb 100644 --- a/app/src/main/java/com/nnbc123/app/ui/im/fragment/MessageFragment.java +++ b/app/src/main/java/com/nnbc123/app/ui/im/fragment/MessageFragment.java @@ -12,6 +12,7 @@ import android.text.Spanned; import android.text.TextUtils; import android.text.method.LinkMovementMethod; import android.text.style.ForegroundColorSpan; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -126,6 +127,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi private RxPermissions rxPermissions; private boolean isChat; private String hintText; + private boolean ignoreChatLimit; private Observer> messageReceiptObserver = new Observer>() { @Override public void onEvent(List messageReceipts) { @@ -220,6 +222,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi } private void parseIntent() { + ignoreChatLimit = getArguments().getBoolean(Extras.EXTRA_IGNORE_CHAT_LIMIT, false); sessionId = getArguments().getString(Extras.EXTRA_ACCOUNT); ChatterBoxHelper.reset(); ChatterBoxHelper.sessionId = sessionId; @@ -238,6 +241,9 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi if (inputPanel == null) { inputPanel = new InputPanel(container, rootView, getActionList()); inputPanel.setCustomization(customization); + if (ignoreChatLimit) { + isChat = true; + } inputPanel.setLimitLevel(isChat, hintText); } else { inputPanel.reload(container, customization); @@ -654,6 +660,10 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi @SuppressLint("CheckResult") private void loadChatLimit(boolean sessionIsEmpty) { + if (ignoreChatLimit) { + Log.d("MAAAX", "#ignore"); + return; + } IMCustomModel.get().getPrivateChatLimit(sessionId).subscribe(((privateChatLimitInfo, throwable) -> { if (isDestroyed()) { return; diff --git a/nim_uikit/src/com/netease/nim/uikit/business/session/constant/Extras.java b/nim_uikit/src/com/netease/nim/uikit/business/session/constant/Extras.java index 13f3e4b63..70c73822d 100644 --- a/nim_uikit/src/com/netease/nim/uikit/business/session/constant/Extras.java +++ b/nim_uikit/src/com/netease/nim/uikit/business/session/constant/Extras.java @@ -27,6 +27,8 @@ public interface Extras { // 参数 String EXTRA_ACCOUNT = "account"; String EXTRA_TYPE = "type"; + // 忽略限制 + String EXTRA_IGNORE_CHAT_LIMIT = "ignore_chat_limit"; String EXTRA_ANCHOR = "anchor"; String EXTRA_CUSTOMIZATION = "customization";