主动发起私聊限制需求

This commit is contained in:
oujunhui
2020-08-13 18:08:50 +08:00
parent 634bdcbb23
commit 852e5a017b
13 changed files with 77 additions and 20 deletions

View File

@@ -395,10 +395,12 @@ public class NimTeamMessageActivity extends BaseMessageActivity {
if (userLevelVo != null) { if (userLevelVo != null) {
fragment.setCurrentLevel(userLevelVo.experLevelSeq); fragment.setCurrentLevel(userLevelVo.experLevelSeq);
} }
fragment.setCurrentRegisterDay(userInfo.getRegisterDay());
} }
InitInfo initInfo = InitialModel.get().getCacheInitInfo(); InitInfo initInfo = InitialModel.get().getCacheInitInfo();
if (initInfo != null) { if (initInfo != null) {
fragment.setLimitLevel(initInfo.getPrivateChatLevelNo()); fragment.setLimitLevel(initInfo.getPrivateChatLevelNo());
fragment.setLimitRegisterDay(initInfo.getPrivateChatRegisterDay());
} }
return fragment; return fragment;
} }

View File

@@ -431,10 +431,12 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity {
if (userLevelVo != null) { if (userLevelVo != null) {
fragment.setCurrentLevel(userLevelVo.experLevelSeq); fragment.setCurrentLevel(userLevelVo.experLevelSeq);
} }
fragment.setCurrentRegisterDay(userInfo.getRegisterDay());
} }
InitInfo initInfo = InitialModel.get().getCacheInitInfo(); InitInfo initInfo = InitialModel.get().getCacheInitInfo();
if (initInfo != null) { if (initInfo != null) {
fragment.setLimitLevel(initInfo.getPrivateChatLevelNo()); fragment.setLimitLevel(initInfo.getPrivateChatLevelNo());
fragment.setLimitRegisterDay(initInfo.getPrivateChatRegisterDay());
} }
} }
return fragment; return fragment;

View File

@@ -8,6 +8,7 @@ import android.os.Bundle;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import android.text.TextUtils; import android.text.TextUtils;
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;
@@ -131,6 +132,9 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
private int limitLevel; private int limitLevel;
private int currentLevel; private int currentLevel;
private int limitRegisterDay;
private int currentRegisterDay;
@Override @Override
public void onActivityCreated(Bundle savedInstanceState) { public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState); super.onActivityCreated(savedInstanceState);
@@ -334,7 +338,7 @@ 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);
inputPanel.setLimitLevel(limitLevel, currentLevel); inputPanel.setLimitLevel(limitLevel, currentLevel,limitRegisterDay,currentRegisterDay);
} else { } else {
inputPanel.reload(container, customization); inputPanel.reload(container, customization);
} }
@@ -729,7 +733,16 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
this.limitLevel = limitLevel; this.limitLevel = limitLevel;
} }
public void setCurrentLevel(int currentLevel) { public void setCurrentLevel(int currentLevel) {
this.currentLevel = currentLevel; this.currentLevel = currentLevel;
} }
public void setLimitRegisterDay(int limitRegisterDay) {
this.limitRegisterDay = limitRegisterDay;
}
public void setCurrentRegisterDay(int currentRegisterDay){
this.currentRegisterDay = currentRegisterDay;
}
} }

View File

@@ -340,10 +340,12 @@ public class HallTeamMessageActivity extends BaseMessageActivity {
if (userLevelVo != null) { if (userLevelVo != null) {
fragment.setCurrentLevel(userLevelVo.experLevelSeq); fragment.setCurrentLevel(userLevelVo.experLevelSeq);
} }
fragment.setCurrentRegisterDay(userInfo.getRegisterDay());
} }
InitInfo initInfo = InitialModel.get().getCacheInitInfo(); InitInfo initInfo = InitialModel.get().getCacheInitInfo();
if (initInfo != null) { if (initInfo != null) {
fragment.setLimitLevel(initInfo.getPrivateChatLevelNo()); fragment.setLimitLevel(initInfo.getPrivateChatLevelNo());
fragment.setLimitRegisterDay(initInfo.getPrivateChatRegisterDay());
} }
return fragment; return fragment;

