个播PK新增静音对方麦位功能
This commit is contained in:
@@ -266,7 +266,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
|
||||
final RoomPkBean pkBean = AvRoomDataManager.get().roomPkLiveData.getValue();
|
||||
if (AvRoomDataManager.get().isRoomOwner() && !AvRoomDataManager.get().isCpRoom()) {
|
||||
boolean isMatch = AvRoomDataManager.get().getPkMatchEndTime() > 0;
|
||||
boolean isMatch = AvRoomDataManager.get().getPkMatchStartTime() > 0;
|
||||
boolean isEndPk = false;
|
||||
String str = AvRoomDataManager.get().isOpenAnotherPKMode() ? "主播PK中" : "主播PK";
|
||||
if (pkBean != null) {
|
||||
|
@@ -118,7 +118,7 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
|
||||
}
|
||||
}
|
||||
|
||||
initRoomPkOrder(AvRoomDataManager.get().pkMatchEndTime)
|
||||
initRoomPkOrder(AvRoomDataManager.get().pkMatchStartTime)
|
||||
|
||||
gameBinding.tvHourRank.setOnClickListener {
|
||||
DialogWebViewActivity.start(
|
||||
@@ -180,7 +180,7 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
|
||||
when (roomEvent.event) {
|
||||
RoomEvent.ENTER_ROOM -> {
|
||||
fansTeamViewModel.loadFansTeamInitInfo()
|
||||
initRoomPkOrder(AvRoomDataManager.get().pkMatchEndTime)
|
||||
initRoomPkOrder(AvRoomDataManager.get().pkMatchStartTime)
|
||||
}
|
||||
RoomEvent.REQUEST_UP_MIC -> {
|
||||
(roomEvent.chatRoomMessage?.attachment as? RequestUpmicAttachment)?.userInfo?.let {
|
||||
@@ -269,9 +269,9 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
|
||||
}
|
||||
}
|
||||
|
||||
private fun initRoomPkOrder(pkMatchEndTime: Long) {
|
||||
private fun initRoomPkOrder(pkMatchStartTime: Long) {
|
||||
if (pkMatchDisposable?.isDisposed == true) return
|
||||
val residueSeconds = (pkMatchEndTime - CurrentTimeUtils.getCurrentTime()) / 1000
|
||||
val residueSeconds = (pkMatchStartTime - CurrentTimeUtils.getCurrentTime()) / 1000
|
||||
if (residueSeconds > 0) {
|
||||
gameBinding.llRoomPkOrder.visibility = View.VISIBLE
|
||||
pkMatchDisposable =
|
||||
@@ -308,7 +308,7 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onShowPkMatchEvent(event: ShowPkMatchEvent) {
|
||||
initRoomPkOrder(event.pkMatchEndTime)
|
||||
initRoomPkOrder(event.pkMatchStartTime)
|
||||
}
|
||||
|
||||
}
|
@@ -122,7 +122,6 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
|
||||
AvRoomDataManager.get().updateServiceRoomInfo(roomInfo);
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_ROOM_LIST_TYPE,
|
||||
"区分房间类型:" + roomInfo.getRoomTypeLable());
|
||||
initAnotherPKData();
|
||||
mAvRoomModel.enterRoom(roomInfo.getRoomId(), 3, fromType, fromNick, fromUid)
|
||||
.flatMap(this::dealServerMicInfo)
|
||||
.map(this::dealMicMemberFromIMNet)
|
||||
@@ -143,6 +142,7 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
|
||||
.subscribe((stringServiceResult) -> EventBus.getDefault().post(new AudioPartyOpenEvent()));
|
||||
mAvRoomModel.loadMessageHistory(AvRoomDataManager.get().clearScreenTime);
|
||||
IMNetEaseManager.get().joinAvRoom();
|
||||
initAnotherPKData();
|
||||
}, this::dealEnterRoomError);
|
||||
}
|
||||
|
||||
@@ -151,7 +151,12 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
|
||||
if (AvRoomDataManager.get().isOpenAnotherPKMode()) {
|
||||
RoomPKModel.INSTANCE.getRoomPKData(AvRoomDataManager.get().getRoomUid())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(roomPkBean -> AvRoomDataManager.get().roomPkLiveData.setValue(roomPkBean));
|
||||
.subscribe(roomPkBean -> {
|
||||
AvRoomDataManager.get().roomPkLiveData.setValue(roomPkBean);
|
||||
if (AvRoomDataManager.get().isSingleRoom()){
|
||||
AudioEngineManager.get().setRemoteMute(roomPkBean.getAUid(), roomPkBean.getAMicStatus() == 0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (AvRoomDataManager.get().isHasOpenWishGift()) {
|
||||
|
@@ -17,8 +17,10 @@ import com.mango.moshen.ui.user.UserInfoActivity
|
||||
import com.mango.moshen.ui.utils.load
|
||||
import com.mango.core.im.custom.bean.RoomPkBean
|
||||
import com.mango.core.manager.AvRoomDataManager
|
||||
import com.mango.core.room.anotherroompk.SingleRoomPKModel
|
||||
import com.mango.core.utils.CurrentTimeUtils
|
||||
import com.mango.core.utils.subAndReplaceDot
|
||||
import com.mango.core.utils.toast
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
@@ -54,6 +56,18 @@ class SingleRoomPKBoardView @JvmOverloads constructor(
|
||||
SingleRoomPkRuleDialog.newInstance().show(context)
|
||||
}
|
||||
|
||||
binding.ivMuteAnother.setOnClickListener {
|
||||
if (AvRoomDataManager.get().isRoomOwner) {
|
||||
roomPkBean?.let {
|
||||
SingleRoomPKModel
|
||||
.muteSingleRoomPkOtherMic(it.roundId, it.aMicStatus xor 1)
|
||||
.subscribe()
|
||||
}
|
||||
} else {
|
||||
"主播已关闭对方房间的声音".toast()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
@@ -118,6 +132,13 @@ class SingleRoomPKBoardView @JvmOverloads constructor(
|
||||
binding.ivPkResult.setImageResource(R.drawable.single_room_pk_ic_result_win)
|
||||
}
|
||||
|
||||
if (roomPkBean?.aMicStatus == 0) {
|
||||
binding.ivMuteAnother.isVisible = true
|
||||
binding.ivMuteAnother.setImageResource(R.drawable.single_room_pk_ic_another_mic_close)
|
||||
} else {
|
||||
binding.ivMuteAnother.setImageResource(R.drawable.single_room_pk_ic_another_mic_open)
|
||||
binding.ivMuteAnother.isVisible = AvRoomDataManager.get().isRoomOwner
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
@@ -72,6 +72,14 @@
|
||||
app:layout_constraintStart_toStartOf="@id/iv_blue_avatar"
|
||||
tools:src="@drawable/single_room_pk_ic_result_win" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_mute_another"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/single_room_pk_ic_another_mic_open"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_blue_avatar"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_blue_avatar" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_blue_nickname"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -90,8 +98,8 @@
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:visibility="gone"
|
||||
android:src="@drawable/single_room_pk_bg_find_him"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_blue_nickname"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_blue_avatar"
|
||||
app:layout_constraintStart_toEndOf="@id/tv_blue_nickname"
|
||||
|
@@ -1315,6 +1315,12 @@ public final class IMNetEaseManager {
|
||||
}
|
||||
break;
|
||||
case CUSTOM_MSG_SUB_SINGLE_ROOM_PK_MUTE_MIC:
|
||||
AudioEngineManager.get().setRemoteMute(roomPkBean.getAUid(), roomPkBean.getAMicStatus() == 0);
|
||||
RoomPkBean currRoomPkBean = AvRoomDataManager.get().roomPkLiveData.getValue();
|
||||
if (currRoomPkBean != null) {
|
||||
currRoomPkBean.setAMicStatus(roomPkBean.getAMicStatus());
|
||||
AvRoomDataManager.get().roomPkLiveData.postValue(currRoomPkBean);
|
||||
}
|
||||
noticeRoomEvent(msg, RoomEvent.ROOM_PK_MUTE_MIC);
|
||||
break;
|
||||
default:
|
||||
|
@@ -192,7 +192,7 @@ public final class AvRoomDataManager {
|
||||
public boolean showPkBeginTime;
|
||||
public long pkBeginTime;
|
||||
|
||||
private long pkMatchEndTime;
|
||||
private long pkMatchStartTime;
|
||||
|
||||
/**
|
||||
* 是否有心愿礼物权限
|
||||
@@ -290,7 +290,7 @@ public final class AvRoomDataManager {
|
||||
redEnvelopeOpen = roomInfo.isRedEnvelopeOpen();
|
||||
hasWishGiftPermit = roomInfo.isHasWishGiftPermit();
|
||||
hasOpenWishGift = roomInfo.isHasOpenWishGift();
|
||||
pkMatchEndTime = roomInfo.getPkMatchEndTime();
|
||||
pkMatchStartTime = roomInfo.getPkMatchStartTime();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1335,8 +1335,8 @@ public final class AvRoomDataManager {
|
||||
this.hasOpenWishGift = hasOpenWishGift;
|
||||
}
|
||||
|
||||
public long getPkMatchEndTime() {
|
||||
return pkMatchEndTime;
|
||||
public long getPkMatchStartTime() {
|
||||
return pkMatchStartTime;
|
||||
}
|
||||
|
||||
public boolean isLimitEnterRoom(String roomUid) {
|
||||
|
@@ -6,5 +6,5 @@ import lombok.Data;
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
public class ShowPkMatchEvent {
|
||||
private long pkMatchEndTime;
|
||||
private long pkMatchStartTime;
|
||||
}
|
||||
|
@@ -131,8 +131,8 @@ object SingleRoomPKModel {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
fun muteSingleRoomPkOtherMic(): Single<String> {
|
||||
return api.muteSingleRoomPkOtherMic(AvRoomDataManager.get().roomUid)
|
||||
fun muteSingleRoomPkOtherMic(roundId: String, micStatus: Int): Single<String> {
|
||||
return api.muteSingleRoomPkOtherMic(AvRoomDataManager.get().roomUid, roundId, micStatus)
|
||||
.compose(RxHelper.handleSchAndExce())
|
||||
.compose(RxHelper.handleStringData())
|
||||
}
|
||||
@@ -239,7 +239,9 @@ object SingleRoomPKModel {
|
||||
@FormUrlEncoded
|
||||
@POST("/crossroompkround/otherMic")
|
||||
fun muteSingleRoomPkOtherMic(
|
||||
@Field("roomUid") roomUid: Long?
|
||||
@Field("roomUid") roomUid: Long?,
|
||||
@Field("roundId") roundId: String,
|
||||
@Field("micStatus") micStatus: Int
|
||||
): Single<ServiceResult<String>>
|
||||
}
|
||||
|
||||
|
@@ -146,7 +146,7 @@ public class RoomInfo implements Parcelable,Serializable {
|
||||
/**
|
||||
* 个播匹配结束时间
|
||||
*/
|
||||
private long pkMatchEndTime;
|
||||
private long pkMatchStartTime;
|
||||
|
||||
/**
|
||||
* 是否有心愿礼物权限
|
||||
|
Reference in New Issue
Block a user