房间设置新增房间分类设置入口

This commit is contained in:
huangjian
2022-07-15 14:41:28 +08:00
parent 6dd7481a29
commit af86ef80d4
13 changed files with 733 additions and 584 deletions

View File

@@ -9,15 +9,15 @@ import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import com.donkingliang.labels.LabelsView;
import com.netease.nim.uikit.StatusBarUtil; import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder; import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
import com.yizhuan.erban.R; import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.dialog.SelectLabelDialog;
import com.yizhuan.erban.avroom.presenter.RoomSettingPresenter; import com.yizhuan.erban.avroom.presenter.RoomSettingPresenter;
import com.yizhuan.erban.avroom.view.IRoomSettingView; import com.yizhuan.erban.avroom.view.IRoomSettingView;
import com.yizhuan.erban.avroom.widget.EditRoomTitleDialog; import com.yizhuan.erban.avroom.widget.EditRoomTitleDialog;
@@ -39,6 +39,7 @@ import com.yizhuan.xchat_android_core.manager.RoomEvent;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.room.bean.RoomMessageViewNoticeInfo; import com.yizhuan.xchat_android_core.room.bean.RoomMessageViewNoticeInfo;
import com.yizhuan.xchat_android_core.room.bean.RoomSettingTabInfo; import com.yizhuan.xchat_android_core.room.bean.RoomSettingTabInfo;
import com.yizhuan.xchat_android_core.room.bean.SingleRoomSortInfo;
import com.yizhuan.xchat_android_core.room.giftvalue.GiftValueModel; import com.yizhuan.xchat_android_core.room.giftvalue.GiftValueModel;
import com.yizhuan.xchat_android_core.room.giftvalue.helper.GiftValueMrg; import com.yizhuan.xchat_android_core.room.giftvalue.helper.GiftValueMrg;
import com.yizhuan.xchat_android_core.room.model.AvRoomModel; import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
@@ -49,6 +50,7 @@ import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
import com.yizhuan.xchat_android_core.utils.net.BeanObserver; import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter; import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack; import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
import com.yizhuan.xchat_android_library.utils.CommonUtils;
import com.yizhuan.xchat_android_library.utils.JavaUtil; import com.yizhuan.xchat_android_library.utils.JavaUtil;
import com.yizhuan.xchat_android_library.utils.ListUtils; import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.codec.DESUtils; import com.yizhuan.xchat_android_library.utils.codec.DESUtils;
@@ -60,6 +62,7 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import io.reactivex.SingleObserver; import io.reactivex.SingleObserver;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -71,21 +74,24 @@ import io.reactivex.disposables.Disposable;
*/ */
@CreatePresenter(RoomSettingPresenter.class) @CreatePresenter(RoomSettingPresenter.class)
public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomSettingPresenter> public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomSettingPresenter>
implements LabelsView.OnLabelClickListener, View.OnClickListener, IRoomSettingView { implements View.OnClickListener, IRoomSettingView {
private LabelsView labelsView;
private List<String> labels;
private String selectLabel;
private RelativeLayout managerLayout; private RelativeLayout managerLayout;
private RelativeLayout blackLayout; private RelativeLayout blackLayout;
private RelativeLayout mRoomBgLayout; private RelativeLayout mRoomBgLayout;
private RoomInfo roomInfo; private RoomInfo roomInfo;
private View selectLabelView; private String selectLabel;
private RoomSettingTabInfo mSelectTabInfo; private RoomSettingTabInfo mSelectTabInfo;
private List<RoomSettingTabInfo> mTabInfoList; private List<RoomSettingTabInfo> tabInfoList;
@Nullable
private Long singleRoomSortId;
@Nullable
private String singleRoomSortName;
@Nullable
private List<SingleRoomSortInfo> sortInfoList;
private ActivityRoomSettingBinding binding; private ActivityRoomSettingBinding binding;
public static void start(Context context) { public static void start(Context context) {
@@ -121,6 +127,9 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
if (AvRoomDataManager.get().isCpRoom() || AvRoomDataManager.get().isSingleRoom()) { if (AvRoomDataManager.get().isCpRoom() || AvRoomDataManager.get().isSingleRoom()) {
binding.queuingMicroModeLayout.setVisibility(View.GONE); binding.queuingMicroModeLayout.setVisibility(View.GONE);
} }
binding.layoutSingleRoomSort.setVisibility(
AvRoomDataManager.get().isRoomOwner() && AvRoomDataManager.get().isSingleRoom()
? View.VISIBLE : View.GONE);
//调用更改房间信息接口后会发消息ROOM_INFO_UPDATE在此处接收ui改动 //调用更改房间信息接口后会发消息ROOM_INFO_UPDATE在此处接收ui改动
IMNetEaseManager.get().getChatRoomEventObservable() IMNetEaseManager.get().getChatRoomEventObservable()
.compose(bindToLifecycle()) .compose(bindToLifecycle())
@@ -199,6 +208,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
selectLabel = ""; selectLabel = "";
} }
binding.tvRoomLabel.setText(selectLabel); binding.tvRoomLabel.setText(selectLabel);
binding.tvSingleRoomSort.setText(roomInfo.getSortName());
binding.switchAudio.setChecked(roomInfo.getAudioQuality() == 2); binding.switchAudio.setChecked(roomInfo.getAudioQuality() == 2);
if (TextUtils.isEmpty(roomInfo.getRoomPwd())) { if (TextUtils.isEmpty(roomInfo.getRoomPwd())) {
binding.layoutPwdResult.setVisibility(View.GONE); binding.layoutPwdResult.setVisibility(View.GONE);
@@ -262,37 +272,28 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
}; };
if (AvRoomDataManager.get().isRoomOwner()) { if (AvRoomDataManager.get().isRoomOwner()) {
model.updateRoomInfo(name, desc, roomInfo.getIntroduction(), pwd, label, id, model.updateRoomInfo(name, desc, roomInfo.getIntroduction(), pwd, label, id,
AuthModel.get().getCurrentUid(), AuthModel.get().getCurrentUid(),
AuthModel.get().getTicket(), AuthModel.get().getTicket(),
giftEffect, giftEffect,
binding.switchAudio.isChecked() ? 2 : 1, binding.switchAudio.isChecked() ? 2 : 1,
roomInfo.getLimitType(), roomInfo.isPureMode(), roomInfo.getLimitType(), roomInfo.isPureMode(),
roomInfo.getType(), roomInfo.getType(),
roomInfo.getMgId()) roomInfo.getMgId(),
singleRoomSortId)
.compose(bindToLifecycle()) .compose(bindToLifecycle())
.subscribe(observer); .subscribe(observer);
} else if (AvRoomDataManager.get().isRoomAdmin()) { } else if (AvRoomDataManager.get().isRoomAdmin()) {
model.updateByAdmin(roomInfo.getUid(), name, desc, roomInfo.getIntroduction(), pwd, label, id, model.updateByAdmin(roomInfo.getUid(), name, desc, roomInfo.getIntroduction(), pwd, label, id,
AuthModel.get().getCurrentUid(), AuthModel.get().getCurrentUid(),
AuthModel.get().getTicket(), AuthModel.get().getTicket(),
giftEffect, giftEffect,
binding.switchAudio.isChecked() ? 2 : 1, binding.switchAudio.isChecked() ? 2 : 1,
roomInfo.isPureMode()) roomInfo.isPureMode())
.compose(bindToLifecycle()) .compose(bindToLifecycle())
.subscribe(observer); .subscribe(observer);
} }
} }
@Override
public void onLabelClick(TextView label, Object data, int position) {
if (!ListUtils.isListEmpty(mTabInfoList)) {
mSelectTabInfo = mTabInfoList.get(position);
}
selectLabel = (String) data;
labelsView.setSelects(position);
}
@Override @Override
public void onClick(View v) { public void onClick(View v) {
switch (v.getId()) { switch (v.getId()) {
@@ -343,32 +344,22 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
pwdDialog.show(); pwdDialog.show();
break; break;
case R.id.layout_label: case R.id.layout_label:
if (selectLabelView == null) { if (CommonUtils.isFastDoubleClick(1000)) return;
selectLabelView = binding.vsLabels.getViewStub().inflate(); if (ListUtils.isListEmpty(tabInfoList)) {
labelsView = selectLabelView.findViewById(R.id.labels_view); getDialogManager().showProgressDialog(this);
getMvpPresenter().requestTagAll();
} else {
onResultRequestTagAllSuccess(tabInfoList);
}
break;
case R.id.layout_single_room_sort:
if (CommonUtils.isFastDoubleClick(1000)) return;
if (ListUtils.isListEmpty(sortInfoList)) {
getDialogManager().showProgressDialog(this);
getMvpPresenter().requestSingleRoomSort();
} else {
onResultRequestSingleRoomSortSuccess(sortInfoList);
} }
selectLabelView.setVisibility(View.VISIBLE);
selectLabelView.findViewById(R.id.iv_close_label).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectLabelView.setVisibility(View.GONE);
}
});
selectLabelView.findViewById(R.id.tv_select_lable).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectLabelView.setVisibility(View.GONE);
//选择的是同一个则不处理
if (TextUtils.isEmpty(selectLabel) || selectLabel.equals(roomInfo.getRoomTag())) {
return;
}
// StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_ROOM_LIST_LABEL,
// "区分房间标签:" + selectLabel);
save(null, null, selectLabel);
}
});
labelsView.setOnLabelClickListener(this);
getMvpPresenter().requestTagAll();
break; break;
case R.id.switch_gift: case R.id.switch_gift:
if (binding.switchGift.isSelected()) { if (binding.switchGift.isSelected()) {
@@ -398,7 +389,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
if (roomInfo == null) return; if (roomInfo == null) return;
getDialogManager().showProgressDialog(this, "请稍后..."); getDialogManager().showProgressDialog(this, "请稍后...");
AvRoomModel.get().closeScreen(roomInfo.getRoomId(), AvRoomModel.get().closeScreen(roomInfo.getRoomId(),
!roomInfo.isCloseScreen()) !roomInfo.isCloseScreen())
.compose(bindToLifecycle()) .compose(bindToLifecycle())
.flatMap(data -> IMNetEaseManager.get().closeOpenScreen( .flatMap(data -> IMNetEaseManager.get().closeOpenScreen(
data.getRoomId(), data)) data.getRoomId(), data))
@@ -538,35 +529,64 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
} }
} }
@Override @Override
public void onResultRequestTagAllSuccess(List<RoomSettingTabInfo> tabInfoList) { public void onResultRequestTagAllSuccess(List<RoomSettingTabInfo> tabInfoList) {
mTabInfoList = tabInfoList; this.tabInfoList = tabInfoList;
getDialogManager().dismissDialog();
if (ListUtils.isListEmpty(tabInfoList)) { if (ListUtils.isListEmpty(tabInfoList)) {
toast("房间标签为空"); toast("房间标签为空");
return; return;
} }
labels = new ArrayList<>(); List<String> labels = new ArrayList<>();
for (RoomSettingTabInfo tabInfo : tabInfoList) { for (RoomSettingTabInfo tabInfo : tabInfoList) {
labels.add(tabInfo.getName()); labels.add(tabInfo.getName());
} }
labelsView.setLabels((ArrayList<String>) labels); new SelectLabelDialog(this, "房间标签", labels, roomInfo.getRoomTag(), (label, data, position) -> {
if (roomInfo != null && !TextUtils.isEmpty(roomInfo.getRoomTag())) { mSelectTabInfo = tabInfoList.get(position);
if (labels.contains(roomInfo.getRoomTag())) { selectLabel = (String) data;
labelsView.setSelects(labels.indexOf(roomInfo.getRoomTag())); }, v -> {
//选择的是同一个则不处理
if (TextUtils.isEmpty(selectLabel) || selectLabel.equals(roomInfo.getRoomTag())) {
return;
} }
} save(null, null, selectLabel);
}).show();
} }
@Override @Override
public void onResultRequestTagAllFail(String error) { public void onResultRequestTagAllFail(String error) {
getDialogManager().dismissDialog();
toast(error); toast(error);
} }
@Override @Override
public void updateRoomInfoSuccess(RoomInfo roomInfo) { public void onResultRequestSingleRoomSortSuccess(List<SingleRoomSortInfo> tabInfoList) {
sortInfoList = tabInfoList;
getDialogManager().dismissDialog();
if (ListUtils.isListEmpty(tabInfoList)) {
toast("房间分类为空");
return;
}
List<String> labels = new ArrayList<>();
for (SingleRoomSortInfo tabInfo : tabInfoList) {
labels.add(tabInfo.getSortName());
}
new SelectLabelDialog(this, "房间分类", labels, roomInfo.getRoomTag(), (label, data, position) -> {
singleRoomSortId = tabInfoList.get(position).getId();
singleRoomSortName = (String) data;
}, v -> {
//选择的是同一个则不处理
if (TextUtils.isEmpty(singleRoomSortName) || Objects.equals(singleRoomSortName, roomInfo.getSortName())) {
return;
}
save(null, null, roomInfo.getRoomTag());
}).show();
}
@Override
public void onResultRequestSingleRoomSortFail(String error) {
getDialogManager().dismissDialog();
toast(error);
} }
@Override @Override
@@ -606,12 +626,6 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
binding.tvTipsLeaveMode.setVisibility(roomInfo.isLeaveMode() ? View.VISIBLE : View.GONE); binding.tvTipsLeaveMode.setVisibility(roomInfo.isLeaveMode() ? View.VISIBLE : View.GONE);
} }
@Override
public void updateRoomInfoFail(String error) {
getDialogManager().dismissDialog();
toast(error);
}
@Override @Override
public void onSuccessToFinish() { public void onSuccessToFinish() {
finish(); finish();

View File

@@ -0,0 +1,41 @@
package com.yizhuan.erban.avroom.dialog
import android.content.Context
import android.view.View
import com.donkingliang.labels.LabelsView
import com.yizhuan.erban.R
import com.yizhuan.erban.databinding.DialogSelectLabelBinding
import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
@ActLayoutRes(R.layout.dialog_select_label)
class SelectLabelDialog(
context: Context,
private val title: String,
private val labels: List<String>,
private val selectLabel: String?,
private val onLabelClickListener: LabelsView.OnLabelClickListener,
private val onSaveClickListener: View.OnClickListener
) :
BaseBindingDialog<DialogSelectLabelBinding>(context, R.style.dialog),
View.OnClickListener {
override fun init() {
binding.click = this
binding.tvTitle.text = title
binding.labelsView.setOnLabelClickListener(onLabelClickListener)
binding.labelsView.setLabels(labels)
if (labels.contains(selectLabel)) {
binding.labelsView.setSelects(labels.indexOf(selectLabel))
}
}
override fun onClick(v: View) {
when (v.id) {
R.id.tv_confirm -> {
onSaveClickListener.onClick(v)
dismiss()
}
}
}
}

View File

@@ -62,6 +62,20 @@ public class RoomSettingPresenter extends BaseMvpPresenter<IRoomSettingView> {
}); });
} }
@SuppressLint("CheckResult")
public void requestSingleRoomSort() {
model.requestSingleRoomSort()
.subscribe((date, throwable) -> {
IRoomSettingView roomSettingView = getMvpView();
if (roomSettingView == null) return;
if (throwable != null) {
roomSettingView.onResultRequestSingleRoomSortFail(throwable.getMessage());
} else {
roomSettingView.onResultRequestSingleRoomSortSuccess(date);
}
});
}
public void requestRoomInfo(long uid) { public void requestRoomInfo(long uid) {
model.requestRoomInfoFromService(uid + "", new CallBack<RoomInfo>() { model.requestRoomInfoFromService(uid + "", new CallBack<RoomInfo>() {
@Override @Override
@@ -194,9 +208,9 @@ public class RoomSettingPresenter extends BaseMvpPresenter<IRoomSettingView> {
} }
if (AvRoomDataManager.get().isRoomOwner()) { if (AvRoomDataManager.get().isRoomOwner()) {
model.updateRoomPureModeForOwner(roomInfo.getTitle(), roomInfo.getRoomDesc(), model.updateRoomPureModeForOwner(roomInfo.getTitle(), roomInfo.getRoomDesc(),
roomInfo.getIntroduction(), roomInfo.getRoomPwd(), roomInfo.getRoomTag(), roomInfo.getIntroduction(), roomInfo.getRoomPwd(), roomInfo.getRoomTag(),
roomInfo.getTagId(), roomInfo.isHasAnimationEffect(), roomInfo.getTagId(), roomInfo.isHasAnimationEffect(),
roomInfo.getAudioQuality(), roomInfo.getLimitType(), isPureMode) roomInfo.getAudioQuality(), roomInfo.getLimitType(), isPureMode)
.compose(bindToLifecycle()) .compose(bindToLifecycle())
.subscribe((roomInfo1, throwable) -> { .subscribe((roomInfo1, throwable) -> {
if (throwable == null) { if (throwable == null) {
@@ -207,8 +221,8 @@ public class RoomSettingPresenter extends BaseMvpPresenter<IRoomSettingView> {
}); });
} else if (AvRoomDataManager.get().isRoomAdmin()) { } else if (AvRoomDataManager.get().isRoomAdmin()) {
model.updateRoomPureMode(roomInfo.getUid(), roomInfo.getTitle(), roomInfo.getRoomDesc(), model.updateRoomPureMode(roomInfo.getUid(), roomInfo.getTitle(), roomInfo.getRoomDesc(),
roomInfo.getIntroduction(), roomInfo.getRoomPwd(), roomInfo.getRoomTag(), roomInfo.getTagId(), roomInfo.getIntroduction(), roomInfo.getRoomPwd(), roomInfo.getRoomTag(), roomInfo.getTagId(),
roomInfo.isHasAnimationEffect(), roomInfo.getAudioQuality(), isPureMode) roomInfo.isHasAnimationEffect(), roomInfo.getAudioQuality(), isPureMode)
.compose(bindToLifecycle()) .compose(bindToLifecycle())
.subscribe((roomInfo1, throwable) -> { .subscribe((roomInfo1, throwable) -> {
if (throwable == null) { if (throwable == null) {

View File

@@ -2,6 +2,7 @@ package com.yizhuan.erban.avroom.view;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.room.bean.RoomSettingTabInfo; import com.yizhuan.xchat_android_core.room.bean.RoomSettingTabInfo;
import com.yizhuan.xchat_android_core.room.bean.SingleRoomSortInfo;
import com.yizhuan.xchat_android_library.base.IMvpBaseView; import com.yizhuan.xchat_android_library.base.IMvpBaseView;
import java.util.List; import java.util.List;
@@ -18,12 +19,12 @@ public interface IRoomSettingView extends IMvpBaseView {
void onResultRequestTagAllFail(String error); void onResultRequestTagAllFail(String error);
void updateRoomInfoSuccess(RoomInfo roomInfo); void onResultRequestSingleRoomSortSuccess(List<SingleRoomSortInfo> tabInfoList);
void onResultRequestSingleRoomSortFail(String error);
void reQuestRoomInfo(RoomInfo roomInfo); void reQuestRoomInfo(RoomInfo roomInfo);
void updateRoomInfoFail(String error);
void onSuccessToFinish(); void onSuccessToFinish();
void onFailToToast(String error); void onFailToToast(String error);

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#FFA936" android:state_selected="true" />
<item android:color="@color/color_666666" />
</selector>

View File

@@ -4,14 +4,15 @@
<item android:state_selected="true"> <item android:state_selected="true">
<shape> <shape>
<corners android:radius="25dp" /> <corners android:radius="25dp" />
<solid android:color="@color/appColor" /> <solid android:color="#FFF0C9" />
<stroke android:width="1px" android:color="#FFBC51" />
</shape> </shape>
</item> </item>
<!-- 标签的正常背景 --> <!-- 标签的正常背景 -->
<item> <item>
<shape> <shape>
<corners android:radius="25dp" /> <corners android:radius="25dp" />
<solid android:color="@color/white_transparent_10" /> <solid android:color="@color/color_F1F1FA" />
</shape> </shape>
</item> </item>
</selector> </selector>

View File

@@ -10,66 +10,118 @@
type="android.view.View.OnClickListener" /> type="android.view.View.OnClickListener" />
</data> </data>
<FrameLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/bg_normal_1c1b22"> android:background="@color/bg_normal_1c1b22"
android:orientation="vertical">
<com.yizhuan.erban.base.TitleBar
<LinearLayout android:id="@+id/title_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:orientation="vertical"> android:layout_marginTop="@dimen/dp_30" />
<com.yizhuan.erban.base.TitleBar <ScrollView
android:id="@+id/title_bar" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_30" /> android:orientation="vertical">
<ScrollView <RelativeLayout
android:layout_width="match_parent" android:id="@+id/layout_room_name_edit"
android:layout_height="match_parent"> android:layout_width="match_parent"
android:layout_height="44dp"
android:onClick="@{click}">
<TextView
android:id="@+id/name_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:text="房间名"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<TextView
android:id="@+id/tv_room_name"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/dp_16"
android:drawableEnd="@drawable/arrow_right"
android:drawablePadding="@dimen/dp_10"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxWidth="250dp"
android:maxLines="1"
android:textColor="@color/text_normal_c6c6e9"
android:textSize="@dimen/sp_13"
tools:text="官方房官方房官方房官方房官方房官方房官方房官方房官方" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15"
android:background="@color/line_353548" />
<RelativeLayout
android:id="@+id/rl_pwd"
android:layout_width="match_parent"
android:layout_height="44dp">
<TextView
android:id="@+id/pwd_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:text="房间上锁"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<ImageView
android:id="@+id/iv_room_lock"
android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_25"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="@dimen/dp_15"
android:onClick="@{click}"
android:scaleType="fitCenter"
android:src="@drawable/icon_room_set_lock_false" />
<EditText
android:id="@+id/pwd_edit"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@id/pwd_text"
android:background="@null"
android:hint="请设置房间密码"
android:inputType="number"
android:maxLength="8"
android:singleLine="true"
android:textColor="@color/text_normal_c6c6e9"
android:textColorHint="@color/text_hint_555574"
android:textCursorDrawable="@null"
android:textSize="14dp"
android:visibility="gone" />
</RelativeLayout>
<LinearLayout <LinearLayout
android:id="@+id/layout_pwd_result"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<RelativeLayout
android:id="@+id/layout_room_name_edit"
android:layout_width="match_parent"
android:layout_height="44dp"
android:onClick="@{click}">
<TextView
android:id="@+id/name_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:text="房间名"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<TextView
android:id="@+id/tv_room_name"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/dp_16"
android:drawableEnd="@drawable/arrow_right"
android:drawablePadding="@dimen/dp_10"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxWidth="250dp"
android:maxLines="1"
android:textColor="@color/text_normal_c6c6e9"
android:textSize="@dimen/sp_13"
tools:text="官方房官方房官方房官方房官方房官方房官方房官方房官方" />
</RelativeLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1px" android:layout_height="1px"
@@ -77,350 +129,400 @@
android:layout_marginEnd="@dimen/dp_15" android:layout_marginEnd="@dimen/dp_15"
android:background="@color/line_353548" /> android:background="@color/line_353548" />
<RelativeLayout <TextView
android:id="@+id/rl_pwd" android:id="@+id/tv_password"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="44dp"> android:layout_height="@dimen/dp_44"
android:drawableEnd="@drawable/arrow_right"
android:gravity="center_vertical"
android:onClick="@{click}"
android:paddingStart="@dimen/dp_15"
android:paddingEnd="@dimen/dp_15"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15"
tools:text="123456" />
<TextView </LinearLayout>
android:id="@+id/pwd_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:text="房间上锁"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<ImageView <View
android:id="@+id/iv_room_lock" android:layout_width="match_parent"
android:layout_width="@dimen/dp_45" android:layout_height="@dimen/dp_10"
android:layout_height="@dimen/dp_25" android:background="@color/line_353548" />
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="@dimen/dp_15"
android:onClick="@{click}"
android:scaleType="fitCenter"
android:src="@drawable/icon_room_set_lock_false" />
<EditText <RelativeLayout
android:id="@+id/pwd_edit" android:id="@+id/layout_single_room_sort"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="44dp"
android:layout_marginLeft="15dp" android:onClick="@{click}"
android:layout_toRightOf="@id/pwd_text" android:visibility="gone"
android:background="@null" tools:visibility="visible">
android:hint="请设置房间密码"
android:inputType="number"
android:maxLength="8"
android:singleLine="true"
android:textColor="@color/text_normal_c6c6e9"
android:textColorHint="@color/text_hint_555574"
android:textCursorDrawable="@null"
android:textSize="14dp"
android:visibility="gone" />
</RelativeLayout>
<LinearLayout <TextView
android:id="@+id/layout_pwd_result" android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:text="房间分类"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<View <TextView
android:layout_width="match_parent" android:id="@+id/tv_single_room_sort"
android:layout_height="1px" android:layout_width="wrap_content"
android:layout_marginStart="@dimen/dp_15" android:layout_height="match_parent"
android:layout_marginEnd="@dimen/dp_15" android:layout_alignParentEnd="true"
android:background="@color/line_353548" /> android:layout_marginEnd="@dimen/dp_16"
android:drawableEnd="@drawable/arrow_right"
android:drawablePadding="@dimen/dp_10"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxWidth="250dp"
android:maxLines="1"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp_14"
tools:text="聊天" />
<TextView </RelativeLayout>
android:id="@+id/tv_password"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_44"
android:drawableEnd="@drawable/arrow_right"
android:gravity="center_vertical"
android:onClick="@{click}"
android:paddingStart="@dimen/dp_15"
android:paddingEnd="@dimen/dp_15"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15"
tools:text="123456" />
</LinearLayout> <View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15"
android:background="@color/line_353548" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_10"
android:background="@color/line_353548" />
<RelativeLayout <RelativeLayout
android:id="@+id/layout_label" android:id="@+id/layout_label"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="44dp" android:layout_height="44dp"
android:onClick="@{click}"> android:onClick="@{click}">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginLeft="15dp" android:layout_marginLeft="15dp"
android:text="房间标签" android:text="房间标签"
android:textColor="@color/text_title_white" android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tv_room_label" android:id="@+id/tv_room_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/dp_16" android:layout_marginEnd="@dimen/dp_16"
android:drawableEnd="@drawable/arrow_right" android:drawableEnd="@drawable/arrow_right"
android:drawablePadding="@dimen/dp_10" android:drawablePadding="@dimen/dp_10"
android:ellipsize="end" android:ellipsize="end"
android:gravity="center_vertical" android:gravity="center_vertical"
android:maxWidth="250dp" android:maxWidth="250dp"
android:maxLines="1" android:maxLines="1"
android:textColor="@color/app_248cfe" android:textColor="@color/color_333333"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_14"
tools:text="聊天" /> tools:text="聊天" />
</RelativeLayout> </RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_10"
android:background="@color/line_353548" />
<RelativeLayout <View
android:id="@+id/manager_layout" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="@dimen/dp_10"
android:layout_height="@dimen/dp_45"> android:background="@color/line_353548" />
<TextView <RelativeLayout
android:layout_width="wrap_content" android:id="@+id/manager_layout"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_centerVertical="true" android:layout_height="@dimen/dp_45">
android:layout_marginLeft="15dp"
android:text="管理员"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<ImageView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_centerVertical="true"
android:layout_centerVertical="true" android:layout_marginLeft="15dp"
android:layout_marginRight="15dp" android:text="管理员"
android:src="@drawable/arrow_right" /> android:textColor="@color/text_title_white"
</RelativeLayout> android:textSize="@dimen/sp_15" />
<View <ImageView
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="1px" android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/arrow_right" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15"
android:background="@color/line_353548" />
<RelativeLayout
android:id="@+id/black_layout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:layout_marginTop="1dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:text="黑名单"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/arrow_right" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15"
android:background="@color/line_353548" />
<RelativeLayout
android:id="@+id/room_bg_layout"
android:layout_width="match_parent"
android:layout_height="44dp"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:text="@string/room_bg_text"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/arrow_right" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/audio_layout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/dp_15" android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15" android:text="高品质音效"
android:background="@color/line_353548" /> android:textColor="@color/text_title_white" />
<RelativeLayout <Switch
android:id="@+id/black_layout" android:id="@+id/switch_audio"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45" android:layout_height="wrap_content"
android:layout_marginTop="1dp"> android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/arrow_right" />
</RelativeLayout>
<TextView <View
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="1px"
android:layout_centerVertical="true" android:layout_marginStart="@dimen/dp_15"
android:layout_marginLeft="15dp" android:layout_marginEnd="@dimen/dp_15"
android:text="黑名单" android:background="@color/line_353548" />
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<ImageView <RelativeLayout
android:layout_width="wrap_content" android:id="@+id/gift_layout"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_alignParentRight="true" android:layout_height="55dp">
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/arrow_right" />
</RelativeLayout>
<View <TextView
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="1px" android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/dp_15" android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15" android:text="房间礼物特效"
android:background="@color/line_353548" /> android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<RelativeLayout <ImageView
android:id="@+id/room_bg_layout" android:id="@+id/switch_gift"
android:layout_width="match_parent" android:layout_width="45dp"
android:layout_height="44dp" android:layout_height="25dp"
android:visibility="gone"> android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="15dp"
android:onClick="@{click}"
android:src="@drawable/icon_room_set_lock_false" />
</RelativeLayout>
<TextView <View
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="1px"
android:layout_centerVertical="true" android:layout_marginStart="@dimen/dp_15"
android:layout_marginLeft="15dp" android:layout_marginEnd="@dimen/dp_15"
android:text="@string/room_bg_text" android:background="@color/line_353548" />
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<ImageView <RelativeLayout
android:layout_width="wrap_content" android:id="@+id/screen_layout"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_alignParentRight="true" android:layout_height="@dimen/dp_45">
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/arrow_right" />
</RelativeLayout>
<RelativeLayout <TextView
android:id="@+id/audio_layout" android:layout_width="wrap_content"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_height="@dimen/dp_45" android:layout_centerVertical="true"
android:visibility="gone"> android:layout_marginLeft="15dp"
android:text="房间公屏"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<TextView <ImageView
android:layout_width="wrap_content" android:id="@+id/switch_screen"
android:layout_height="wrap_content" android:layout_width="45dp"
android:layout_centerVertical="true" android:layout_height="25dp"
android:layout_marginStart="@dimen/dp_15" android:layout_alignParentEnd="true"
android:text="高品质音效" android:layout_centerVertical="true"
android:textColor="@color/text_title_white" /> android:layout_marginEnd="15dp"
android:onClick="@{click}"
android:src="@drawable/icon_room_set_lock_false" />
</RelativeLayout>
<Switch <View
android:id="@+id/switch_audio" android:layout_width="match_parent"
android:layout_width="wrap_content" android:layout_height="1px"
android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_15"
android:layout_alignParentRight="true" android:layout_marginEnd="@dimen/dp_15"
android:layout_centerVertical="true" android:background="@color/line_353548" />
android:layout_marginRight="15dp"
android:src="@drawable/arrow_right" />
</RelativeLayout>
<View <RelativeLayout
android:layout_width="match_parent" android:id="@+id/queuing_micro_mode_layout"
android:layout_height="1px" android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/dp_15" android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15" android:text="@string/text_room_queuing_micro_mode"
android:background="@color/line_353548" /> android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<RelativeLayout <ImageView
android:id="@+id/gift_layout" android:id="@+id/switch_queuing_micro_mode"
android:layout_width="match_parent" android:layout_width="45dp"
android:layout_height="55dp"> android:layout_height="25dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="15dp"
android:onClick="@{click}"
android:src="@drawable/icon_room_set_lock_false" />
</RelativeLayout>
<TextView <View
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="1px"
android:layout_centerVertical="true" android:layout_marginStart="@dimen/dp_15"
android:layout_marginStart="@dimen/dp_15" android:layout_marginEnd="@dimen/dp_15"
android:text="房间礼物特效" android:background="@color/line_353548"
android:textColor="@color/text_title_white" android:visibility="gone" />
android:textSize="@dimen/sp_15" />
<ImageView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/switch_gift" android:id="@+id/room_pure_mode_layout"
android:layout_width="45dp" android:layout_width="match_parent"
android:layout_height="25dp" android:layout_height="wrap_content"
android:layout_alignParentEnd="true" android:minHeight="@dimen/dp_45"
android:layout_centerVertical="true" android:visibility="gone">
android:layout_marginEnd="15dp"
android:onClick="@{click}"
android:src="@drawable/icon_room_set_lock_false" />
</RelativeLayout>
<View <TextView
android:layout_width="match_parent" android:id="@+id/tv_room_pure_mode"
android:layout_height="1px" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/dp_15" android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15" android:layout_marginTop="@dimen/dp_13"
android:background="@color/line_353548" /> android:text="@string/text_room_pure_mode"
android:textColor="@color/text_title_white"
android:textSize="@dimen/dp_15"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="SpUsage" />
<RelativeLayout <TextView
android:id="@+id/screen_layout" android:id="@+id/tv_tips_room_pure_mode"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="@dimen/dp_45"> android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
<TextView android:layout_marginBottom="@dimen/dp_12"
android:layout_width="wrap_content" android:text="@string/tips_open_room_pure_mode"
android:layout_height="wrap_content" android:textColor="@color/text_secondary_4f516a"
android:layout_centerVertical="true" android:textSize="@dimen/dp_12"
android:layout_marginLeft="15dp"
android:text="房间公屏"
android:textColor="@color/text_title_white"
android:textSize="@dimen/sp_15" />
<ImageView
android:id="@+id/switch_screen"
android:layout_width="45dp"
android:layout_height="25dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="15dp"
android:onClick="@{click}"
android:src="@drawable/icon_room_set_lock_false" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15"
android:background="@color/line_353548" />
<RelativeLayout
android:id="@+id/queuing_micro_mode_layout"
android:layout_width="match_parent"
android:visibility="gone" android:visibility="gone"
android:layout_height="@dimen/dp_45"> app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/tv_room_pure_mode"
app:layout_constraintTop_toBottomOf="@+id/tv_room_pure_mode"
tools:ignore="SpUsage"
tools:visibility="gone" />
<TextView <ImageView
android:layout_width="wrap_content" android:id="@+id/switch_room_pure_mode"
android:layout_height="wrap_content" android:layout_width="@dimen/dp_45"
android:layout_centerVertical="true" android:layout_height="@dimen/dp_25"
android:layout_marginStart="@dimen/dp_15" android:layout_alignParentEnd="true"
android:text="@string/text_room_queuing_micro_mode" android:layout_centerVertical="true"
android:textColor="@color/text_title_white" android:layout_marginTop="@dimen/dp_7"
android:textSize="@dimen/sp_15" /> android:layout_marginEnd="@dimen/dp_15"
android:onClick="@{click}"
android:src="@drawable/icon_room_set_lock_false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView <LinearLayout
android:id="@+id/switch_queuing_micro_mode" android:id="@+id/leave_mode_layout"
android:layout_width="45dp" android:layout_width="match_parent"
android:layout_height="25dp" android:layout_height="wrap_content"
android:layout_alignParentEnd="true" android:orientation="vertical"
android:layout_centerVertical="true" android:visibility="gone">
android:layout_marginEnd="15dp"
android:onClick="@{click}"
android:src="@drawable/icon_room_set_lock_false" />
</RelativeLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1px" android:layout_height="1px"
android:layout_marginStart="@dimen/dp_15" android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15" android:layout_marginEnd="@dimen/dp_15"
android:background="@color/line_353548" android:background="@color/line_353548" />
android:visibility="gone" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/room_pure_mode_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="@dimen/dp_45" android:minHeight="@dimen/dp_45">
android:visibility="gone">
<TextView <TextView
android:id="@+id/tv_room_pure_mode" android:id="@+id/tv_leave_mode"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginStart="@dimen/dp_15" android:layout_marginStart="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_13" android:layout_marginTop="@dimen/dp_13"
android:text="@string/text_room_pure_mode" android:text="@string/text_leave_mode"
android:textColor="@color/text_title_white" android:textColor="@color/text_title_white"
android:textSize="@dimen/dp_15" android:textSize="@dimen/dp_15"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@@ -428,23 +530,23 @@
tools:ignore="SpUsage" /> tools:ignore="SpUsage" />
<TextView <TextView
android:id="@+id/tv_tips_room_pure_mode" android:id="@+id/tv_tips_leave_mode"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5" android:layout_marginTop="@dimen/dp_5"
android:layout_marginBottom="@dimen/dp_12" android:layout_marginBottom="@dimen/dp_12"
android:text="@string/tips_open_room_pure_mode" android:text="@string/tips_leave_mode"
android:textColor="@color/text_secondary_4f516a" android:textColor="@color/text_secondary_4f516a"
android:textSize="@dimen/dp_12" android:textSize="@dimen/dp_12"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/tv_room_pure_mode" app:layout_constraintStart_toStartOf="@id/tv_leave_mode"
app:layout_constraintTop_toBottomOf="@+id/tv_room_pure_mode" app:layout_constraintTop_toBottomOf="@id/tv_leave_mode"
tools:ignore="SpUsage" tools:ignore="SpUsage"
tools:visibility="gone" /> tools:visibility="gone" />
<ImageView <ImageView
android:id="@+id/switch_room_pure_mode" android:id="@+id/switch_leave_mode"
android:layout_width="@dimen/dp_45" android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_25" android:layout_height="@dimen/dp_25"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
@@ -455,87 +557,18 @@
android:src="@drawable/icon_room_set_lock_false" android:src="@drawable/icon_room_set_lock_false"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/leave_mode_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15"
android:background="@color/line_353548" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="@dimen/dp_45">
<TextView
android:id="@+id/tv_leave_mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_13"
android:text="@string/text_leave_mode"
android:textColor="@color/text_title_white"
android:textSize="@dimen/dp_15"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="SpUsage" />
<TextView
android:id="@+id/tv_tips_leave_mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginBottom="@dimen/dp_12"
android:text="@string/tips_leave_mode"
android:textColor="@color/text_secondary_4f516a"
android:textSize="@dimen/dp_12"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/tv_leave_mode"
app:layout_constraintTop_toBottomOf="@id/tv_leave_mode"
tools:ignore="SpUsage"
tools:visibility="gone" />
<ImageView
android:id="@+id/switch_leave_mode"
android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_25"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginTop="@dimen/dp_7"
android:layout_marginEnd="@dimen/dp_15"
android:onClick="@{click}"
android:src="@drawable/icon_room_set_lock_false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<View
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@color/bg_secondary_2a2a39" />
</LinearLayout> </LinearLayout>
</ScrollView>
</LinearLayout>
<ViewStub <View
android:id="@+id/vs_labels" android:layout_width="wrap_content"
android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_height="match_parent" android:background="@color/bg_secondary_2a2a39" />
android:layout="@layout/include_layout_room_lable" />
</FrameLayout> </LinearLayout>
</ScrollView>
</LinearLayout>
</layout> </layout>

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="click"
type="android.view.View.OnClickListener" />
</data>
<LinearLayout
android:layout_width="320dp"
android:layout_height="wrap_content"
android:background="@drawable/dialog_background"
android:orientation="vertical"
android:paddingTop="@dimen/dp_16"
android:paddingBottom="@dimen/dp_16">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="房间标签"
android:textColor="#ff333333"
android:textSize="15sp" />
<com.donkingliang.labels.LabelsView
android:id="@+id/labels_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="26dp"
android:layout_marginEnd="32dp"
app:labelBackground="@drawable/bg_label"
app:labelTextColor="@color/color_selector_app_color_false_white"
app:labelTextPaddingBottom="5dp"
app:labelTextPaddingLeft="12dp"
app:labelTextPaddingRight="12dp"
app:labelTextPaddingTop="5dp"
app:labelTextSize="@dimen/sp_13"
app:lineMargin="10dp"
app:maxSelect="1"
app:selectType="SINGLE"
app:wordMargin="10dp" />
<TextView
android:id="@+id/tv_confirm"
android:layout_width="260dp"
android:layout_height="38dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="48dp"
android:background="@drawable/common_btn_bg"
android:gravity="center"
android:text="完成"
android:onClick="@{click}"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</layout>

View File

@@ -1,78 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:background="@color/black_transparent_90"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv_close_label"
android:src="@drawable/icon_close_labe"
android:layout_gravity="end"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginEnd="@dimen/dp_23"
android:layout_width="@dimen/dp_22"
android:layout_height="@dimen/dp_22" />
<TextView
android:text="@string/select_a_label_for_your_room"
android:textSize="@dimen/sp_22"
android:layout_marginTop="115dp"
android:layout_marginStart="@dimen/dp_44"
android:textColor="@color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginStart="46dp"
android:text="聊天"
android:layout_marginTop="@dimen/dp_25"
android:textColor="@color/white_transparent_50"
android:textSize="@dimen/sp_14"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="240dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.donkingliang.labels.LabelsView
android:id="@+id/labels_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="43dp"
android:layout_marginEnd="43dp"
android:layout_marginTop="7dp"
app:labelBackground="@drawable/bg_label"
app:labelTextColor="@color/white"
app:labelTextPaddingBottom="2.5dp"
app:labelTextPaddingLeft="12dp"
app:labelTextPaddingRight="12dp"
app:labelTextPaddingTop="2dp"
app:labelTextSize="@dimen/sp_13"
app:lineMargin="10dp"
app:maxSelect="1"
app:selectType="SINGLE"
app:wordMargin="10dp" />
</LinearLayout>
</ScrollView>
<com.coorchice.library.SuperTextView
android:id="@+id/tv_select_lable"
android:text="完成"
android:textColor="@color/white"
android:textSize="@dimen/sp_16"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:layout_marginTop="@dimen/dp_10"
android:layout_width="196dp"
android:layout_height="@dimen/dp_44"
app:solid="@color/appColor"
app:corner="@dimen/dp_50" />
</LinearLayout>

View File

@@ -123,7 +123,7 @@
<item name="android:background">@android:color/transparent</item> <item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item> <item name="android:backgroundDimEnabled">true</item>
<item name="android:backgroundDimAmount">0.8</item> <item name="android:backgroundDimAmount">0.5</item>
</style> </style>
<style name="top_dialog" parent="Theme.AppCompat.Dialog"> <style name="top_dialog" parent="Theme.AppCompat.Dialog">

View File

@@ -81,9 +81,8 @@ public class RoomInfo implements Parcelable,Serializable {
public String roomPwd; public String roomPwd;
private String sortName;
/** 主题类型名称 */
private String roomTag; private String roomTag;
/** 主题类型id */ /** 主题类型id */
public int tagId; public int tagId;
@@ -144,6 +143,7 @@ public class RoomInfo implements Parcelable,Serializable {
private boolean showPkBeginTime; private boolean showPkBeginTime;
private long pkBeginTime; private long pkBeginTime;
protected RoomInfo(Parcel in) { protected RoomInfo(Parcel in) {
uid = in.readLong(); uid = in.readLong();
officeUser = in.readInt(); officeUser = in.readInt();
@@ -165,6 +165,7 @@ public class RoomInfo implements Parcelable,Serializable {
meetingName = in.readString(); meetingName = in.readString();
roomPwd = in.readString(); roomPwd = in.readString();
roomTag = in.readString(); roomTag = in.readString();
sortName = in.readString();
tagId = in.readInt(); tagId = in.readInt();
tagPict = in.readString(); tagPict = in.readString();
onlineNum = in.readInt(); onlineNum = in.readInt();
@@ -186,6 +187,8 @@ public class RoomInfo implements Parcelable,Serializable {
nick = in.readString(); nick = in.readString();
gender = in.readInt(); gender = in.readInt();
worldId = in.readLong(); worldId = in.readLong();
showPkBeginTime = in.readByte() != 0;
pkBeginTime = in.readLong();
showGiftValue = in.readByte() != 0; showGiftValue = in.readByte() != 0;
hideFlag = in.readInt(); hideFlag = in.readInt();
closeScreenFlag = in.readInt(); closeScreenFlag = in.readInt();
@@ -224,6 +227,7 @@ public class RoomInfo implements Parcelable,Serializable {
dest.writeString(meetingName); dest.writeString(meetingName);
dest.writeString(roomPwd); dest.writeString(roomPwd);
dest.writeString(roomTag); dest.writeString(roomTag);
dest.writeString(sortName);
dest.writeInt(tagId); dest.writeInt(tagId);
dest.writeString(tagPict); dest.writeString(tagPict);
dest.writeInt(onlineNum); dest.writeInt(onlineNum);
@@ -245,6 +249,8 @@ public class RoomInfo implements Parcelable,Serializable {
dest.writeString(nick); dest.writeString(nick);
dest.writeInt(gender); dest.writeInt(gender);
dest.writeLong(worldId); dest.writeLong(worldId);
dest.writeByte((byte) (showPkBeginTime ? 1 : 0));
dest.writeLong(pkBeginTime);
dest.writeByte((byte) (showGiftValue ? 1 : 0)); dest.writeByte((byte) (showGiftValue ? 1 : 0));
dest.writeInt(hideFlag); dest.writeInt(hideFlag);
dest.writeInt(closeScreenFlag); dest.writeInt(closeScreenFlag);

View File

@@ -0,0 +1,6 @@
package com.yizhuan.xchat_android_core.room.bean
data class SingleRoomSortInfo(
val id: Long = 0,
val sortName: String = "",
)

View File

@@ -8,6 +8,7 @@ import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.manager.BaseMvpModel; import com.yizhuan.xchat_android_core.manager.BaseMvpModel;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.room.bean.RoomSettingTabInfo; import com.yizhuan.xchat_android_core.room.bean.RoomSettingTabInfo;
import com.yizhuan.xchat_android_core.room.bean.SingleRoomSortInfo;
import com.yizhuan.xchat_android_core.utils.net.RxHelper; import com.yizhuan.xchat_android_core.utils.net.RxHelper;
import com.yizhuan.xchat_android_library.net.rxnet.RxNet; import com.yizhuan.xchat_android_library.net.rxnet.RxNet;
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack; import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
@@ -49,6 +50,12 @@ public class RoomSettingModel extends BaseMvpModel {
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
public Single<List<SingleRoomSortInfo>> requestSingleRoomSort() {
return mRoomSettingService.requestSingleRoomSort()
.compose(RxHelper.handleSchAndExce())
.compose(RxHelper.handleBeanData());
}
public Single<String> invite(long uid, String uids) { public Single<String> invite(long uid, String uids) {
return mRoomSettingService.invite(uid, uids) return mRoomSettingService.invite(uid, uids)
.flatMap(new Function<ServiceResult<String>, SingleSource<? extends String>>() { .flatMap(new Function<ServiceResult<String>, SingleSource<? extends String>>() {
@@ -89,7 +96,34 @@ public class RoomSettingModel extends BaseMvpModel {
boolean isPureMode, boolean isPureMode,
int type, int type,
long gameId) { long gameId) {
return mRoomSettingService.updateRoomInfo(title, desc, introduction, pwd, label, tagId, uid, hasEffect, audio, limitType, isPureMode, type, gameId) return updateRoomInfo(title, desc, introduction, pwd, label, tagId, uid, ticket, hasEffect, audio, limitType, isPureMode, type, gameId, null);
}
/**
* 更新房间设置信息
*
* @param title
* @param desc
* @param pwd
* @param label 标签名字
* @param tagId 标签id
*/
public Single<RoomInfo> updateRoomInfo(String title,
String desc,
String introduction,
String pwd,
String label,
int tagId,
long uid,
String ticket,
boolean hasEffect,
int audio,
String limitType,
boolean isPureMode,
int type,
long gameId,
Long singleRoomSortId) {
return mRoomSettingService.updateRoomInfo(title, desc, introduction, pwd, label, tagId, uid, hasEffect, audio, limitType, isPureMode, type, gameId, singleRoomSortId)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io())
.onErrorResumeNext(this.<RoomInfo>getSingleCommonExceptionFunction()) .onErrorResumeNext(this.<RoomInfo>getSingleCommonExceptionFunction())
@@ -137,7 +171,7 @@ public class RoomSettingModel extends BaseMvpModel {
String introduction, String pwd, String label, String introduction, String pwd, String label,
int tagId, boolean hasEffect, int audio, boolean isPureMode) { int tagId, boolean hasEffect, int audio, boolean isPureMode) {
return mRoomSettingService.updateRoomPureMode(roomUid, title, desc, introduction, pwd, label, return mRoomSettingService.updateRoomPureMode(roomUid, title, desc, introduction, pwd, label,
tagId, AuthModel.get().getCurrentUid(), hasEffect, audio, isPureMode) tagId, AuthModel.get().getCurrentUid(), hasEffect, audio, isPureMode)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io())
.onErrorResumeNext(this.<RoomInfo>getSingleCommonExceptionFunction()) .onErrorResumeNext(this.<RoomInfo>getSingleCommonExceptionFunction())
@@ -162,7 +196,7 @@ public class RoomSettingModel extends BaseMvpModel {
int tagId, boolean hasEffect, int audio, int tagId, boolean hasEffect, int audio,
String limitType, boolean isPureMode) { String limitType, boolean isPureMode) {
return mRoomSettingService.updateRoomPureModeOwner(title, desc, introduction, pwd, label, return mRoomSettingService.updateRoomPureModeOwner(title, desc, introduction, pwd, label,
tagId, AuthModel.get().getCurrentUid(), hasEffect, audio, limitType, isPureMode) tagId, AuthModel.get().getCurrentUid(), hasEffect, audio, limitType, isPureMode)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io())
.onErrorResumeNext(this.<RoomInfo>getSingleCommonExceptionFunction()) .onErrorResumeNext(this.<RoomInfo>getSingleCommonExceptionFunction())
@@ -221,6 +255,12 @@ public class RoomSettingModel extends BaseMvpModel {
@POST("room/tag/v4/all") @POST("room/tag/v4/all")
Single<ServiceResult<List<RoomSettingTabInfo>>> requestTagAll(@Field("uid") long uid); Single<ServiceResult<List<RoomSettingTabInfo>>> requestTagAll(@Field("uid") long uid);
/**
* @return
*/
@GET("single/broadcast/sort")
Single<ServiceResult<List<SingleRoomSortInfo>>> requestSingleRoomSort();
/** /**
* 更新房间设置信息 * 更新房间设置信息
* *
@@ -243,7 +283,8 @@ public class RoomSettingModel extends BaseMvpModel {
@Field("limitType") String limitType, @Field("limitType") String limitType,
@Field("isPureMode") boolean isPureMode, @Field("isPureMode") boolean isPureMode,
@Field("type") int type, @Field("type") int type,
@Field("mgId") long gameId); @Field("mgId") long gameId,
@Field("singleRoomSortId") Long singleRoomSortId);
/** /**
* 更新房间设置信息 * 更新房间设置信息