个播UI修改,增加个播房主麦位光圈svga

This commit is contained in:
huangjian
2022-01-13 18:08:10 +08:00
parent 0274a49efe
commit b2af96390d
13 changed files with 253 additions and 272 deletions

Binary file not shown.

View File

@@ -741,24 +741,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
toast(error); toast(error);
} }
private void onGiftOutOfDate() {
toast("该礼物已过期");
}
public void onNeedRecharge() {
getDialogManager().showOkCancelDialog("余额不足,是否充值", true,
new DialogManager.AbsOkDialogListener() {
@Override
public void onOk() {
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_NOT_ENOUGH_TO_RECHARGE,
"余额不足_去充值:送礼物");
ChargeActivity.start(AVRoomActivity.this);
}
});
}
public void toBack() { public void toBack() {
toBack(false); toBack(false);
} }

View File

@@ -34,7 +34,6 @@ class SingleAnchorMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(con
return if (position == 0) 3 else 1 return if (position == 0) 3 else 1
} }
} }
recyclerView.setPadding(0, ScreenUtil.dip2px(35f), 0, 0)
recyclerView.layoutManager = layoutManager recyclerView.layoutManager = layoutManager
recyclerView.adapter = this recyclerView.adapter = this
} }
@@ -64,8 +63,8 @@ class SingleAnchorMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(con
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
public override fun bind(info: RoomQueueInfo, position: Int) { public override fun bind(info: RoomQueueInfo, position: Int) {
itemView.updateLayoutParams { itemView.updateLayoutParams {
width = (ScreenUtil.screenWidth * 0.25f).toInt() width = (ScreenUtil.screenWidth * 0.25f + 0.5f).toInt()
height = (ScreenUtil.screenWidth * 0.19f).toInt() height = (ScreenUtil.screenWidth * 0.19f + 0.5f).toInt()
} }
super.bind(info, position) super.bind(info, position)
info.mChatRoomMember ?: run { info.mChatRoomMember ?: run {
@@ -88,8 +87,8 @@ class SingleAnchorMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(con
public override fun bind(info: RoomQueueInfo, position: Int) { public override fun bind(info: RoomQueueInfo, position: Int) {
itemView.updateLayoutParams { itemView.updateLayoutParams {
width = (ScreenUtil.screenWidth * 0.75f).toInt() width = (ScreenUtil.screenWidth * 0.75f + 0.5f).toInt()
height = (ScreenUtil.screenWidth * 0.57f).toInt() height = (ScreenUtil.screenWidth * 0.57f + 0.5f).toInt()
} }
itemView.findViewById<SVGAImageView>(R.id.svga_head_wear)?.let { itemView.findViewById<SVGAImageView>(R.id.svga_head_wear)?.let {
it.visibility = View.VISIBLE it.visibility = View.VISIBLE

View File

@@ -17,8 +17,13 @@ import android.view.ViewStub
import android.widget.EditText import android.widget.EditText
import android.widget.ImageView import android.widget.ImageView
import android.widget.RelativeLayout import android.widget.RelativeLayout
import android.widget.TextView
import androidx.annotation.CallSuper import androidx.annotation.CallSuper
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.netease.nim.uikit.common.antispam.AntiSpamEvent import com.netease.nim.uikit.common.antispam.AntiSpamEvent
import com.netease.nimlib.sdk.StatusCode import com.netease.nimlib.sdk.StatusCode
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder
@@ -38,6 +43,7 @@ import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener
import com.yizhuan.erban.avroom.dialog.AttentionHintDialog import com.yizhuan.erban.avroom.dialog.AttentionHintDialog
import com.yizhuan.erban.avroom.dialog.DatingVipRuleDialog import com.yizhuan.erban.avroom.dialog.DatingVipRuleDialog
import com.yizhuan.erban.avroom.dialog.RoomOperationDialog import com.yizhuan.erban.avroom.dialog.RoomOperationDialog
import com.yizhuan.erban.avroom.firstcharge.FirstChargeDialog
import com.yizhuan.erban.avroom.presenter.BaseRoomPresenter import com.yizhuan.erban.avroom.presenter.BaseRoomPresenter
import com.yizhuan.erban.avroom.redpackage.RedPackageSendDialog import com.yizhuan.erban.avroom.redpackage.RedPackageSendDialog
import com.yizhuan.erban.avroom.view.IBaseRoomView import com.yizhuan.erban.avroom.view.IBaseRoomView
@@ -50,6 +56,7 @@ import com.yizhuan.erban.event.OpenRoomIntroEvent
import com.yizhuan.erban.friend.view.SelectFriendActivity import com.yizhuan.erban.friend.view.SelectFriendActivity
import com.yizhuan.erban.home.adapter.RoomActAdapter import com.yizhuan.erban.home.adapter.RoomActAdapter
import com.yizhuan.erban.home.adapter.RoomActAdapter.RoomActClickListener import com.yizhuan.erban.home.adapter.RoomActAdapter.RoomActClickListener
import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper
import com.yizhuan.erban.ui.webview.DialogWebViewActivity import com.yizhuan.erban.ui.webview.DialogWebViewActivity
import com.yizhuan.erban.ui.widget.ButtonItem import com.yizhuan.erban.ui.widget.ButtonItem
import com.yizhuan.erban.ui.widget.GiftDialog import com.yizhuan.erban.ui.widget.GiftDialog
@@ -66,6 +73,7 @@ import com.yizhuan.tutu.music.widget.MusicPlayerView
import com.yizhuan.tutu.room_chat.activity.RoomMsgActivity import com.yizhuan.tutu.room_chat.activity.RoomMsgActivity
import com.yizhuan.xchat_android_constants.XChatConstants import com.yizhuan.xchat_android_constants.XChatConstants
import com.yizhuan.xchat_android_core.Constants import com.yizhuan.xchat_android_core.Constants
import com.yizhuan.xchat_android_core.DemoCache
import com.yizhuan.xchat_android_core.UriProvider import com.yizhuan.xchat_android_core.UriProvider
import com.yizhuan.xchat_android_core.auth.AuthModel import com.yizhuan.xchat_android_core.auth.AuthModel
import com.yizhuan.xchat_android_core.bean.RoomMicInfo import com.yizhuan.xchat_android_core.bean.RoomMicInfo
@@ -96,6 +104,7 @@ import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil
import com.yizhuan.xchat_android_core.user.UserModel import com.yizhuan.xchat_android_core.user.UserModel
import com.yizhuan.xchat_android_core.user.bean.BaseInfo import com.yizhuan.xchat_android_core.user.bean.BaseInfo
import com.yizhuan.xchat_android_core.user.bean.UserInfo import com.yizhuan.xchat_android_core.user.bean.UserInfo
import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils
import com.yizhuan.xchat_android_core.utils.net.VipLevelNotEnoughException import com.yizhuan.xchat_android_core.utils.net.VipLevelNotEnoughException
import com.yizhuan.xchat_android_library.net.rxnet.utils.RxNetWorkUtils import com.yizhuan.xchat_android_library.net.rxnet.utils.RxNetWorkUtils
import com.yizhuan.xchat_android_library.rxbus.RxBus import com.yizhuan.xchat_android_library.rxbus.RxBus
@@ -137,6 +146,11 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
@JvmField @JvmField
protected var isDatingMode = false protected var isDatingMode = false
/**
* 快捷发言
*/
private var lastSendTime: Long = 0
/** /**
* 是否开启礼物值显示 * 是否开启礼物值显示
@@ -631,10 +645,13 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
.onEvent(StatisticsProtocol.Event.EVENT_MP_ROOM_RANKING_LIST_CLICK, "房间榜") .onEvent(StatisticsProtocol.Event.EVENT_MP_ROOM_RANKING_LIST_CLICK, "房间榜")
} }
R.id.tv_room_introduction -> showRoomIntroduction(AvRoomDataManager.get().isRoomOwner || AvRoomDataManager.get().isRoomAdmin) R.id.tv_room_introduction -> showRoomIntroduction(AvRoomDataManager.get().isRoomOwner || AvRoomDataManager.get().isRoomAdmin)
R.id.iv_first_charge_enter -> FirstChargeDialog.start(mContext)
R.id.iv_treasure_box,
R.id.iv_treasure_box_cp -> GoldBoxHelper.handleBoxClick(mContext)
} }
} }
fun sendMsg() { private fun sendMsg() {
sendMsg(inputEdit.text.toString()) sendMsg(inputEdit.text.toString())
} }
@@ -1050,6 +1067,50 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
} }
} }
fun initSpeedyMessage(speedyMessageContainer: View) {
val rvSpeedyMessage =
speedyMessageContainer.findViewById<RecyclerView>(R.id.rv_speedy_message)
val phrases = AvRoomDataManager.get().phrases
if (ListUtils.isListEmpty(phrases) || !TimeUtils.isTomorrow(DemoCache.readSpeedyMessageGoneTime())) {
speedyMessageContainer.visibility = View.GONE
return
}
val adapter: BaseQuickAdapter<String, BaseViewHolder> =
object : BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_speedy_message) {
override fun convert(helper: BaseViewHolder, item: String) {
(helper.itemView as TextView).text = item
}
}
rvSpeedyMessage.adapter = adapter
rvSpeedyMessage.layoutManager = LinearLayoutManager(
mContext,
LinearLayoutManager.HORIZONTAL,
false
)
adapter.setNewData(phrases)
adapter.setOnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int ->
if (CurrentTimeUtils.getCurrentTime() - lastSendTime > 10000) {
sendMsg(phrases[position])
lastSendTime = CurrentTimeUtils.getCurrentTime()
StatisticManager.Instance()
.onEvent(StatisticsProtocol.Event.EVENT_ROOM_QUICKCHAT_CLICK, "语音房_快捷发言")
} else {
val roomInfo =
AvRoomDataManager.get().mCurrentRoomInfo ?: return@setOnItemClickListener
if (roomInfo.isCloseScreen) {
toast("房间公屏已关闭")
return@setOnItemClickListener
}
SingleToastUtil.showToast("你发送的太频繁啦,请稍后再试")
}
}
speedyMessageContainer.findViewById<View>(R.id.iv_close_speedy_message).setOnClickListener {
speedyMessageContainer.visibility = View.GONE
DemoCache.saveSpeedyMessageGoneTime(System.currentTimeMillis())
}
}
override fun showMessageHistory(messages: List<ChatRoomMessage>?) { override fun showMessageHistory(messages: List<ChatRoomMessage>?) {
messageView.addHistoryMessages(messages) messageView.addHistoryMessages(messages)
} }

View File

@@ -287,6 +287,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
return currentRoomInfo != null && return currentRoomInfo != null &&
AvRoomDataManager.get().isRoomOwner() && AvRoomDataManager.get().isRoomOwner() &&
currentRoomInfo.getIsPermitRoom() != 1 && currentRoomInfo.getIsPermitRoom() != 1 &&
currentRoomInfo.getType() != RoomInfo.ROOM_TYPE_SINGLE &&
(currentRoomInfo.getRoomModeType() == RoomModeType.NORMAL_MODE || (currentRoomInfo.getRoomModeType() == RoomModeType.NORMAL_MODE ||
currentRoomInfo.getRoomModeType() == 2 || currentRoomInfo.getRoomModeType() == 2 ||
currentRoomInfo.getRoomModeType() == 4); currentRoomInfo.getRoomModeType() == 4);

View File

@@ -1,18 +1,12 @@
package com.yizhuan.erban.avroom.fragment; package com.yizhuan.erban.avroom.fragment;
import static com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol.Event.EVENT_ROOM_QUICKCHAT_CLICK;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.TextView;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.netease.nim.uikit.common.util.log.LogUtil; import com.netease.nim.uikit.common.util.log.LogUtil;
import com.netease.nim.uikit.support.glide.GlideApp; import com.netease.nim.uikit.support.glide.GlideApp;
import com.trello.rxlifecycle3.android.FragmentEvent; import com.trello.rxlifecycle3.android.FragmentEvent;
@@ -44,7 +38,6 @@ import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper;
import com.yizhuan.erban.ui.webview.DatingRuleWebViewActivity; import com.yizhuan.erban.ui.webview.DatingRuleWebViewActivity;
import com.yizhuan.erban.utils.UserUtils; import com.yizhuan.erban.utils.UserUtils;
import com.yizhuan.xchat_android_core.Constants; import com.yizhuan.xchat_android_core.Constants;
import com.yizhuan.xchat_android_core.DemoCache;
import com.yizhuan.xchat_android_core.UriProvider; import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.auth.AuthModel; import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.home.bean.BannerInfo; import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
@@ -68,14 +61,10 @@ import com.yizhuan.xchat_android_core.room.pk.model.PkModel;
import com.yizhuan.xchat_android_core.room.queuing_mic.bean.RespQueuingMicListInfo; import com.yizhuan.xchat_android_core.room.queuing_mic.bean.RespQueuingMicListInfo;
import com.yizhuan.xchat_android_core.room.queuing_mic.event.QueuingMicEmptyEvent; import com.yizhuan.xchat_android_core.room.queuing_mic.event.QueuingMicEmptyEvent;
import com.yizhuan.xchat_android_core.room.queuing_mic.event.QueuingMicNotEmptyEvent; import com.yizhuan.xchat_android_core.room.queuing_mic.event.QueuingMicNotEmptyEvent;
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil; import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
import com.yizhuan.xchat_android_core.user.UserModel; 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.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil; 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.UIUtils;
import com.yizhuan.xchat_android_library.utils.config.BasicConfig; import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
@@ -110,11 +99,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
private MicQueueDialog micQueueDialog; private MicQueueDialog micQueueDialog;
private PKMicQueueDialog pkMicQueueDialog; private PKMicQueueDialog pkMicQueueDialog;
/**
* 快捷发言
*/
private long lastSendTime;
public static HomePartyRoomFragment newInstance(boolean isRoomMin) { public static HomePartyRoomFragment newInstance(boolean isRoomMin) {
HomePartyRoomFragment roomFragment = new HomePartyRoomFragment(); HomePartyRoomFragment roomFragment = new HomePartyRoomFragment();
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
@@ -155,7 +139,7 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
myUid = AuthModel.get().getCurrentUid(); myUid = AuthModel.get().getCurrentUid();
gameBinding.setRoomInfo(AvRoomDataManager.get().mCurrentRoomInfo); gameBinding.setRoomInfo(AvRoomDataManager.get().mCurrentRoomInfo);
hideKtvRelaView(); hideKtvRelaView();
initSpeedyMessage(); initSpeedyMessage(gameBinding.flSpeedyMessage);
updateQueuingMicBtn(); updateQueuingMicBtn();
updatePkScoreBoard(); updatePkScoreBoard();
getMvpPresenter().getBannerList(); getMvpPresenter().getBannerList();
@@ -401,44 +385,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
setDragonView(); setDragonView();
} }
private void initSpeedyMessage() {
List<String> phrases = AvRoomDataManager.get().phrases;
if (ListUtils.isListEmpty(phrases) || !TimeUtils.isTomorrow(DemoCache.readSpeedyMessageGoneTime())) {
gameBinding.flSpeedyMessage.setVisibility(View.GONE);
return;
}
BaseQuickAdapter<String, BaseViewHolder> adapter = new BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_speedy_message) {
@Override
protected void convert(BaseViewHolder helper, String item) {
((TextView) helper.itemView).setText(item);
}
};
gameBinding.rvSpeedyMessage.setAdapter(adapter);
gameBinding.rvSpeedyMessage.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
adapter.setNewData(phrases);
adapter.setOnItemClickListener((adapter1, view, position) -> {
if (CurrentTimeUtils.getCurrentTime() - lastSendTime > 10000) {
sendMsg(phrases.get(position));
lastSendTime = CurrentTimeUtils.getCurrentTime();
StatisticManager.Instance().onEvent(EVENT_ROOM_QUICKCHAT_CLICK, "语音房_快捷发言");
} else {
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
if (roomInfo == null) {
return;
}
if (roomInfo.isCloseScreen()) {
toast("房间公屏已关闭");
return;
}
SingleToastUtil.showToast("你发送的太频繁啦,请稍后再试");
}
});
gameBinding.ivCloseSpeedyMessage.setOnClickListener(v -> {
gameBinding.flSpeedyMessage.setVisibility(View.GONE);
DemoCache.saveSpeedyMessageGoneTime(System.currentTimeMillis());
});
}
private void cleanDragonBar() { private void cleanDragonBar() {
LogUtil.e("cleanDragonBar"); LogUtil.e("cleanDragonBar");
@@ -623,10 +569,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
} }
} }
break; break;
case R.id.iv_treasure_box:
case R.id.iv_treasure_box_cp:
onClickBox();
break;
case R.id.iv_queuing_micro: case R.id.iv_queuing_micro:
gameBinding.bottomView.onClick(v); gameBinding.bottomView.onClick(v);
break; break;
@@ -649,20 +591,11 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
case R.id.stv_ktv_song: case R.id.stv_ktv_song:
KtvSongListActivity.start(mContext, false); KtvSongListActivity.start(mContext, false);
break; break;
case R.id.iv_first_charge_enter:
FirstChargeDialog.start(mContext);
break;
default: default:
break;
} }
} }
/**
* 房间许愿池
*/
public void onClickBox() {
GoldBoxHelper.handleBoxClick(mContext);
}
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
private void playDragon() { private void playDragon() {
List<FaceInfo> faceInfos = DynamicFaceModel.get().getFaceInfos(); List<FaceInfo> faceInfos = DynamicFaceModel.get().getFaceInfos();

View File

@@ -5,41 +5,27 @@ import android.os.Bundle
import android.view.View import android.view.View
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import com.orhanobut.logger.Logger
import com.yizhuan.erban.R import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener
import com.yizhuan.erban.avroom.adapter.SingleAnchorMicroViewAdapter import com.yizhuan.erban.avroom.adapter.SingleAnchorMicroViewAdapter
import com.yizhuan.erban.avroom.anotherroompk.RoomPkFinishDialog
import com.yizhuan.erban.avroom.anotherroompk.RoomPkFinishDialog.Companion.newInstance
import com.yizhuan.erban.avroom.anotherroompk.RoomPkForceFinishDialog
import com.yizhuan.erban.avroom.anotherroompk.RoomPkForceFinishDialog.Companion.newInstance
import com.yizhuan.erban.avroom.anotherroompk.RoomPkReceivedDialog
import com.yizhuan.erban.avroom.anotherroompk.RoomPkReceivedDialog.Companion.newInstance
import com.yizhuan.erban.avroom.dialog.PKScoreBoardDialog
import com.yizhuan.erban.avroom.dialog.RequestUpMicDialog import com.yizhuan.erban.avroom.dialog.RequestUpMicDialog
import com.yizhuan.erban.avroom.firstcharge.FirstChargePrizeDialog import com.yizhuan.erban.avroom.firstcharge.FirstChargePrizeDialog
import com.yizhuan.erban.avroom.presenter.SingleRoomPresenter import com.yizhuan.erban.avroom.presenter.SingleRoomPresenter
import com.yizhuan.erban.avroom.view.ISingleRoomView import com.yizhuan.erban.avroom.view.ISingleRoomView
import com.yizhuan.erban.databinding.FragmentSingleRoomBinding import com.yizhuan.erban.databinding.FragmentSingleRoomBinding
import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper
import com.yizhuan.erban.ui.utils.load
import com.yizhuan.erban.ui.webview.DialogWebViewActivity import com.yizhuan.erban.ui.webview.DialogWebViewActivity
import com.yizhuan.xchat_android_core.Constants import com.yizhuan.xchat_android_core.Constants
import com.yizhuan.xchat_android_core.UriProvider import com.yizhuan.xchat_android_core.UriProvider
import com.yizhuan.xchat_android_core.auth.AuthModel import com.yizhuan.xchat_android_core.auth.AuthModel
import com.yizhuan.xchat_android_core.bean.RoomQueueInfo
import com.yizhuan.xchat_android_core.home.bean.BannerInfo import com.yizhuan.xchat_android_core.home.bean.BannerInfo
import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment
import com.yizhuan.xchat_android_core.im.custom.bean.RequestUpmicAttachment import com.yizhuan.xchat_android_core.im.custom.bean.RequestUpmicAttachment
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPKAttachment
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
import com.yizhuan.xchat_android_core.manager.RoomEvent import com.yizhuan.xchat_android_core.manager.RoomEvent
import com.yizhuan.xchat_android_core.pay.event.FirstChargeEvent 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.giftvalue.helper.GiftValueFormat import com.yizhuan.xchat_android_core.room.giftvalue.helper.GiftValueFormat
import com.yizhuan.xchat_android_core.room.giftvalue.helper.GiftValueMrg import com.yizhuan.xchat_android_core.user.UserModel
import com.yizhuan.xchat_android_core.room.model.MicQueueModel
import com.yizhuan.xchat_android_core.room.pk.bean.RoomPkData
import com.yizhuan.xchat_android_core.room.pk.model.PkModel
import com.yizhuan.xchat_android_core.user.bean.UserInfo import com.yizhuan.xchat_android_core.user.bean.UserInfo
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter import com.yizhuan.xchat_android_library.base.factory.CreatePresenter
import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.Subscribe
@@ -53,7 +39,7 @@ import org.greenrobot.eventbus.ThreadMode
*/ */
@CreatePresenter(SingleRoomPresenter::class) @CreatePresenter(SingleRoomPresenter::class)
class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresenter?>(), class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresenter?>(),
View.OnClickListener, ISingleRoomView, OnMicroItemClickListener { ISingleRoomView, OnMicroItemClickListener {
companion object { companion object {
@JvmStatic @JvmStatic
@@ -86,6 +72,28 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
gameBinding.microView.bindAdapter(SingleAnchorMicroViewAdapter(context)) gameBinding.microView.bindAdapter(SingleAnchorMicroViewAdapter(context))
super.initiate() super.initiate()
mvpPresenter?.getBannerList() mvpPresenter?.getBannerList()
initSpeedyMessage(gameBinding.flSpeedyMessage)
UserModel.get().currentUserInfo
.compose(bindToLifecycle())
.subscribe { userInfo ->
gameBinding.ivFirstChargeEnter.isVisible = userInfo.isFirstCharge
}
GoldBoxHelper.isHideBox().subscribe(
{
if (it == false) {
gameBinding.ivTreasureBox.visibility = View.VISIBLE
gameBinding.ivTreasureBox.load(
GoldBoxHelper.getBoxIcon(),
defaultRes = R.drawable.icon_room_treasure_box
)
} else {
gameBinding.ivTreasureBox.visibility = View.GONE
}
}
) {
gameBinding.ivTreasureBox.visibility = View.GONE
}
} }
override fun onReceiveRoomEvent(roomEvent: RoomEvent?) { override fun onReceiveRoomEvent(roomEvent: RoomEvent?) {
@@ -155,12 +163,11 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
override fun updateView() { override fun updateView() {
super.updateView() super.updateView()
showSingleRoomGiftValue() showSingleRoomGiftValue()
gameBinding.microView.adapter.notifyDataSetChanged() gameBinding.microView.adapter?.notifyDataSetChanged()
} }
override fun onShowBanner(dialogInfos: List<BannerInfo>) { override fun onShowBanner(dialogInfos: List<BannerInfo>) {
initRoomAct(gameBinding.activityImg, dialogInfos) initRoomAct(gameBinding.activityImg, dialogInfos, 10f)
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
@@ -173,5 +180,4 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
).openDialog() ).openDialog()
} }
} }

View File

@@ -124,8 +124,6 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
} else if (datingItemDecoration != null) { } else if (datingItemDecoration != null) {
recyclerView.removeItemDecoration(datingItemDecoration); recyclerView.removeItemDecoration(datingItemDecoration);
} }
//个播房加了个padding,这里清除下
recyclerView.setPadding(0, 0, 0, 0);
adapter.bindToRecyclerView(recyclerView); adapter.bindToRecyclerView(recyclerView);
adapter.setOnMicroItemClickListener(onMicroItemClickListener); adapter.setOnMicroItemClickListener(onMicroItemClickListener);
} }
@@ -285,7 +283,8 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
if (roomQueueInfo == null || roomQueueInfo.mChatRoomMember == null) continue; if (roomQueueInfo == null || roomQueueInfo.mChatRoomMember == null) continue;
String halo = (String) NobleUtil.getResource(NobleResourceType.KEY_HALO, roomQueueInfo.mChatRoomMember); String halo = (String) NobleUtil.getResource(NobleResourceType.KEY_HALO, roomQueueInfo.mChatRoomMember);
String micCircle = roomQueueInfo.mChatRoomMember.getMicCircle(); String micCircle = roomQueueInfo.mChatRoomMember.getMicCircle();
if (TextUtils.isEmpty(micCircle)) { boolean isSingleAnchor = AvRoomDataManager.get().isSingleRoom() && pos == 0;
if (TextUtils.isEmpty(micCircle) && !isSingleAnchor) {
//光圈的起始位置应该是头像边界,终止位置是头饰边界,头像:头饰=3:4 //光圈的起始位置应该是头像边界,终止位置是头饰边界,头像:头饰=3:4
AnimFactory.getSpeakingAnimation(mContext, speakState.getWidth(), speakState.getHeight(), AnimFactory.getSpeakingAnimation(mContext, speakState.getWidth(), speakState.getHeight(),
NobleUtil.getColor(halo), speakState.getWidth() * 3 / 4) NobleUtil.getColor(halo), speakState.getWidth() * 3 / 4)
@@ -313,8 +312,7 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
} else { } else {
if (speakState.isAnimating()) continue; if (speakState.isAnimating()) continue;
try { try {
speakState.setLoops(1); SVGAParser.ParseCompletion parseCompletion = new SVGAParser.ParseCompletion() {
SVGAParser.Companion.shareParser().decodeFromURL(new URL(micCircle), new SVGAParser.ParseCompletion() {
@Override @Override
public void onComplete(@NonNull SVGAVideoEntity svgaVideoEntity) { public void onComplete(@NonNull SVGAVideoEntity svgaVideoEntity) {
SVGADrawable drawable = new SVGADrawable(svgaVideoEntity); SVGADrawable drawable = new SVGADrawable(svgaVideoEntity);
@@ -326,8 +324,14 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
public void onError() { public void onError() {
} }
}, null); };
if (isSingleAnchor) {
speakState.setLoops(-1);
SVGAParser.Companion.shareParser().decodeFromAssets("svga/single_headware.svga", parseCompletion, null);
} else {
speakState.setLoops(1);
SVGAParser.Companion.shareParser().decodeFromURL(new URL(micCircle), parseCompletion, null);
}
} catch (MalformedURLException e) { } catch (MalformedURLException e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@@ -189,23 +189,6 @@
</LinearLayout> </LinearLayout>
<com.coorchice.library.SuperTextView
android:id="@+id/stv_clock"
android:layout_width="50dp"
android:layout_height="@dimen/dp_14"
android:layout_marginTop="2dp"
android:gravity="center"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/white"
android:textSize="10sp"
android:visibility="gone"
app:corner="@dimen/dp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_nick"
app:solid="#33ffffff" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_parent_gift_value" android:id="@+id/cl_parent_gift_value"
android:layout_width="0dp" android:layout_width="0dp"

View File

@@ -4,29 +4,30 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clipChildren="false"
tools:background="@color/color_activity_blue_bg" tools:background="@color/color_activity_blue_bg"
> tools:layout_width="90dp">
<FrameLayout <FrameLayout
android:id="@+id/micro_layout" android:id="@+id/micro_layout"
android:layout_width="52dp" android:layout_width="53dp"
android:layout_height="52dp" android:layout_height="53dp"
app:layout_constraintBottom_toTopOf="@id/ll_nick"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent">
app:layout_constraintTop_toTopOf="parent">
<com.opensource.svgaplayer.SVGAImageView <com.opensource.svgaplayer.SVGAImageView
android:id="@+id/iv_halo" android:id="@+id/iv_halo"
android:layout_width="match_parent" android:layout_width="60dp"
android:layout_height="match_parent" android:layout_height="60dp"
android:layout_gravity="center" /> android:layout_gravity="center" />
<ImageView <ImageView
android:id="@+id/up_image" android:id="@+id/up_image"
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_margin="@dimen/dp_10"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_margin="@dimen/dp_10"
android:scaleType="fitXY" android:scaleType="fitXY"
android:src="@drawable/icon_room_single_up_micro" /> android:src="@drawable/icon_room_single_up_micro" />
@@ -34,8 +35,8 @@
android:id="@+id/lock_image" android:id="@+id/lock_image"
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_margin="@dimen/dp_10"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_margin="@dimen/dp_10"
android:scaleType="fitXY" android:scaleType="fitXY"
android:src="@drawable/icon_room_single_lock_micro" android:src="@drawable/icon_room_single_lock_micro"
android:visibility="invisible" android:visibility="invisible"
@@ -45,24 +46,16 @@
android:id="@+id/avatar" android:id="@+id/avatar"
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_margin="@dimen/dp_10"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_margin="@dimen/dp_10"
android:src="@drawable/default_avatar" android:src="@drawable/default_avatar"
android:visibility="gone" android:visibility="gone"
tools:visibility="visible" /> tools:visibility="visible" />
<ImageView
android:id="@+id/iv_head_wear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="2dp"
/>
<ImageView <ImageView
android:id="@+id/mute_image" android:id="@+id/mute_image"
android:layout_width="16dp" android:layout_width="12dp"
android:layout_height="16dp" android:layout_height="12dp"
android:layout_gravity="bottom|end" android:layout_gravity="bottom|end"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:layout_marginBottom="@dimen/dp_4" android:layout_marginBottom="@dimen/dp_4"
@@ -78,9 +71,9 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent">
app:layout_constraintTop_toBottomOf="@id/micro_layout">
<TextView <TextView
android:id="@+id/tv_number" android:id="@+id/tv_number"
@@ -100,30 +93,12 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:drawablePadding="3dp" android:drawablePadding="3dp"
android:ellipsize="end" android:ellipsize="end"
android:includeFontPadding="false"
android:gravity="center" android:gravity="center"
android:includeFontPadding="false"
android:maxLines="1" android:maxLines="1"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="10sp" android:textSize="10sp"
tools:text="狐仙嘎嘎" /> tools:text="狐仙嘎嘎" />
</LinearLayout> </LinearLayout>
<com.coorchice.library.SuperTextView
android:id="@+id/stv_clock"
android:layout_width="50dp"
android:layout_height="@dimen/dp_14"
android:layout_marginTop="2dp"
android:gravity="center"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/white"
android:textSize="10sp"
android:visibility="gone"
app:corner="@dimen/dp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_nick"
app:solid="#33ffffff" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -4,9 +4,10 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clipChildren="false"
android:visibility="visible" android:visibility="visible"
tools:layout_width="300dp" tools:background="@color/color_activity_blue_bg"
tools:background="@color/color_activity_blue_bg"> tools:layout_width="300dp">
<androidx.constraintlayout.widget.Guideline <androidx.constraintlayout.widget.Guideline
android:id="@+id/line1" android:id="@+id/line1"
@@ -15,78 +16,93 @@
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintGuide_percent="0.66" /> app:layout_constraintGuide_percent="0.66" />
<FrameLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/micro_layout" android:id="@+id/micro_layout"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/rl_nick"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:1"
app:layout_constraintWidth_percent="0.6"
app:layout_constraintEnd_toEndOf="@id/line1" app:layout_constraintEnd_toEndOf="@id/line1"
app:layout_constraintStart_toStartOf="@id/line1" app:layout_constraintStart_toStartOf="@id/line1"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintWidth_percent="0.6">
<com.opensource.svgaplayer.SVGAImageView <com.opensource.svgaplayer.SVGAImageView
android:id="@+id/iv_halo" android:id="@+id/iv_halo"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="0dp"
android:layout_gravity="center" /> app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="1.14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="1.14" />
<com.opensource.svgaplayer.SVGAImageView <com.opensource.svgaplayer.SVGAImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/svga_head_wear" android:id="@+id/svga_head_wear"
app:autoPlay="true" android:layout_width="0dp"
app:source="svga/single_headware.svga" android:layout_height="0dp"
app:loopCount="0"
android:visibility="gone" android:visibility="gone"
/> app:autoPlay="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:loopCount="0"
app:source="svga/single_headware.svga" />
<com.yizhuan.erban.common.widget.CircleImageView <com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/avatar" android:id="@+id/avatar"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="0dp"
android:layout_margin="@dimen/dp_20"
android:layout_gravity="center"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="0.76"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.76"
tools:src="@drawable/default_avatar" tools:src="@drawable/default_avatar"
tools:visibility="visible" /> tools:visibility="visible" />
<ImageView <ImageView
android:id="@+id/up_image" android:id="@+id/up_image"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="0dp"
android:layout_margin="@dimen/dp_20"
android:layout_gravity="center"
android:scaleType="fitXY"
android:src="@drawable/icon_room_up_micro_boss" android:src="@drawable/icon_room_up_micro_boss"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="0.76"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.76"
tools:visibility="gone" /> tools:visibility="gone" />
<ImageView <ImageView
android:id="@+id/lock_image" android:id="@+id/lock_image"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="0dp"
android:layout_margin="@dimen/dp_20"
android:layout_gravity="center"
android:scaleType="fitXY"
android:src="@drawable/icon_room_lock_micro_boss" android:src="@drawable/icon_room_lock_micro_boss"
android:visibility="invisible" android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="0.76"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.76"
tools:visibility="visible" /> tools:visibility="visible" />
<ImageView
android:id="@+id/iv_head_wear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
tools:visibility="gone" />
<com.yizhuan.erban.common.widget.CircleImageView <com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_bg_leave_mode" android:id="@+id/iv_bg_leave_mode"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="0dp"
android:layout_margin="@dimen/dp_20"
android:layout_gravity="center"
android:src="@drawable/bg_leave_mode" android:src="@drawable/bg_leave_mode"
android:visibility="gone" /> android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="0.76"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.76" />
<TextView <TextView
android:id="@+id/tv_label_leave_mode" android:id="@+id/tv_label_leave_mode"
@@ -97,30 +113,26 @@
android:text="离开" android:text="离开"
android:textColor="#E6FFFFFF" android:textColor="#E6FFFFFF"
android:textSize="16dp" android:textSize="16dp"
android:visibility="gone" /> android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView <ImageView
android:id="@+id/mute_image" android:id="@+id/mute_image"
android:layout_width="15dp" android:layout_width="15dp"
android:layout_height="15dp" android:layout_height="15dp"
android:layout_gravity="bottom|end" android:layout_marginEnd="35dp"
android:layout_marginEnd="30dp" android:layout_marginBottom="30dp"
android:layout_marginBottom="25dp"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:src="@drawable/icon_room_mute_micro" android:src="@drawable/icon_room_mute_micro"
android:visibility="invisible" android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible" /> tools:visibility="visible" />
<ImageView </androidx.constraintlayout.widget.ConstraintLayout>
android:id="@+id/tv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_10"
android:src="@drawable/ic_room_leave"
android:visibility="gone" />
</FrameLayout>
<TextView <TextView
android:id="@+id/tv_number" android:id="@+id/tv_number"
@@ -143,10 +155,9 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
app:layout_constraintBottom_toTopOf="@id/desc_layout"
app:layout_constraintEnd_toEndOf="@id/micro_layout" app:layout_constraintEnd_toEndOf="@id/micro_layout"
app:layout_constraintStart_toStartOf="@id/micro_layout" app:layout_constraintStart_toStartOf="@id/micro_layout">
app:layout_constraintTop_toBottomOf="@id/micro_layout"
app:layout_constraintBottom_toBottomOf="@id/micro_layout">
<LinearLayout <LinearLayout
android:id="@+id/ll_nick" android:id="@+id/ll_nick"
@@ -170,9 +181,9 @@
android:maxLines="1" android:maxLines="1"
android:singleLine="true" android:singleLine="true"
android:text="" android:text=""
android:textStyle="bold"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="14sp" android:textSize="14sp"
android:textStyle="bold"
tools:text="我是名字" /> tools:text="我是名字" />
</LinearLayout> </LinearLayout>
@@ -183,12 +194,11 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="@dimen/dp_10"
android:gravity="center" android:gravity="center"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/micro_layout" app:layout_constraintEnd_toEndOf="@id/micro_layout"
app:layout_constraintStart_toStartOf="@id/micro_layout" app:layout_constraintStart_toStartOf="@id/micro_layout">
app:layout_constraintTop_toBottomOf="@id/rl_nick">
<TextView <TextView
android:id="@+id/tv_room_type" android:id="@+id/tv_room_type"

View File

@@ -16,6 +16,13 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<com.yizhuan.erban.avroom.widget.MicroView
android:id="@+id/micro_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="110dp"
tools:background="@color/color_red" />
<LinearLayout <LinearLayout
android:id="@+id/contribute_list" android:id="@+id/contribute_list"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -42,28 +49,13 @@
</LinearLayout> </LinearLayout>
<com.yizhuan.erban.avroom.widget.MicroView
android:id="@+id/micro_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="75dp"
android:layout_marginEnd="10dp" />
<com.yizhuan.erban.avroom.widget.BottomView
android:id="@+id/bottom_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp" />
<TextView <TextView
android:id="@+id/tv_single_room_gift_value" android:id="@+id/tv_single_room_gift_value"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="24dp" android:layout_height="24dp"
android:layout_alignTop="@id/micro_view" android:layout_marginStart="10dp"
android:layout_marginStart="72dp" android:layout_alignTop="@id/contribute_list"
android:layout_marginTop="6dp" android:layout_toEndOf="@id/contribute_list"
android:background="@drawable/shape_bg_of_mic_charm_single_anchor" android:background="@drawable/shape_bg_of_mic_charm_single_anchor"
android:drawableEnd="@drawable/icon_gift_value" android:drawableEnd="@drawable/icon_gift_value"
android:drawablePadding="3dp" android:drawablePadding="3dp"
@@ -74,6 +66,40 @@
android:textColor="@color/white" android:textColor="@color/white"
android:visibility="gone" /> android:visibility="gone" />
<FrameLayout
android:id="@+id/fl_speedy_message"
android:layout_width="match_parent"
android:layout_height="22dp"
android:layout_above="@+id/bottom_view"
android:layout_marginStart="15dp"
android:layout_marginEnd="@dimen/dp_15"
android:layout_marginBottom="6dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_speedy_message"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginEnd="30dp"
android:clipToPadding="false"
android:scrollbars="none" />
<ImageView
android:id="@+id/iv_close_speedy_message"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="end|center_vertical"
android:scaleType="fitXY"
android:src="@mipmap/ic_speedymsg_close" />
</FrameLayout>
<com.yizhuan.erban.avroom.widget.BottomView
android:id="@+id/bottom_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp" />
<ImageView <ImageView
android:id="@+id/iv_first_charge_enter" android:id="@+id/iv_first_charge_enter"
android:layout_width="65dp" android:layout_width="65dp"
@@ -89,9 +115,9 @@
<ImageView <ImageView
android:id="@+id/iv_treasure_box" android:id="@+id/iv_treasure_box"
android:layout_width="45dp" android:layout_width="65dp"
android:layout_height="45dp" android:layout_height="65dp"
android:layout_above="@id/bottom_view" android:layout_above="@id/fl_speedy_message"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_marginEnd="15dp" android:layout_marginEnd="15dp"
android:layout_marginBottom="6dp" android:layout_marginBottom="6dp"
@@ -100,24 +126,24 @@
android:visibility="gone" android:visibility="gone"
tools:contentDescription="许愿池" /> tools:contentDescription="许愿池" />
<com.yizhuan.erban.avroom.widget.MessageView <com.yizhuan.erban.avroom.widget.MessageView
android:id="@+id/message_view" android:id="@+id/message_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="80dp" android:layout_height="match_parent"
android:layout_above="@id/bottom_view" android:layout_above="@+id/fl_speedy_message"
android:layout_below="@id/micro_view"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginTop="@dimen/dp_5" android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="90dp" android:layout_marginEnd="90dp"
android:layout_marginBottom="@dimen/dp_10" /> android:layout_marginBottom="@dimen/dp_10" />
<com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView <com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView
android:id="@+id/activity_img" android:id="@+id/activity_img"
android:layout_width="45dp" android:layout_width="65dp"
android:layout_height="45dp" android:layout_height="75dp"
android:layout_above="@id/bottom_view" android:layout_below="@id/micro_view"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_marginTop="20dp"
android:layout_marginEnd="15dp" android:layout_marginEnd="15dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
app:rollviewpager_hint_gravity="center" /> app:rollviewpager_hint_gravity="center" />
@@ -167,6 +193,7 @@
android:id="@+id/vs_music_player" android:id="@+id/vs_music_player"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="75dp"
android:layout="@layout/avroom_music_player_layout" /> android:layout="@layout/avroom_music_player_layout" />
</RelativeLayout> </RelativeLayout>

View File

@@ -23,5 +23,5 @@ only_arm64=false
channel_file=channel.txt channel_file=channel.txt
version_name=4.1.0 version_name=4.2.0
version_code=410 version_code=420