View File

@@ -531,9 +531,10 @@ public class MWTeamRoomMessageAct extends BaseMessageActivity implements IMWTeam
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
if (userInfo != null) { if (userInfo != null) {
UserLevelVo userLevelVo = userInfo.getUserLevelVo(); UserLevelVo userLevelVo = userInfo.getUserLevelVo();
if (userLevelVo != null) if (userLevelVo != null){
fragment.setCurrentLevel(userLevelVo.experLevelSeq); fragment.setCurrentLevel(userLevelVo.experLevelSeq);
}
fragment.setCurrentRegisterDay(userInfo.getRegisterDay());
} }
InitInfo initInfo = InitialModel.get().getCacheInitInfo(); InitInfo initInfo = InitialModel.get().getCacheInitInfo();
if (initInfo != null) if (initInfo != null)

View File

@@ -580,9 +580,10 @@ public class MiniWorldTeamMessageActivity extends BaseMessageActivity implements
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
if (userInfo != null) { if (userInfo != null) {
UserLevelVo userLevelVo = userInfo.getUserLevelVo(); UserLevelVo userLevelVo = userInfo.getUserLevelVo();
if (userLevelVo != null) if (userLevelVo != null){
fragment.setCurrentLevel(userLevelVo.experLevelSeq); fragment.setCurrentLevel(userLevelVo.experLevelSeq);
}
fragment.setCurrentRegisterDay(userInfo.getRegisterDay());
} }
InitInfo initInfo = InitialModel.get().getCacheInitInfo(); InitInfo initInfo = InitialModel.get().getCacheInitInfo();
if (initInfo != null) if (initInfo != null)

View File

@@ -328,10 +328,12 @@ public class NimHallTeamRoomMessageActivity extends BaseMessageActivity {
if (userLevelVo != null) { if (userLevelVo != null) {
fragment.setCurrentLevel(userLevelVo.experLevelSeq); fragment.setCurrentLevel(userLevelVo.experLevelSeq);
} }
fragment.setCurrentRegisterDay(userInfo.getRegisterDay());
} }
InitInfo initInfo = InitialModel.get().getCacheInitInfo(); InitInfo initInfo = InitialModel.get().getCacheInitInfo();
if (initInfo != null) { if (initInfo != null) {
fragment.setLimitLevel(initInfo.getPrivateChatLevelNo()); fragment.setLimitLevel(initInfo.getPrivateChatLevelNo());
fragment.setLimitRegisterDay(initInfo.getPrivateChatRegisterDay());
} }
return fragment; return fragment;

View File

@@ -284,10 +284,12 @@ public class NimRoomP2PMessageActivity extends NewBaseMessageActivity {
if (userLevelVo != null) { if (userLevelVo != null) {
fragment.setCurrentLevel(userLevelVo.experLevelSeq); fragment.setCurrentLevel(userLevelVo.experLevelSeq);
} }
fragment.setCurrentRegisterDay(userInfo.getRegisterDay());
} }
InitInfo initInfo = InitialModel.get().getCacheInitInfo(); InitInfo initInfo = InitialModel.get().getCacheInitInfo();
if (initInfo != null) { if (initInfo != null) {
fragment.setLimitLevel(initInfo.getPrivateChatLevelNo()); fragment.setLimitLevel(initInfo.getPrivateChatLevelNo());
fragment.setLimitLevel(initInfo.getPrivateChatRegisterDay());
} }
} }
return fragment; return fragment;

View File

