feat:完成一键匹配入口进私聊:忽略限制功能

This commit is contained in:
Max
2023-12-26 23:22:04 +08:00
parent ff746b5a11
commit 321fa1b9ea
4 changed files with 22 additions and 1 deletions

View File

@@ -82,7 +82,7 @@ class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
dialogManager.dismissDialog() dialogManager.dismissDialog()
it?.let { it?.let {
if (it.isNotEmpty()) { if (it.isNotEmpty()) {
NimP2PMessageActivity.start(context, it) NimP2PMessageActivity.startWithIgnoreChatLimit(context, it)
} }
} }
} }

View File

@@ -159,6 +159,15 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity {
startReal(context, contactId, new Intent()); 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) { public static void start(Context context, String contactId, boolean isFromVoiceMatch) {
Intent intent = new Intent(); Intent intent = new Intent();
intent.putExtra(Extras.EXTRA_ACCOUNT, contactId); intent.putExtra(Extras.EXTRA_ACCOUNT, contactId);

View File

@@ -12,6 +12,7 @@ import android.text.Spanned;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
import android.text.style.ForegroundColorSpan; import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -126,6 +127,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
private RxPermissions rxPermissions; private RxPermissions rxPermissions;
private boolean isChat; private boolean isChat;
private String hintText; private String hintText;
private boolean ignoreChatLimit;
private Observer<List<MessageReceipt>> messageReceiptObserver = new Observer<List<MessageReceipt>>() { private Observer<List<MessageReceipt>> messageReceiptObserver = new Observer<List<MessageReceipt>>() {
@Override @Override
public void onEvent(List<MessageReceipt> messageReceipts) { public void onEvent(List<MessageReceipt> messageReceipts) {
@@ -220,6 +222,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
} }
private void parseIntent() { private void parseIntent() {
ignoreChatLimit = getArguments().getBoolean(Extras.EXTRA_IGNORE_CHAT_LIMIT, false);
sessionId = getArguments().getString(Extras.EXTRA_ACCOUNT); sessionId = getArguments().getString(Extras.EXTRA_ACCOUNT);
ChatterBoxHelper.reset(); ChatterBoxHelper.reset();
ChatterBoxHelper.sessionId = sessionId; ChatterBoxHelper.sessionId = sessionId;
@@ -238,6 +241,9 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
if (inputPanel == null) { if (inputPanel == null) {
inputPanel = new InputPanel(container, rootView, getActionList()); inputPanel = new InputPanel(container, rootView, getActionList());
inputPanel.setCustomization(customization); inputPanel.setCustomization(customization);
if (ignoreChatLimit) {
isChat = true;
}
inputPanel.setLimitLevel(isChat, hintText); inputPanel.setLimitLevel(isChat, hintText);
} else { } else {
inputPanel.reload(container, customization); inputPanel.reload(container, customization);
@@ -654,6 +660,10 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
private void loadChatLimit(boolean sessionIsEmpty) { private void loadChatLimit(boolean sessionIsEmpty) {
if (ignoreChatLimit) {
Log.d("MAAAX", "#ignore");
return;
}
IMCustomModel.get().getPrivateChatLimit(sessionId).subscribe(((privateChatLimitInfo, throwable) -> { IMCustomModel.get().getPrivateChatLimit(sessionId).subscribe(((privateChatLimitInfo, throwable) -> {
if (isDestroyed()) { if (isDestroyed()) {
return; return;

View File

@@ -27,6 +27,8 @@ public interface Extras {
// 参数 // 参数
String EXTRA_ACCOUNT = "account"; String EXTRA_ACCOUNT = "account";
String EXTRA_TYPE = "type"; String EXTRA_TYPE = "type";
// 忽略限制
String EXTRA_IGNORE_CHAT_LIMIT = "ignore_chat_limit";
String EXTRA_ANCHOR = "anchor"; String EXTRA_ANCHOR = "anchor";
String EXTRA_CUSTOMIZATION = "customization"; String EXTRA_CUSTOMIZATION = "customization";