增加房间内超管权限处理
This commit is contained in:
@@ -120,13 +120,15 @@ public class ButtonItemFactory {
|
||||
boolean no_mark_manager = false;
|
||||
//黑名单
|
||||
boolean mart_black = false;
|
||||
|
||||
boolean isTargetRoomAdmin = AvRoomDataManager.get().isRoomAdmin(account);
|
||||
boolean isTargetRoomOwner = AvRoomDataManager.get().isRoomOwner(account);
|
||||
boolean isTargetSuperAdmin = AvRoomDataManager.get().isSuperAdmin(account);
|
||||
//资料卡片需要房间操作的按钮,不去判断是否在房间内
|
||||
if (AvRoomDataManager.get().isRoomOwner()) {
|
||||
if (AvRoomDataManager.get().isRoomOwner() || AvRoomDataManager.get().isSuperAdmin()) {
|
||||
//房主操作
|
||||
//点击不是自己
|
||||
if (isNeedRoomItem) {
|
||||
if (isNeedRoomItem && !isTargetSuperAdmin) {
|
||||
//提出房间
|
||||
kickOutRoom = true;
|
||||
//管理员
|
||||
@@ -142,7 +144,7 @@ public class ButtonItemFactory {
|
||||
} else if (AvRoomDataManager.get().isRoomAdmin()) {
|
||||
//管理员操作
|
||||
//不是自己
|
||||
if (!isTargetRoomAdmin && !isTargetRoomOwner) {
|
||||
if (!isTargetRoomAdmin && !isTargetRoomOwner && !isTargetSuperAdmin) {
|
||||
//非房主或管理员
|
||||
if (isNeedRoomItem) {
|
||||
//踢出房间
|
||||
@@ -151,10 +153,8 @@ public class ButtonItemFactory {
|
||||
mart_black = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//游客操作
|
||||
//不是自己
|
||||
}
|
||||
|
||||
if (gift) {
|
||||
if (!SuperAdminUtil.isSuperAdmin()) {
|
||||
buttonItems.add(createSendGiftItem(context, uid, isInRoom, listener));
|
||||
@@ -165,10 +165,7 @@ public class ButtonItemFactory {
|
||||
}
|
||||
// 私聊
|
||||
buttonItems.add(createPrivateChatItem(context, account, isInRoom));
|
||||
//装扮
|
||||
/* if (!SuperAdminUtil.isSuperAdmin()) {
|
||||
buttonItems.add(createSendDecorationItem(context, uid));
|
||||
}*/
|
||||
|
||||
//关注
|
||||
buttonItems.add(createAttentItem());
|
||||
|
||||
@@ -408,7 +405,12 @@ public class ButtonItemFactory {
|
||||
if (mark) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.data_card_set_admin_click, "资料卡片-设置管理员");
|
||||
}
|
||||
IMNetEaseManager.get().markManagerListBySdk(roomId, account, mark, null);
|
||||
if (AvRoomDataManager.get().isSuperAdmin()) {
|
||||
AvRoomModel.get().markManager(Long.parseLong(account), mark).subscribe();
|
||||
} else {
|
||||
IMNetEaseManager.get().markManagerListBySdk(roomId, account, mark, null);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -426,7 +428,7 @@ public class ButtonItemFactory {
|
||||
() -> {
|
||||
|
||||
Single<String> single;
|
||||
if (SuperAdminUtil.isSuperAdmin()) {
|
||||
if (SuperAdminUtil.isSuperAdmin() || AvRoomDataManager.get().isSuperAdmin()) {
|
||||
//超管拉黑
|
||||
single = AvRoomModel.get().markBlack(JavaUtil.str2long(account));
|
||||
SuperAdminModel superAdminModel = new SuperAdminModel();
|
||||
|
@@ -1138,6 +1138,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
addRoomFragment(false);
|
||||
//获取管理员
|
||||
getMvpPresenter().getNormalChatMember();
|
||||
getMvpPresenter().getSuperAdminList();
|
||||
dismissLoadingDialog();
|
||||
}
|
||||
|
||||
|
@@ -79,7 +79,7 @@ public class RoomManagerListActivity extends BaseMvpActivity<IRoomManagerView, R
|
||||
public void onOk() {
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo != null) {
|
||||
getMvpPresenter().markManagerList(roomInfo.getRoomId(), chatRoomMember.getAccount(), false);
|
||||
getMvpPresenter().removeManagerList(roomInfo.getRoomId(), chatRoomMember.getAccount());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@@ -3,7 +3,9 @@ package com.yizhuan.erban.avroom.activity;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.TextUtils;
|
||||
@@ -98,7 +100,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
binding = DataBindingUtil.setContentView(this,R.layout.activity_room_setting);
|
||||
binding = DataBindingUtil.setContentView(this, R.layout.activity_room_setting);
|
||||
initWhiteTitleBar(getString(R.string.room_setting));
|
||||
binding.setClick(this);
|
||||
EventBus.getDefault().register(this);
|
||||
@@ -111,7 +113,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
initLeaveMode();
|
||||
getMvpPresenter().requestRoomInfo(roomInfo.getUid());
|
||||
mRoomBgLayout.setVisibility(View.GONE);
|
||||
if (!AvRoomDataManager.get().isRoomOwner(String.valueOf(AuthModel.get().getCurrentUid()))) {
|
||||
if (!AvRoomDataManager.get().isRoomOwner() && !AvRoomDataManager.get().isSuperAdmin()) {
|
||||
managerLayout.setVisibility(View.GONE);
|
||||
} else {
|
||||
managerLayout.setVisibility(View.VISIBLE);
|
||||
@@ -147,7 +149,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
binding.switchAudio.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
if (isChecked){
|
||||
if (isChecked) {
|
||||
getDialogManager().showOkCancelWithTitleDialog("提示",
|
||||
new SpannableString("开启高品质音效效果将导致声音较大延迟,请慎重选择"),
|
||||
"确定", "取消", new DialogManager.OkCancelDialogListener() {
|
||||
@@ -224,11 +226,12 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
|
||||
/**
|
||||
* 保存用户信息,不需要改动的传null
|
||||
* @param name 房间名字
|
||||
* @param pwd 房间密码
|
||||
* @param label 房间标签
|
||||
*
|
||||
* @param name 房间名字
|
||||
* @param pwd 房间密码
|
||||
* @param label 房间标签
|
||||
* @param isUpdateGiftEffect 是否改动了礼物特效
|
||||
* @param giftEffect 是否开启礼物特效
|
||||
* @param giftEffect 是否开启礼物特效
|
||||
*/
|
||||
private void save(final String name, final String pwd, String label, boolean isUpdateGiftEffect,
|
||||
boolean giftEffect) {
|
||||
@@ -261,7 +264,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
AuthModel.get().getTicket(),
|
||||
giftEffect,
|
||||
binding.switchAudio.isChecked() ? 2 : 1,
|
||||
roomInfo.getLimitType(),roomInfo.isPureMode())
|
||||
roomInfo.getLimitType(), roomInfo.isPureMode())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(observer);
|
||||
StatisticManager.Instance().sortLogFileByLastModified();
|
||||
|
@@ -31,6 +31,8 @@ import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
||||
import com.yizhuan.xchat_android_core.manager.EngineType;
|
||||
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
||||
import com.yizhuan.xchat_android_core.manager.RoomEvent;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.SuperAdminInfo;
|
||||
import com.yizhuan.xchat_android_core.monsterhunting.bean.MonsterInfo;
|
||||
import com.yizhuan.xchat_android_core.monsterhunting.model.MonsterHuntingModel;
|
||||
import com.yizhuan.xchat_android_core.patriarch.exception.PmRoomLimitException;
|
||||
@@ -57,6 +59,7 @@ import com.yizhuan.xchat_android_library.threadmgr.ThreadPoolManager;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -98,6 +101,7 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
|
||||
/**
|
||||
* 进入云信聊天室回调
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void enterRoom(RoomInfo roomInfo, int fromType, String fromNick, String fromUid) {
|
||||
if (roomInfo == null) {
|
||||
if (getMvpView() != null)
|
||||
@@ -132,16 +136,15 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_ROOM_LIST_TYPE,
|
||||
"区分房间类型:" + roomInfo.getRoomTypeLable());
|
||||
|
||||
Observable<EnterChatRoomResultData> enterRoomObservable = mAvRoomModel.enterRoom(roomInfo.getRoomId(), 3, fromType, fromNick, fromUid);
|
||||
|
||||
Disposable subscribe = enterRoomObservable.flatMap(this::dealServerMicInfo)
|
||||
mAvRoomModel.enterRoom(roomInfo.getRoomId(), 3, fromType, fromNick, fromUid)
|
||||
.flatMap(this::dealServerMicInfo)
|
||||
.map(this::dealMicMemberFromIMNet)
|
||||
.flatMap(this::dealMicChatRoomMemberFromIMNet)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(roomQueueInfoSparseArray -> {
|
||||
long uid = AuthModel.get().getCurrentUid();
|
||||
AudioEngineManager.get().startRtcEngine(uid,roomInfo.getAudioSdkType());
|
||||
AudioEngineManager.get().startRtcEngine(uid, roomInfo.getAudioSdkType());
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().enterRoomSuccess();
|
||||
}
|
||||
@@ -429,6 +432,31 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
|
||||
mAvRoomModel.getNormalChatMember(String.valueOf(roomInfo.getRoomId()), currentUid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取房间内固定成员列表
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void getSuperAdminList() {
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo == null) {
|
||||
return;
|
||||
}
|
||||
HallModel.get().getRoomSuperAdminList(roomInfo.getUid())
|
||||
.compose(bindToLifecycle())
|
||||
.toObservable()
|
||||
.flatMap(Observable::fromIterable)
|
||||
.map(superAdminInfo -> {
|
||||
ChatRoomMember chatRoomMember = new ChatRoomMember();
|
||||
chatRoomMember.setAccount(String.valueOf(superAdminInfo.getUid()));
|
||||
chatRoomMember.setAvatar(superAdminInfo.getAvatar());
|
||||
chatRoomMember.setNick(superAdminInfo.getNick());
|
||||
return chatRoomMember;
|
||||
})
|
||||
.toList()
|
||||
.subscribe(chatRoomMembers -> AvRoomDataManager.get().setAllRoomSuperAdminList(chatRoomMembers));
|
||||
}
|
||||
|
||||
|
||||
private void startGetOnlineMemberNumberJob() {
|
||||
Observable.interval(1, 10, TimeUnit.SECONDS, Schedulers.from(ThreadPoolManager.instance().getScheduleExecutor()))
|
||||
.subscribe(new Observer<Long>() {
|
||||
|
@@ -3,10 +3,13 @@ package com.yizhuan.erban.avroom.presenter;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.netease.nim.uikit.common.util.C;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.yizhuan.erban.avroom.view.IRoomManagerView;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
||||
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
|
||||
import com.yizhuan.xchat_android_core.room.model.RoomBaseModel;
|
||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
@@ -22,6 +25,7 @@ import java.util.Map;
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.functions.Function;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
@@ -62,6 +66,9 @@ public class RoomManagerPresenter extends BaseMvpPresenter<IRoomManagerView> {
|
||||
if (info != null && info.isSuperAdmin()) {
|
||||
map.put(String.valueOf(info.getUid()), true);
|
||||
}
|
||||
if (info != null && AvRoomDataManager.get().isSuperAdmin(String.valueOf(info.getUid()))) {
|
||||
map.put(String.valueOf(info.getUid()), true);
|
||||
}
|
||||
}
|
||||
Iterator<ChatRoomMember> iterator = paramList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
@@ -78,7 +85,6 @@ public class RoomManagerPresenter extends BaseMvpPresenter<IRoomManagerView> {
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(this.bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.subscribe(chatRoomMemberList -> {
|
||||
AvRoomDataManager.get().mRoomManagerList = chatRoomMemberList;
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().queryManagerListSuccess(chatRoomMemberList);
|
||||
}
|
||||
@@ -95,23 +101,41 @@ public class RoomManagerPresenter extends BaseMvpPresenter<IRoomManagerView> {
|
||||
*
|
||||
* @param roomId
|
||||
* @param account
|
||||
* @param mark true:设置管理员 ,false:移除管理员
|
||||
*/
|
||||
public void markManagerList(long roomId, String account, boolean mark) {
|
||||
mRoomBaseModel.markManagerList(roomId, account, mark, new CallBack<ChatRoomMember>() {
|
||||
@Override
|
||||
public void onSuccess(ChatRoomMember data) {
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().markManagerListSuccess(data);
|
||||
@SuppressLint("CheckResult")
|
||||
public void removeManagerList(long roomId, String account) {
|
||||
if (AvRoomDataManager.get().isSuperAdmin()) {
|
||||
AvRoomModel.get().markManager(Long.parseLong(account),false).subscribe(
|
||||
s -> {
|
||||
if (getMvpView() != null) {
|
||||
ChatRoomMember chatRoomMember = new ChatRoomMember();
|
||||
chatRoomMember.setAccount(account);
|
||||
getMvpView().markManagerListSuccess(chatRoomMember);
|
||||
}
|
||||
},
|
||||
e -> {
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().markManagerListFail(-1, e.getMessage());
|
||||
}
|
||||
}
|
||||
);
|
||||
} else {
|
||||
mRoomBaseModel.markManagerList(roomId, account, false, new CallBack<ChatRoomMember>() {
|
||||
@Override
|
||||
public void onSuccess(ChatRoomMember data) {
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().markManagerListSuccess(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String error) {
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().markManagerListFail(code, error);
|
||||
@Override
|
||||
public void onFail(int code, String error) {
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().markManagerListFail(code, error);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@ import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.util.SparseArray;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.netease.nimlib.sdk.NIMChatRoomSDK;
|
||||
@@ -90,6 +91,12 @@ public final class AvRoomDataManager {
|
||||
* 房间所有人员
|
||||
*/
|
||||
public List<ChatRoomMember> mRoomAllMemberList;
|
||||
|
||||
/**
|
||||
* 房间所有超管
|
||||
*/
|
||||
@NonNull
|
||||
public final List<ChatRoomMember> roomSuperAdminList = new ArrayList<>();
|
||||
/**
|
||||
* 麦序位置信息:对应的位置,坑位信息(用户成员,坑位状态)
|
||||
*/
|
||||
@@ -655,6 +662,47 @@ public final class AvRoomDataManager {
|
||||
return isRoomAdmin(account) || isRoomOwner(account);
|
||||
}
|
||||
|
||||
public void setAllRoomSuperAdminList(List<ChatRoomMember> data) {
|
||||
roomSuperAdminList.clear();
|
||||
roomSuperAdminList.addAll(data);
|
||||
}
|
||||
|
||||
public void addRoomSuperAdmin(ChatRoomMember member) {
|
||||
roomSuperAdminList.add(member);
|
||||
}
|
||||
|
||||
public void removeRoomSuperAdmin(String account) {
|
||||
for (int i = 0; i < roomSuperAdminList.size(); i++) {
|
||||
ChatRoomMember chatRoomMember = roomSuperAdminList.get(i);
|
||||
if (chatRoomMember.getAccount().equals(account)) {
|
||||
roomSuperAdminList.remove(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 自己是否是房间超管
|
||||
*
|
||||
* @return -
|
||||
*/
|
||||
public boolean isSuperAdmin() {
|
||||
return isSuperAdmin(String.valueOf(AuthModel.get().getCurrentUid()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否是房间超管
|
||||
*
|
||||
* @return -
|
||||
*/
|
||||
public boolean isSuperAdmin(String account) {
|
||||
if (roomSuperAdminList.isEmpty()) return false;
|
||||
for (ChatRoomMember chatRoomMember : roomSuperAdminList) {
|
||||
if (chatRoomMember.getAccount().equals(account)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断坑位是否被锁了
|
||||
*/
|
||||
@@ -842,7 +890,7 @@ public final class AvRoomDataManager {
|
||||
* @return
|
||||
*/
|
||||
public boolean isQueuingMicro() {
|
||||
return isRoomInQueuingMicMode(mCurrentRoomInfo);
|
||||
return isRoomInQueuingMicMode(mCurrentRoomInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -854,7 +902,7 @@ public final class AvRoomDataManager {
|
||||
public boolean isRoomInQueuingMicMode(RoomInfo roomInfo) {
|
||||
if (roomInfo == null) return false;
|
||||
return roomInfo.getRoomModeType() == RoomModeType.OPEN_MICRO_MODE
|
||||
||roomInfo.getRoomModeType() == RoomModeType.OPEN_DATING_MODE;
|
||||
|| roomInfo.getRoomModeType() == RoomModeType.OPEN_DATING_MODE;
|
||||
}
|
||||
|
||||
public void addManagerMember(ChatRoomMember member) {
|
||||
|
@@ -444,9 +444,9 @@ public class AvRoomModel extends RoomBaseModel implements IAvRoomModel {
|
||||
/**
|
||||
* 该接口每次最多返回200个数据,房间黑名单过多会导致200个不够用,做个分页加载(云信房间固定成员最多为1000个)
|
||||
*
|
||||
* @param roomId 房间id
|
||||
* @param roomId 房间id
|
||||
* @param currentUid 当前用户id
|
||||
* @param time 固定成员列表用updateTime
|
||||
* @param time 固定成员列表用updateTime
|
||||
*/
|
||||
private void loadNormalChatMember(String roomId, final long currentUid, long time) {
|
||||
NIMChatRoomSDK.getChatRoomService()
|
||||
@@ -540,9 +540,9 @@ public class AvRoomModel extends RoomBaseModel implements IAvRoomModel {
|
||||
* 设置管理员/拉黑
|
||||
* 1: 设置为管理员;2:设置普通等级用户;-1:设为黑名单用户;-2:设为禁言用户
|
||||
*/
|
||||
private Single<String> setRole(long targetUid, int opt, String notifyExt) {
|
||||
private Single<String> setRole(long targetUid, int opt, boolean isSet, String notifyExt) {
|
||||
return mRoomService.setChatRoomRole(AvRoomDataManager.get().getRoomUid(),
|
||||
targetUid, opt, notifyExt)
|
||||
targetUid, opt, isSet, notifyExt)
|
||||
.compose(RxHelper.handleIgnoreData());
|
||||
}
|
||||
|
||||
@@ -556,12 +556,7 @@ public class AvRoomModel extends RoomBaseModel implements IAvRoomModel {
|
||||
KickOutExtBean bean = new KickOutExtBean();
|
||||
bean.setRole(1);
|
||||
bean.setHandleUid(String.valueOf(AuthModel.get().getCurrentUid()));
|
||||
return setRole(targetUid, -1, new Gson().toJson(bean));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<String> markManager(long targetUid) {
|
||||
return setRole(targetUid, 1, null);
|
||||
return setRole(targetUid, -1, true, new Gson().toJson(bean));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -571,9 +566,15 @@ public class AvRoomModel extends RoomBaseModel implements IAvRoomModel {
|
||||
*/
|
||||
@Override
|
||||
public Single<String> removeBlack(long targetUid) {
|
||||
return setRole(targetUid, 2, null);
|
||||
return setRole(targetUid, 1, false, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<String> markManager(long targetUid,boolean isSet) {
|
||||
return setRole(targetUid, 1, isSet, null);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Single<ServiceResult<List<SimplePartyRoomInfo>>> getPartyRoomList(long uid) {
|
||||
return mRoomService.getPartyRoomList(uid).compose(RxHelper.handleSchedulers());
|
||||
|
@@ -1011,6 +1011,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
||||
Single<ServiceResult<JsonElement>> setChatRoomRole(@Query("roomUid") long roomUid,
|
||||
@Query("targetUid") long targetUid,
|
||||
@Query("opt") int opt,
|
||||
@Query("isSet") boolean isSet,
|
||||
@Query("notifyExt") String notifyExt);
|
||||
|
||||
/**
|
||||
|
@@ -115,8 +115,9 @@ public interface IAvRoomModel extends IModel {
|
||||
/**
|
||||
* 通过服务器接口设置为管理员
|
||||
* @param targetUid 被拉黑的uid
|
||||
* @param isSet true 设置管理, false 取消管理
|
||||
*/
|
||||
Single<String> markManager(long targetUid);
|
||||
Single<String> markManager(long targetUid,boolean isSet);
|
||||
|
||||
/**
|
||||
* 通过服务器接口移除拉黑
|
||||
|
@@ -56,7 +56,7 @@ public class SAdminOptUtil {
|
||||
Single<String> single;
|
||||
if (!AvRoomDataManager.get().isRoomAdmin()) {
|
||||
//将超管设置为房间管理员
|
||||
single = AvRoomModel.get().markManager(AuthModel.get().getCurrentUid());
|
||||
single = AvRoomModel.get().markManager(AuthModel.get().getCurrentUid(),true);
|
||||
} else {
|
||||
single = Single.just("");
|
||||
}
|
||||
@@ -91,7 +91,7 @@ public class SAdminOptUtil {
|
||||
* @return -
|
||||
*/
|
||||
public static boolean kickOutRoomAdmin(String kickUid, String nick) {
|
||||
if (!SuperAdminUtil.isSuperAdmin()) {
|
||||
if (!SuperAdminUtil.isSuperAdmin() && !AvRoomDataManager.get().isSuperAdmin()) {
|
||||
return false;
|
||||
}
|
||||
if (!AvRoomDataManager.get().isRoomAdmin(kickUid)) {
|
||||
|
Reference in New Issue
Block a user