@@ -386,10 +386,12 @@ public class NimTeamRoomMessageActivity extends BaseMessageActivity {
if (userLevelVo != null) { if (userLevelVo != null) {
fragment.setCurrentLevel(userLevelVo.experLevelSeq); fragment.setCurrentLevel(userLevelVo.experLevelSeq);
} }
fragment.setCurrentRegisterDay(userInfo.getRegisterDay());
} }
InitInfo initInfo = InitialModel.get().getCacheInitInfo(); InitInfo initInfo = InitialModel.get().getCacheInitInfo();
if (initInfo != null) { if (initInfo != null) {
fragment.setLimitLevel(initInfo.getPrivateChatLevelNo()); fragment.setLimitLevel(initInfo.getPrivateChatLevelNo());
fragment.setLimitRegisterDay(initInfo.getPrivateChatRegisterDay());
} }
return fragment; return fragment;
} }

View File

@@ -44,6 +44,8 @@ public class InitInfo implements Serializable {
private int publicChatRoomLevelNo; private int publicChatRoomLevelNo;
// 私聊等级限制 // 私聊等级限制
private int privateChatLevelNo; private int privateChatLevelNo;
// 私聊注册天数限制
private int privateChatRegisterDay;
/** /**
* 宝箱开关 * 宝箱开关
*/ */

View File

@@ -72,6 +72,10 @@ public class UserInfo implements Serializable {
//个人相册 //个人相册
private List<UserPhoto> privatePhoto; private List<UserPhoto> privatePhoto;
private ArrayList<JoinWorldInfo> joinWorlds; private ArrayList<JoinWorldInfo> joinWorlds;
@Getter
@Setter
private int registerDay;
/** /**
* 是否是靓号1靓号 * 是否是靓号1靓号
*/ */

View File

@@ -161,7 +161,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
boolean isTextAudioSwitchShow = getArguments().getBoolean("isTextAudioSwitchShow", true); boolean isTextAudioSwitchShow = getArguments().getBoolean("isTextAudioSwitchShow", true);
inputPanel = new InputPanel(container, rootView, getActionList(), isTextAudioSwitchShow); inputPanel = new InputPanel(container, rootView, getActionList(), isTextAudioSwitchShow);
inputPanel.setCustomization(customization); inputPanel.setCustomization(customization);
inputPanel.setLimitLevel(limitLevel, currentLevel); inputPanel.setLimitLevel(limitLevel, currentLevel,limitRegisterDay,currentRegisterDay);
if (moreCustomDrawable > 0 && moreCustomId > 0) // 自定义更多按钮只响应哪个功能 if (moreCustomDrawable > 0 && moreCustomId > 0) // 自定义更多按钮只响应哪个功能
inputPanel.setMoreFuntionButtonInInputBar(moreCustomDrawable, moreCustomId); inputPanel.setMoreFuntionButtonInInputBar(moreCustomDrawable, moreCustomId);
@@ -465,17 +465,28 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
private int limitLevel; private int limitLevel;
public void setLimitLevel(int limitLevel) { public void setLimitLevel(int limitLevel) {
Log.i("setLimitLevel", "" + limitLevel); Log.i("setLimitLevel", "" + limitLevel);
this.limitLevel = limitLevel; this.limitLevel = limitLevel;
} }
private int currentLevel; private int currentLevel;
public void setCurrentLevel(int currentLevel) { public void setCurrentLevel(int currentLevel) {
this.currentLevel = currentLevel; this.currentLevel = currentLevel;
} }
private int limitRegisterDay;
public void setLimitRegisterDay(int limitRegisterDay) {
Log.i("setLimitRegisterDay", "" + limitRegisterDay);
this.limitRegisterDay = limitRegisterDay;
}
private int currentRegisterDay;
public void setCurrentRegisterDay(int currentRegisterDay) {
this.currentRegisterDay = currentRegisterDay;
}
boolean canAudioPartyOpen = true; boolean canAudioPartyOpen = true;
public void setmAudioPartyOpenVisible(boolean visible) { public void setmAudioPartyOpenVisible(boolean visible) {

View File

@@ -123,6 +123,8 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
private int limitLevel; private int limitLevel;
private int currentLevel; private int currentLevel;
private int limitRegisterDay;
private int currentRegisterDay;
public InputPanel(Container container, View view, List<BaseAction> actions, boolean isTextAudioSwitchShow) { public InputPanel(Container container, View view, List<BaseAction> actions, boolean isTextAudioSwitchShow) {
this.container = container; this.container = container;
@@ -417,9 +419,20 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
private void onTextMessageSendButtonPressed() { private void onTextMessageSendButtonPressed() {
String text = messageEditText.getText().toString(); String text = messageEditText.getText().toString();
if (TextUtils.isEmpty(text.trim())) return; if (TextUtils.isEmpty(text.trim())) return;
if (limitLevel <= 1 && currentRegisterDay < limitRegisterDay) {
SingleToastUtil.showToastShort("注册时间满"+limitRegisterDay+"天才能发起聊天");
return;
}
if (currentLevel < limitLevel && limitRegisterDay < 1){
SingleToastUtil.showToastShort("等级满" + limitLevel + "才能发起聊天");
return;
}
if (currentRegisterDay < limitRegisterDay || currentLevel < limitLevel){
SingleToastUtil.showToastShort("注册时间满" + limitRegisterDay + "天或等级满" + limitLevel + "才能发起聊天");
return;
}
EventBus.getDefault().post(new ActiveEvent()); EventBus.getDefault().post(new ActiveEvent());
IMMessage textMessage = createTextMessage(text); IMMessage textMessage = createTextMessage(text);
if (AntiSpamUtil.checkLocalAntiSpam(textMessage)) { if (AntiSpamUtil.checkLocalAntiSpam(textMessage)) {
EventBus.getDefault().post(new AntiSpamEvent()); EventBus.getDefault().post(new AntiSpamEvent());
@@ -962,30 +975,30 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
container.proxy.sendMessage(customMessage); container.proxy.sendMessage(customMessage);
} }
public void setLimitLevel(int limitLevel, int currentLevel) { public void setLimitLevel(int limitLevel, int currentLevel,int limitRegisterDay,int currentRegisterDay) {
this.limitLevel = limitLevel; this.limitLevel = limitLevel;
this.currentLevel = currentLevel; this.currentLevel = currentLevel;
this.limitRegisterDay = limitRegisterDay;
this.currentRegisterDay = currentRegisterDay;
setEditTextState(); setEditTextState();
} }
private void setEditTextState() { private void setEditTextState() {
if (currentLevel < limitLevel) { // if (currentLevel < limitLevel) {
messageEditText.setHint("用户等级不足" + limitLevel + "级, 不可以发言哦"); // messageEditText.setHint("用户等级不足" + limitLevel + "级, 不可以发言哦");
messageEditText.setFocusable(false); // messageEditText.setFocusable(false);
messageEditText.setFocusableInTouchMode(false); // messageEditText.setFocusableInTouchMode(false);
messageEditText.setEnabled(false); // messageEditText.setEnabled(false);
moreFuntionButtonInInputBar.setEnabled(false); // moreFuntionButtonInInputBar.setEnabled(false);
sendMessageButtonInInputBar.setEnabled(false); // sendMessageButtonInInputBar.setEnabled(false);
} else { // } else {
messageEditText.setHint("请输入消息"); messageEditText.setHint("请输入消息");
messageEditText.setFocusable(true); messageEditText.setFocusable(true);
messageEditText.setFocusableInTouchMode(true); messageEditText.setFocusableInTouchMode(true);
messageEditText.setEnabled(true); messageEditText.setEnabled(true);
moreFuntionButtonInInputBar.setEnabled(true); moreFuntionButtonInInputBar.setEnabled(true);
sendMessageButtonInInputBar.setEnabled(true); sendMessageButtonInInputBar.setEnabled(true);
} // }
} }
} }