新增跨房PK预约提示气泡
This commit is contained in:
@@ -24,12 +24,9 @@ import com.yizhuan.erban.avroom.dialog.MicQueueDialog;
|
||||
import com.yizhuan.erban.avroom.dialog.PKMicQueueDialog;
|
||||
import com.yizhuan.erban.avroom.dialog.PKResultDialog;
|
||||
import com.yizhuan.erban.avroom.dialog.PKScoreBoardDialog;
|
||||
import com.yizhuan.erban.avroom.firstcharge.FirstChargeDialog;
|
||||
import com.yizhuan.erban.avroom.firstcharge.FirstChargePrizeDialog;
|
||||
import com.yizhuan.erban.avroom.giftvalue.GiftValueDialogUiHelper;
|
||||
import com.yizhuan.erban.avroom.ktv.KtvSongListActivity;
|
||||
import com.yizhuan.erban.ui.webview.DialogWebViewActivity;
|
||||
import com.yizhuan.xchat_android_core.helper.AtProxy;
|
||||
import com.yizhuan.erban.avroom.presenter.HomePartyPresenter;
|
||||
import com.yizhuan.erban.avroom.view.IHomePartyView;
|
||||
import com.yizhuan.erban.avroom.widget.PKBoardView;
|
||||
@@ -38,6 +35,7 @@ import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
import com.yizhuan.erban.databinding.FragmentAvRoomGameBinding;
|
||||
import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper;
|
||||
import com.yizhuan.erban.ui.webview.DatingRuleWebViewActivity;
|
||||
import com.yizhuan.erban.ui.webview.DialogWebViewActivity;
|
||||
import com.yizhuan.erban.utils.UserUtils;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
@@ -53,7 +51,6 @@ import com.yizhuan.xchat_android_core.pay.event.FirstChargeEvent;
|
||||
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||
import com.yizhuan.xchat_android_core.room.event.DatingSelectUserEvent;
|
||||
import com.yizhuan.xchat_android_core.room.face.DynamicFaceModel;
|
||||
import com.yizhuan.xchat_android_core.room.event.RoomAtEvent;
|
||||
import com.yizhuan.xchat_android_core.room.face.FaceInfo;
|
||||
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
|
||||
import com.yizhuan.xchat_android_core.room.model.MicQueueModel;
|
||||
@@ -66,8 +63,10 @@ import com.yizhuan.xchat_android_core.room.queuing_mic.event.QueuingMicEmptyEven
|
||||
import com.yizhuan.xchat_android_core.room.queuing_mic.event.QueuingMicNotEmptyEvent;
|
||||
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
|
||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||
import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.UIUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
|
||||
@@ -75,11 +74,13 @@ import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
/**
|
||||
@@ -101,6 +102,7 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
*/
|
||||
private MicQueueDialog micQueueDialog;
|
||||
private PKMicQueueDialog pkMicQueueDialog;
|
||||
private Disposable roomPkOrderDisposable;
|
||||
|
||||
public static HomePartyRoomFragment newInstance(boolean isRoomMin) {
|
||||
HomePartyRoomFragment roomFragment = new HomePartyRoomFragment();
|
||||
@@ -145,6 +147,7 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
initSpeedyMessage(gameBinding.flSpeedyMessage);
|
||||
updateQueuingMicBtn();
|
||||
updatePkScoreBoard();
|
||||
initRoomPkOrder(AvRoomDataManager.get().showPkBeginTime, AvRoomDataManager.get().pkBeginTime);
|
||||
getMvpPresenter().getBannerList();
|
||||
UserModel.get().getCurrentUserInfo()
|
||||
.compose(bindToLifecycle())
|
||||
@@ -209,6 +212,7 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
gameBinding.setRoomInfo(AvRoomDataManager.get().mCurrentRoomInfo);
|
||||
updateQueuingMicBtn();
|
||||
updatePkScoreBoard();
|
||||
initRoomPkOrder(AvRoomDataManager.get().showPkBeginTime, AvRoomDataManager.get().pkBeginTime);
|
||||
break;
|
||||
case RoomEvent.KICK_DOWN_MIC_BY_S_ADMIN:
|
||||
case RoomEvent.KICK_DOWN_MIC:
|
||||
@@ -279,11 +283,30 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
RoomPkFinishDialog.newInstance(roomPkBean).show(mContext);
|
||||
}
|
||||
break;
|
||||
case RoomEvent.ROOM_PK_ORDER:
|
||||
RoomPkBean roomPkOrder = ((RoomPKAttachment) roomEvent.getChatRoomMessage().getAttachment()).getRoomPkBean();
|
||||
initRoomPkOrder(true, roomPkOrder.getBeginTime());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void initRoomPkOrder(boolean isShowPkBeginTime, long pkBeginTime) {
|
||||
if (roomPkOrderDisposable != null && !roomPkOrderDisposable.isDisposed()) return;
|
||||
long residueSeconds = (pkBeginTime - CurrentTimeUtils.getCurrentTime()) / 1000;
|
||||
if (isShowPkBeginTime && residueSeconds > 0) {
|
||||
gameBinding.llRoomPkOrder.setVisibility(View.VISIBLE);
|
||||
roomPkOrderDisposable = Observable.intervalRange(0, residueSeconds, 1, 1, TimeUnit.SECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
|
||||
.doOnComplete(() -> gameBinding.llRoomPkOrder.setVisibility(View.GONE))
|
||||
.subscribe(aLong -> gameBinding.tvRoomPkOrderTime.setText(TimeUtils.getFormatTimeString((residueSeconds - aLong) * 1000, "min:sec")));
|
||||
} else {
|
||||
gameBinding.llRoomPkOrder.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* cp房自动上麦
|
||||
*/
|
||||
|
@@ -127,6 +127,8 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
|
||||
AvRoomDataManager.get().isRoomFans = roomInfo.isRoomFans();
|
||||
AvRoomDataManager.get().trtcSig = roomInfo.getTrtcSig();
|
||||
AvRoomDataManager.get().clearScreenTime = roomInfo.getClearScreenTime();
|
||||
AvRoomDataManager.get().showPkBeginTime = roomInfo.isShowPkBeginTime();
|
||||
AvRoomDataManager.get().pkBeginTime = roomInfo.getPkBeginTime();
|
||||
AvRoomDataManager.get().setRedEnvelopeOpen(roomInfo.isRedEnvelopeOpen());
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_ROOM_LIST_TYPE,
|
||||
"区分房间类型:" + roomInfo.getRoomTypeLable());
|
||||
|
BIN
app/src/main/res/drawable-xhdpi/bg_room_pk_order.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/bg_room_pk_order.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
@@ -78,19 +78,51 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_room_pk_order"
|
||||
android:layout_width="130dp"
|
||||
android:layout_height="34dp"
|
||||
android:layout_below="@id/contribute_list"
|
||||
android:layout_marginTop="5dp"
|
||||
android:background="@drawable/bg_room_pk_order"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:includeFontPadding="false"
|
||||
android:text="距离下一场PK开始"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="10sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_room_pk_order_time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="30dp"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="#fffff333"
|
||||
android:textSize="10sp"
|
||||
tools:text="04:55" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_hour_rank"
|
||||
android:layout_width="76dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_alignTop="@id/contribute_list"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:paddingStart="1dp"
|
||||
android:background="@drawable/bg_single_room_rank_entrance"
|
||||
android:drawableStart="@drawable/ic_single_room_rank"
|
||||
android:drawablePadding="4dp"
|
||||
android:gravity="center_vertical"
|
||||
android:includeFontPadding="false"
|
||||
android:onClick="@{click}"
|
||||
android:paddingStart="1dp"
|
||||
android:text="小时榜"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12dp"
|
||||
|
@@ -1251,6 +1251,11 @@ public final class IMNetEaseManager {
|
||||
case CUSTOM_MSG_SUB_SINGLE_ROOM_PK_NOTIFY:
|
||||
noticeRoomEvent(msg, RoomEvent.SINGLE_ROOM_PK_NOTIFY);
|
||||
break;
|
||||
case CUSTOM_MSG_SUB_ROOM_PK_ORDER:
|
||||
AvRoomDataManager.get().showPkBeginTime = true;
|
||||
AvRoomDataManager.get().pkBeginTime = roomPkBean.getBeginTime();
|
||||
noticeRoomEvent(msg, RoomEvent.ROOM_PK_ORDER);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CUSTOM_MSG_VIP:
|
||||
|
@@ -346,6 +346,7 @@ public class CustomAttachment implements MsgAttachment {
|
||||
public static final int CUSTOM_MSG_SUB_ROOM_PK_UPDATE = 834;
|
||||
public static final int CUSTOM_MSG_SUB_ROOM_PK_FINISH = 835;
|
||||
public static final int CUSTOM_MSG_SUB_ROOM_PK_NOTIFY = 836;
|
||||
public static final int CUSTOM_MSG_SUB_ROOM_PK_ORDER = 8314;
|
||||
public static final int CUSTOM_MSG_SUB_SINGLE_ROOM_PK_INVITE = 837;// 个播pk发出邀请
|
||||
public static final int CUSTOM_MSG_SUB_SINGLE_ROOM_PK_REFUSE = 838;// 个播pk拒绝邀请
|
||||
public static final int CUSTOM_MSG_SUB_SINGLE_ROOM_PK_ACCEPT = 839;// 个播pk接受邀请
|
||||
|
@@ -110,6 +110,11 @@ public class RoomPkBean implements Serializable {
|
||||
private String winNick;
|
||||
private String failNick;
|
||||
|
||||
/**
|
||||
* PK预约字段
|
||||
*/
|
||||
private long beginTime;
|
||||
|
||||
@Data
|
||||
public static class RankBean implements Serializable {
|
||||
//uid
|
||||
|
@@ -175,7 +175,8 @@ public final class AvRoomDataManager {
|
||||
//清空公屏消息时间
|
||||
public long clearScreenTime;
|
||||
|
||||
private Disposable subscribe;
|
||||
public boolean showPkBeginTime;
|
||||
public long pkBeginTime;
|
||||
/**
|
||||
* 一起玩 按钮开关
|
||||
*/
|
||||
@@ -325,9 +326,6 @@ public final class AvRoomDataManager {
|
||||
if (mCurrentRoomInfo != null) {
|
||||
mCurrentRoomInfo = null;
|
||||
}
|
||||
if (subscribe != null) {
|
||||
subscribe.dispose();
|
||||
}
|
||||
haveSelfChange = false;
|
||||
GiftValueMrg.get().clearObsever();
|
||||
mMicQueueMemberMap.clear();
|
||||
|
@@ -233,6 +233,8 @@ public class RoomEvent {
|
||||
|
||||
public static final int ROOM_RANK_TOP_NOTIFY = 91;
|
||||
|
||||
public static final int ROOM_PK_ORDER = 92;
|
||||
|
||||
private int event = NONE;
|
||||
private int micPosition = Integer.MIN_VALUE;
|
||||
private int posState = -1;
|
||||
|
@@ -141,6 +141,9 @@ public class RoomInfo implements Parcelable,Serializable {
|
||||
|
||||
private long worldId; // >0:语音派对房
|
||||
|
||||
private boolean showPkBeginTime;
|
||||
private long pkBeginTime;
|
||||
|
||||
protected RoomInfo(Parcel in) {
|
||||
uid = in.readLong();
|
||||
officeUser = in.readInt();
|
||||
|
Reference in New Issue
Block a user