diff --git a/app/src/module_super_admin/java/com/chwl/app/sadmin/RoomSAdminManagerActivity.java b/app/src/module_super_admin/java/com/chwl/app/sadmin/RoomSAdminManagerActivity.java new file mode 100644 index 0000000..d44ad23 --- /dev/null +++ b/app/src/module_super_admin/java/com/chwl/app/sadmin/RoomSAdminManagerActivity.java @@ -0,0 +1,172 @@ +package com.chwl.app.sadmin; + +import android.content.Context; +import android.content.Intent; +import android.view.View; + +import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; +import com.trello.rxlifecycle3.android.ActivityEvent; +import com.chwl.app.R; +import com.chwl.app.avroom.activity.RoomBlackListActivity; +import com.chwl.app.base.BaseViewBindingActivity; +import com.chwl.app.common.widget.dialog.DialogManager; +import com.chwl.app.databinding.ActivityRoomSAdminManagerBinding; +import com.chwl.core.base.CancelNoToastException; +import com.chwl.core.kick.KickModel; +import com.chwl.core.manager.AvRoomDataManager; +import com.chwl.core.manager.IMNetEaseManager; +import com.chwl.core.room.bean.RoomInfo; +import com.chwl.core.room.model.AvRoomModel; +import com.chwl.core.super_admin.model.ISuperAdminModel; +import com.chwl.core.super_admin.model.SuperAdminModel; +import com.chwl.core.super_admin.util.SaAttachmentFactory; +import com.chwl.core.utils.net.DontWarnObserver; +import com.chwl.library.net.rxnet.callback.CallBack; +import com.chwl.library.utils.ResUtil; + +import io.reactivex.Single; +import io.reactivex.SingleOnSubscribe; + +/** + * 房间超管管理界面 + * create by lvzebiao @2019/8/26 + */ +public class RoomSAdminManagerActivity extends BaseViewBindingActivity{ + + private ISuperAdminModel model = new SuperAdminModel(); + + private boolean isOpting = false; + + public static void start(Context context) { + context.startActivity(new Intent(context, RoomSAdminManagerActivity.class)); + } + + @Override + public void init() { + initTitleBar(R.string.sa_label_room_super_a_manager); + initListener(); + + binding.switchHideRoom.setOn(AvRoomDataManager.get().isHideRoom()); + //解除房间设置 + binding.stvOpRemoveRoomLimit.setVisibility( + (AvRoomDataManager.get().isCpRoomLock() || AvRoomDataManager.get().isRoomLock()) ? + View.VISIBLE : View.GONE); + } + + private void initListener() { + binding.stvOpBlackList.setOnClickListener(view -> RoomBlackListActivity.start(context)); + binding.stvOpRemoveRoomLimit.setOnClickListener(view -> handleRoomPwd()); + binding.stvOpCloseRoom.setOnClickListener(view -> handleRoomClose()); + binding.viewClickHideRoom.setOnClickListener(view -> handleHideRoom(!AvRoomDataManager.get().isHideRoom())); + } + + private void handleHideRoom(boolean isHide) { + if (isOpting) { + return; + } + isOpting = true; + Single.create((SingleOnSubscribe) e -> { + if (isHide) { + getDialogManager().showOkCancelWithTitleDialog( + ResUtil.getString(R.string.erban_sadmin_roomsadminmanageractivity_01), + new DialogManager.OkCancelDialogListener() { + @Override + public void onOk() { + model.roomOperate(SuperAdminModel.HIDE_ROOM) + .compose(bindUntilEvent(ActivityEvent.DESTROY)) + .subscribe(); + e.onSuccess("next"); + } + + @Override + public void onCancel() { + e.onError(new CancelNoToastException()); + } + }); + } else { + e.onSuccess("next"); + } + }) + .flatMap(s -> model.hideRoom(isHide ? 1 : 0)) + .subscribe(new DontWarnObserver() { + + @Override + public void acceptThrowable(String s, Throwable throwable) { + super.acceptThrowable(s, throwable); + if (throwable != null) { + if (!(throwable instanceof CancelNoToastException)) { + toast(throwable.getMessage()); + } + } else { + binding.switchHideRoom.setOn(isHide); + } + isOpting = false; + } + }); + } + + private void handleRoomPwd() { + RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo; + if (roomInfo == null) { + return; + } + model.roomOperate(SuperAdminModel.REMOVE_ROOM_LIMIT) + .compose(bindUntilEvent(ActivityEvent.DESTROY)) + .subscribe(); + model.removeLimit() + .compose(bindUntilEvent(ActivityEvent.DESTROY)) + .subscribe(new DontWarnObserver() { + @Override + public void accept(String s, String error) { + super.accept(s, error); + if (error != null) { + toast(error); + return; + } + binding.stvOpRemoveRoomLimit.setVisibility(View.GONE); + ChatRoomMessage msg; + if (AvRoomDataManager.get().isCpRoom()) { + msg = SaAttachmentFactory.createRemoveLimitChatRoomMessage(); + } else { + msg = SaAttachmentFactory.createRemoveRoomPwdChatRoomMessage(); + } + IMNetEaseManager.get().sendChatRoomMessage(msg, false) + .doOnSuccess(chatRoomMessage -> + KickModel.get().onSendRoomMessageSuccess(chatRoomMessage)) + .subscribe(); + finish(); + } + }); + } + + private void handleRoomClose() { + model.roomOperate(SuperAdminModel.CLOSE_ROOM) + .compose(bindUntilEvent(ActivityEvent.DESTROY)) + .subscribe(); + getDialogManager().showOkCancelWithTitleDialog( + ResUtil.getString(R.string.erban_sadmin_roomsadminmanageractivity_02), + new DialogManager.OkCancelDialogListener() { + @Override + public void onOk() { + AvRoomModel.get().quitRoomForOurService(AvRoomDataManager.get().getRoomUid(), + new CallBack() { + @Override + public void onSuccess(String data) { + finish(); + } + + @Override + public void onFail(int code, String error) { + toast(error); + } + }); + } + + @Override + public void onCancel() { + + } + }); + } + +} diff --git a/app/src/module_super_admin/java/com/chwl/app/sadmin/utils/SaAttachmentToMsgUtil.java b/app/src/module_super_admin/java/com/chwl/app/sadmin/utils/SaAttachmentToMsgUtil.java new file mode 100644 index 0000000..777a69a --- /dev/null +++ b/app/src/module_super_admin/java/com/chwl/app/sadmin/utils/SaAttachmentToMsgUtil.java @@ -0,0 +1,89 @@ +package com.chwl.app.sadmin.utils; + +import android.text.TextUtils; +import android.text.style.ForegroundColorSpan; +import android.widget.TextView; + +import com.chwl.app.R; +import com.chwl.app.ui.widget.TextSpannableBuilder; +import com.chwl.core.im.custom.bean.CustomAttachment; +import com.chwl.core.manager.AvRoomDataManager; +import com.chwl.core.super_admin.attachment.SuperAdminOpAttachment; +import com.chwl.core.super_admin.bean.SaOpInfo; +import com.chwl.library.utils.ResUtil; + +/** + * 超管自定义消息 to 公屏消息 + * create by lvzebiao @2019/8/21 + */ +public class SaAttachmentToMsgUtil { + + public static CharSequence formatSuperAdminInfo(CustomAttachment attachment, TextView tvContent, + int greyColor, int roomTipColor) { + if (!(attachment instanceof SuperAdminOpAttachment)) { + return null; + } + SuperAdminOpAttachment opAttachment = (SuperAdminOpAttachment) attachment; + SaOpInfo info = opAttachment.getInfo(); + if (info == null) { + return null; + } + String opName = null; + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); + text.append(AvRoomDataManager.get().isSuperAdmin(info.getHandleUid()) ? "" : ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_01), new ForegroundColorSpan(greyColor)); + switch (opAttachment.getSecond()) { + case CustomAttachment.CUSTOM_MSG_SUB_TYPE_SUPER_ADMIN_KICK_DOWN_MIC: + if (!TextUtils.isEmpty(info.getTargetNick())) { + text.append(info.getTargetNick(), new ForegroundColorSpan(roomTipColor)); + } + opName = ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_02); + break; + case CustomAttachment.CUSTOM_MSG_SUB_TYPE_SUPER_ADMIN_MUTE_MIC: + opName = getMicString(info.getMicNumber()) + ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_03); + break; + case CustomAttachment.CUSTOM_MSG_SUB_TYPE_SUPER_ADMIN_LOCK_MIC: + opName = getMicString(info.getMicNumber()) + ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_04); + break; + case CustomAttachment.CUSTOM_MSG_SUB_TYPE_SUPER_ADMIN_MARK_BLACK: + if (!TextUtils.isEmpty(info.getTargetNick())) { + text.append(info.getTargetNick(), new ForegroundColorSpan(roomTipColor)); + } + opName = ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_05); + break; + case CustomAttachment.CUSTOM_MSG_SUB_TYPE_SUPER_ADMIN_KICK_OUT_ROOM: + case CustomAttachment.CUSTOM_MSG_SUB_TYPE_SUPER_ADMIN_KICK_OUT_ADMIN: + if (!TextUtils.isEmpty(info.getTargetNick())) { + text.append(info.getTargetNick(), new ForegroundColorSpan(roomTipColor)); + } + opName = ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_06); + break; + case CustomAttachment.CUSTOM_MSG_SUB_TYPE_SUPER_ADMIN_REMOVE_CP_ROOM_LIMIT: + opName = ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_07); + break; + case CustomAttachment.CUSTOM_MSG_SUB_TYPE_SUPER_ADMIN_REMOVE_ROOM_PWD: + opName = ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_08); + break; + default: + return null; + } + if (!TextUtils.isEmpty(opName)) { + text.append(opName, new ForegroundColorSpan(greyColor)); + } + return text.build(); + } + + private static String getMicString(int micNumber) { + String micString; + if (AvRoomDataManager.get().isHomeParty()) { + if (micNumber == -1) { + micString = ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_09); + } else { + micString = (micNumber + 1) + ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_010); + } + } else { + micString = (micNumber + 2) + ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_010); + } + return micString; + } + +} diff --git a/app/src/module_super_admin/java/com/chwl/app/sadmin/utils/SuperAdminUiHelper.java b/app/src/module_super_admin/java/com/chwl/app/sadmin/utils/SuperAdminUiHelper.java new file mode 100644 index 0000000..dca4940 --- /dev/null +++ b/app/src/module_super_admin/java/com/chwl/app/sadmin/utils/SuperAdminUiHelper.java @@ -0,0 +1,7 @@ +package com.chwl.app.sadmin.utils; + +/** + * create by lvzebiao @2019/8/26 + */ +public class SuperAdminUiHelper { +} diff --git a/app/src/module_super_admin/res/drawable-xhdpi/icon_sa_close_room.webp b/app/src/module_super_admin/res/drawable-xhdpi/icon_sa_close_room.webp new file mode 100644 index 0000000..d7a9fa2 Binary files /dev/null and b/app/src/module_super_admin/res/drawable-xhdpi/icon_sa_close_room.webp differ diff --git a/app/src/module_super_admin/res/drawable-xhdpi/icon_sa_remove_room_limit.webp b/app/src/module_super_admin/res/drawable-xhdpi/icon_sa_remove_room_limit.webp new file mode 100644 index 0000000..ca7aea1 Binary files /dev/null and b/app/src/module_super_admin/res/drawable-xhdpi/icon_sa_remove_room_limit.webp differ diff --git a/app/src/module_super_admin/res/drawable-xhdpi/selector_radiobutton_gender_female.xml b/app/src/module_super_admin/res/drawable-xhdpi/selector_radiobutton_gender_female.xml new file mode 100644 index 0000000..18dc299 --- /dev/null +++ b/app/src/module_super_admin/res/drawable-xhdpi/selector_radiobutton_gender_female.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/module_super_admin/res/layout/activity_room_s_admin_manager.xml b/app/src/module_super_admin/res/layout/activity_room_s_admin_manager.xml new file mode 100644 index 0000000..4fe2660 --- /dev/null +++ b/app/src/module_super_admin/res/layout/activity_room_s_admin_manager.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/module_super_admin/res/layout/item_speedy_message.xml b/app/src/module_super_admin/res/layout/item_speedy_message.xml new file mode 100644 index 0000000..f6a2282 --- /dev/null +++ b/app/src/module_super_admin/res/layout/item_speedy_message.xml @@ -0,0 +1,13 @@ + + \ No newline at end of file diff --git a/app/src/module_super_admin/res/values-ar/strings.xml b/app/src/module_super_admin/res/values-ar/strings.xml new file mode 100644 index 0000000..e2883bb --- /dev/null +++ b/app/src/module_super_admin/res/values-ar/strings.xml @@ -0,0 +1,8 @@ + + + النظام اكتشف انتهاك مشتبه به، لقد تمت إزالتك من الميكروفون + النظام اكتشف انتهاك مشتبه به، لقد تمت إضافتك إلى قائمة الحظر + النظام اكتشف انتهاك مشتبه به، لقد تم طردك من الغرفة + الإدارة الرسمية + إخفاء الغرفة + \ No newline at end of file diff --git a/app/src/module_super_admin/res/values-zh-rTW/strings.xml b/app/src/module_super_admin/res/values-zh-rTW/strings.xml new file mode 100644 index 0000000..75f4500 --- /dev/null +++ b/app/src/module_super_admin/res/values-zh-rTW/strings.xml @@ -0,0 +1,8 @@ + + + 系統檢測涉嫌違規,你被抱下麥 + 系統檢測涉嫌違規,你已被加入黑名單 + 系統檢測涉嫌違規,你被請出房間 + 官方管理 + 隱藏房間 + \ No newline at end of file diff --git a/app/src/module_super_admin/res/values/strings.xml b/app/src/module_super_admin/res/values/strings.xml new file mode 100644 index 0000000..b7792a9 --- /dev/null +++ b/app/src/module_super_admin/res/values/strings.xml @@ -0,0 +1,8 @@ + + + System detected suspected violation, you have been removed from the mic + System detected suspected violation, you have been added to the blacklist + System detected suspected violation, you have been kicked out of the room + Official Management + Hide Room +