[BugFix]优化BaseDialog判空,周星榜ui调整,夺宝精灵闪退修复

This commit is contained in:
wushaocheng
2023-07-24 16:36:56 +08:00
parent 144fa832f1
commit e014e6a6b2
63 changed files with 486 additions and 539 deletions

View File

@@ -135,7 +135,7 @@ import com.yizhuan.xchat_android_core.room.event.RoomTaskTipsEvent;
import com.yizhuan.xchat_android_core.room.pk.event.PKStateEvent;
import com.yizhuan.xchat_android_core.super_admin.util.SAdminOptUtil;
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfo;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfoBean;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.user.bean.FirstChargeInfo;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
@@ -1265,7 +1265,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
case CUSTOM_MSG_FAIRY://夺宝精灵
if (baseProtocol.getSecond() == CUSTOM_MSG_SUB_DRAW_GIFT_L5) {
FairyMsgAttachment attachment = new FairyMsgAttachment(CUSTOM_MSG_FAIRY, CUSTOM_MSG_SUB_DRAW_GIFT_L5);
attachment.setFairyMsgInfo(JSON.parseObject(String.valueOf(baseProtocol.getData()), FairyMsgInfo.class));
attachment.setFairyMsgInfo(JSON.parseObject(String.valueOf(baseProtocol.getData()), FairyMsgInfoBean.class));
ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), attachment);
IMNetEaseManager.get().noticeRoomEvent(message, RoomEvent.FAIRY_DRAW_GIFT_L5);
}

View File

@@ -30,71 +30,71 @@ class RoomPkFinishDialog : BaseDialog<DialogRoomPkFinishBinding>() {
@SuppressLint("CheckResult", "SetTextI18n")
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.tvTitleRed.text = roomPkBean.cTitle.subAndReplaceDot(7)
binding.tvValueRed.text = "${roomPkBean.cAmount}"
binding.ivRedWin.isVisible = roomPkBean.cUid == roomPkBean.winUid && roomPkBean.winUid != 0L
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.tvTitleRed?.text = roomPkBean.cTitle.subAndReplaceDot(7)
binding?.tvValueRed?.text = "${roomPkBean.cAmount}"
binding?.ivRedWin?.isVisible = roomPkBean.cUid == roomPkBean.winUid && roomPkBean.winUid != 0L
ImageLoadUtils.loadImage(
context,
roomPkBean.cAvatar,
binding.ivAvatarRed,
binding?.ivAvatarRed,
R.drawable.default_avatar
)
binding.tvTitleBlue.text = roomPkBean.aTitle.subAndReplaceDot(7)
binding.tvValueBlue.text = "${roomPkBean.aAmount}"
binding.ivBlueWin.isVisible =
binding?.tvTitleBlue?.text = roomPkBean.aTitle.subAndReplaceDot(7)
binding?.tvValueBlue?.text = "${roomPkBean.aAmount}"
binding?.ivBlueWin?.isVisible =
roomPkBean.cUid != roomPkBean.winUid && roomPkBean.winUid != 0L
ImageLoadUtils.loadImage(
context,
roomPkBean.aAvatar,
binding.ivAvatarBlue,
binding?.ivAvatarBlue,
R.drawable.default_avatar
)
roomPkBean.csRank.getOrNull(0)?.let {
binding.tvNickContribute.text = it.nick.subAndReplaceDot(7)
binding.tvValueContribute.text = "神豪值:${it.amount}"
binding?.tvNickContribute?.text = it.nick.subAndReplaceDot(7)
binding?.tvValueContribute?.text = "神豪值:${it.amount}"
ImageLoadUtils.loadImage(
context,
it.avatar,
binding.ivAvatarContribute,
binding?.ivAvatarContribute,
R.drawable.default_avatar
)
}
roomPkBean.crRank.getOrNull(0)?.let {
binding.tvNickCharm.text = it.nick.subAndReplaceDot(7)
binding.tvValueCharm.text = "魅力值:${it.amount}"
binding?.tvNickCharm?.text = it.nick.subAndReplaceDot(7)
binding?.tvValueCharm?.text = "魅力值:${it.amount}"
ImageLoadUtils.loadImage(
context,
it.avatar,
binding.ivAvatarCharm,
binding?.ivAvatarCharm,
R.drawable.default_avatar
)
}
when (roomPkBean.winUid) {
0L -> {
binding.viewBg.setBackgroundResource(R.drawable.bg_719cea_radius_10)
binding.clRoot.setBackgroundResource(R.drawable.bg_room_pk_finish_deuce)
binding.viewContribute.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_deuce)
binding.viewCharm.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_deuce)
binding.ivClose.setImageResource(R.drawable.ic_room_pk_finish_close_deuce)
binding?.viewBg?.setBackgroundResource(R.drawable.bg_719cea_radius_10)
binding?.clRoot?.setBackgroundResource(R.drawable.bg_room_pk_finish_deuce)
binding?.viewContribute?.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_deuce)
binding?.viewCharm?.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_deuce)
binding?.ivClose?.setImageResource(R.drawable.ic_room_pk_finish_close_deuce)
}
roomPkBean.cUid -> {
binding.viewBg.setBackgroundResource(R.drawable.bg_edbf89_radius_10)
binding.clRoot.setBackgroundResource(R.drawable.bg_room_pk_finish_win)
binding.viewContribute.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_win)
binding.viewCharm.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_win)
binding.ivClose.setImageResource(R.drawable.ic_room_pk_finish_close_win)
binding?.viewBg?.setBackgroundResource(R.drawable.bg_edbf89_radius_10)
binding?.clRoot?.setBackgroundResource(R.drawable.bg_room_pk_finish_win)
binding?.viewContribute?.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_win)
binding?.viewCharm?.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_win)
binding?.ivClose?.setImageResource(R.drawable.ic_room_pk_finish_close_win)
}
else -> {
binding.viewBg.setBackgroundResource(R.drawable.bg_bfabf6_radius_10)
binding.clRoot.setBackgroundResource(R.drawable.bg_room_pk_finish_failed)
binding.viewContribute.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_failed)
binding.viewCharm.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_failed)
binding.ivClose.setImageResource(R.drawable.ic_room_pk_finish_close_failed)
binding?.viewBg?.setBackgroundResource(R.drawable.bg_bfabf6_radius_10)
binding?.clRoot?.setBackgroundResource(R.drawable.bg_room_pk_finish_failed)
binding?.viewContribute?.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_failed)
binding?.viewCharm?.setBackgroundResource(R.drawable.bg_room_pk_finish_rank_failed)
binding?.ivClose?.setImageResource(R.drawable.ic_room_pk_finish_close_failed)
}
}

View File

@@ -29,23 +29,23 @@ class RoomPkForceFinishDialog : BaseDialog<DialogRoomPkForceFinishBinding>() {
@SuppressLint("CheckResult", "SetTextI18n")
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.tvTitleRed.text = roomPkBean.cTitle.subAndReplaceDot(7)
binding.tvValueRed.text = "${roomPkBean.cAmount}"
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.tvTitleRed?.text = roomPkBean.cTitle.subAndReplaceDot(7)
binding?.tvValueRed?.text = "${roomPkBean.cAmount}"
ImageLoadUtils.loadImage(
context,
roomPkBean.cAvatar,
binding.ivAvatarRed,
binding?.ivAvatarRed,
R.drawable.default_avatar
)
binding.tvTitleBlue.text = roomPkBean.aTitle.subAndReplaceDot(7)
binding.tvValueBlue.text = "${roomPkBean.aAmount}"
binding?.tvTitleBlue?.text = roomPkBean.aTitle.subAndReplaceDot(7)
binding?.tvValueBlue?.text = "${roomPkBean.aAmount}"
ImageLoadUtils.loadImage(
context,
roomPkBean.aAvatar,
binding.ivAvatarBlue,
binding?.ivAvatarBlue,
R.drawable.default_avatar
)

View File

@@ -36,26 +36,26 @@ class RoomPkReceivedDialog : BaseDialog<DialogRoomPkReceivedBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding.tvNick.text = pkBean.inviteRoomTitle.subAndReplaceDot(7)
binding.tvTime.text = "${pkBean.pkDuration}分鐘"
binding?.tvNick?.text = pkBean.inviteRoomTitle.subAndReplaceDot(7)
binding?.tvTime?.text = "${pkBean.pkDuration}分鐘"
pkBean.pkDesc.ifNotNullOrEmpty {
binding.tvDescTitle.isVisible = true
binding.tvDesc.isVisible = true
binding.tvDesc.text = it
binding?.tvDescTitle?.isVisible = true
binding?.tvDesc?.isVisible = true
binding?.tvDesc?.text = it
}
disposable = Observable.intervalRange(0, 10, 0, 1, TimeUnit.SECONDS)
.compose(bindToLifecycle())
.observeOn(AndroidSchedulers.mainThread())
.doOnComplete { dismissAllowingStateLoss() }
.subscribe {
binding.tvCloseTime.text = "${10 - it}"
binding?.tvCloseTime?.text = "${10 - it}"
}
binding.tvReceived.setOnClickListener {
binding?.tvReceived?.setOnClickListener {
commit(true)
}
binding.tvRefuse.setOnClickListener {
binding?.tvRefuse?.setOnClickListener {
commit(false)
}
}

View File

@@ -14,6 +14,6 @@ class RoomPkRuleDialog : BaseDialog<DialogRoomPkRuleBinding>() {
}
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
}
}

View File

@@ -33,10 +33,10 @@ class CreateGameRoomDialog : BaseDialog<DialogCreateGameRoomBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding.rvGame.itemAnimator = null
binding?.rvGame?.itemAnimator = null
rvDelegate = RVDelegate.Builder<GameInfo>()
.setAdapter(gameAdapter)
.setRecyclerView(binding.rvGame)
.setRecyclerView(binding?.rvGame)
.setLayoutManager(GridLayoutManager(context, 2))
.build()
@@ -48,7 +48,7 @@ class CreateGameRoomDialog : BaseDialog<DialogCreateGameRoomBinding>() {
)
}
binding.ivClose.setOnClickListener {
binding?.ivClose?.setOnClickListener {
dismissAllowingStateLoss()
}

View File

@@ -33,14 +33,14 @@ class CreateRoomDialog : BaseDialog<DialogCreateRoomBinding>() {
@SuppressLint("CheckResult")
override fun init() {
if(isHomeGame){
binding.tvPlayType.isVisible = false
binding.rgType.isVisible = false
binding.rvGame.isVisible = true
binding?.tvPlayType?.isVisible = false
binding?.rgType?.isVisible = false
binding?.rvGame?.isVisible = true
}
binding.rvGame.itemAnimator = null
binding?.rvGame?.itemAnimator = null
rvDelegate = RVDelegate.Builder<GameInfo>()
.setAdapter(gameAdapter)
.setRecyclerView(binding.rvGame)
.setRecyclerView(binding?.rvGame)
.setLayoutManager(LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false))
.build()
@@ -55,22 +55,22 @@ class CreateRoomDialog : BaseDialog<DialogCreateRoomBinding>() {
checkCreateEnable()
}
binding.rbGameRoom.setOnCheckedChangeListener { _, isChecked ->
binding?.rbGameRoom?.setOnCheckedChangeListener { _, isChecked ->
checkCreateEnable()
if (isChecked) {
binding.rvGame.isVisible = true
binding?.rvGame?.isVisible = true
}
}
binding.rbPartyRoom.setOnCheckedChangeListener { _, isChecked ->
binding?.rbPartyRoom?.setOnCheckedChangeListener { _, isChecked ->
checkCreateEnable()
if (isChecked) {
binding.rvGame.isInvisible = true
binding?.rvGame?.isInvisible = true
}
}
binding.tvCreate.setOnClickListener {
binding?.tvCreate?.setOnClickListener {
dismissAllowingStateLoss()
if (binding.rbPartyRoom.isChecked) {
if (binding?.rbPartyRoom?.isChecked == true) {
OpenRoomHelper.openHomePartyRoom(requireActivity() as BaseActivity)
} else {
if (selectIndex != -1) {
@@ -84,7 +84,7 @@ class CreateRoomDialog : BaseDialog<DialogCreateRoomBinding>() {
}
}
binding.ivClose.setOnClickListener {
binding?.ivClose?.setOnClickListener {
dismissAllowingStateLoss()
}
@@ -105,10 +105,10 @@ class CreateRoomDialog : BaseDialog<DialogCreateRoomBinding>() {
private fun checkCreateEnable() {
if(isHomeGame){
binding.tvCreate.isEnabled = selectIndex != -1
binding?.tvCreate?.isEnabled = selectIndex != -1
}else {
binding.tvCreate.isEnabled = binding.rbPartyRoom.isChecked ||
(binding.rbGameRoom.isChecked && selectIndex != -1)
binding?.tvCreate?.isEnabled = binding?.rbPartyRoom?.isChecked == true ||
(binding?.rbGameRoom?.isChecked == true && selectIndex != -1)
}
}
}

View File

@@ -9,11 +9,11 @@ class NewUserGiftDialog(val giftInfo: GiftInfo) :
BaseDialog<DialogNewUserGiftBinding>() {
override fun init() {
binding.ivClose.setOnClickListener {
binding?.ivClose?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.ivGift.load(giftInfo.giftUrl)
binding.tvGiftName.text = "${giftInfo.giftName}*${giftInfo.count}"
binding?.ivGift?.load(giftInfo.giftUrl)
binding?.tvGiftName?.text = "${giftInfo.giftName}*${giftInfo.count}"
}
}

View File

@@ -44,31 +44,31 @@ class SendBroadcastDialog : BaseDialog<DialogSendBroadcastBinding>() {
@SuppressLint("CheckResult", "SetTextI18n")
override fun init() {
binding.ivClose.setOnClickListener {
binding?.ivClose?.setOnClickListener {
dismissAllowingStateLoss()
}
adapter = SendBroadcastAdapter()
rvDelegate = RVDelegate.Builder<String>()
.setAdapter(adapter)
.setRecyclerView(binding.rvRecommend)
.setRecyclerView(binding?.rvRecommend)
.setLayoutManager(LinearLayoutManager(context))
.build()
adapter.setOnItemClickListener { _, _, position ->
binding.editContent.setText(adapter.getItem(position))
binding?.editContent?.setText(adapter.getItem(position))
}
binding.editContent.addTextChangedListener(object : TextWatcherWrapper() {
binding?.editContent?.addTextChangedListener(object : TextWatcherWrapper() {
override fun afterTextChanged(editable: Editable?) {
val contentLength = editable?.length ?: 0
binding.tvContentNumLimit.text =
binding?.tvContentNumLimit?.text =
"${contentLength}/${broadcastInfo?.maxWords ?: 20}"
binding.tvSend.isEnabled = contentLength != 0
binding?.tvSend?.isEnabled = contentLength != 0
}
})
binding.tvSend.setOnClickListener {
binding?.tvSend?.setOnClickListener {
if (CommonUtils.isFastDoubleClick(1000)) return@setOnClickListener
sendBroadcast()
}
@@ -90,13 +90,13 @@ class SendBroadcastDialog : BaseDialog<DialogSendBroadcastBinding>() {
private fun initData(info: BroadcastInfo) {
broadcastInfo = info
rvDelegate.setNewData(info.recommends)
binding.tvAvailableCountNum.text = "${info.availableTimes}/${info.total}"
binding.editContent.hint = "输入内容不能少于${info.minWords}个字,请文明发言哦~"
binding.tvContentNumLimit.text = "0/${info.maxWords}"
binding?.tvAvailableCountNum?.text = "${info.availableTimes}/${info.total}"
binding?.editContent?.hint = "输入内容不能少于${info.minWords}个字,请文明发言哦~"
binding?.tvContentNumLimit?.text = "0/${info.maxWords}"
if (info.seconds > 0) {
beginIntervalTime(info)
} else {
binding.tvSendHint.text = "发布后,${info.minutes}分钟内不可再发布广播"
binding?.tvSendHint?.text = "发布后,${info.minutes}分钟内不可再发布广播"
}
}
@@ -107,10 +107,10 @@ class SendBroadcastDialog : BaseDialog<DialogSendBroadcastBinding>() {
.observeOn(AndroidSchedulers.mainThread())
.compose(bindToLifecycle())
.doOnComplete {
binding.tvSendHint.text = "发布后,${info.minutes}分钟内不可再发布广播"
binding?.tvSendHint?.text = "发布后,${info.minutes}分钟内不可再发布广播"
}
.subscribe {
binding.tvSendHint.text = SpannableBuilder()
binding?.tvSendHint?.text = SpannableBuilder()
.append(
"${info.seconds - it}",
ForegroundColorSpan(Color.parseColor("#FFFDA615"))
@@ -127,7 +127,7 @@ class SendBroadcastDialog : BaseDialog<DialogSendBroadcastBinding>() {
return
}
broadcastInfo?.let {
val msg = binding.editContent.text
val msg = binding?.editContent?.text
if (msg.isNullOrEmpty() || msg.length < it.minWords) {
"输入内容不能少于${it.minWords}个字!".toast()
return@let

View File

@@ -9,7 +9,7 @@ class SingleRoomTipDialog :
BaseDialog<DialogSingleRoomTipBinding>() {
@SuppressLint("ClickableViewAccessibility")
override fun init() {
binding.root.setOnClickListener {
binding?.root?.setOnClickListener {
dismissAllowingStateLoss()
}
dialog?.window?.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL)

View File

@@ -42,15 +42,15 @@ class RedPackageGoRoomDialog : BaseDialog<DialogRedPackageGoRoomBinding>() {
override fun init() {
AnimationUtils.loadAnimation(context, R.anim.anim_all_red_package).apply {
binding.clRed.animation = this
binding?.clRed?.animation = this
start()
}
AnimationUtils.loadAnimation(context, R.anim.anim_all_red_package_in_btn).let {
binding.ivGoRoom.animation = it
binding?.ivGoRoom?.animation = it
it.start()
}
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.ivGoRoom.setOnClickListener {
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivGoRoom?.setOnClickListener {
val jump = {
AVRoomActivity.start(context, redPackageNotifyInfo.roomUid,
AVRoomActivity.FROM_TYPE_ALL_RED, redPackageNotifyInfo.sendUserNick, redPackageNotifyInfo)
@@ -69,10 +69,10 @@ class RedPackageGoRoomDialog : BaseDialog<DialogRedPackageGoRoomBinding>() {
}
redPackageNotifyInfo.let {
ImageLoadUtils.loadAvatar(context, it.sendUserAvatar, binding.ivAvatar)
binding.tvContent.text = it.redEnvelopeMessage
binding.tvNickname.text = it.sendUserNick.subAndReplaceDot()
binding.tvRoomName.text = it.roomTitle.subAndReplaceDot()
ImageLoadUtils.loadAvatar(context, it.sendUserAvatar, binding?.ivAvatar)
binding?.tvContent?.text = it.redEnvelopeMessage
binding?.tvNickname?.text = it.sendUserNick.subAndReplaceDot()
binding?.tvRoomName?.text = it.roomTitle.subAndReplaceDot()
}
// StatUtil.onEvent("gethongbao", ResUtil.getString(R.string.avroom_redpackage_redpackagegoroomdialog_03))
}

View File

@@ -62,15 +62,15 @@ class RedPackageOpenDialog : BaseDialog<DialogRedPackageOpenBinding>() {
override fun init() {
dialog?.setCanceledOnTouchOutside(false)
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.ivOpen.setOnClickListener {
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivOpen?.setOnClickListener {
startRedPacketAnim(it)
it.isEnabled = false
}
redPackageNotifyInfo.let {
ImageLoadUtils.loadAvatar(context, it.sendUserAvatar, binding.ivAvatar)
binding.tvContent.text = it.redEnvelopeMessage
binding.tvNickname.text = it.sendUserNick
ImageLoadUtils.loadAvatar(context, it.sendUserAvatar, binding?.ivAvatar)
binding?.tvContent?.text = it.redEnvelopeMessage
binding?.tvNickname?.text = it.sendUserNick
}
// StatUtil.onEvent("openhongbao", ResUtil.getString(R.string.avroom_redpackage_redpackageopendialog_01))
}
@@ -85,7 +85,7 @@ class RedPackageOpenDialog : BaseDialog<DialogRedPackageOpenBinding>() {
}
}
, {
binding.ivOpen.isEnabled = true
binding?.ivOpen?.isEnabled = true
mObjectAnimator?.cancel()
SingleToastUtil.showToast(it.message)
})
@@ -117,32 +117,32 @@ class RedPackageOpenDialog : BaseDialog<DialogRedPackageOpenBinding>() {
if (isOpened) return
redPackageInfo?.let { packageInfo ->
isOpened = true
binding.clOpened.visibility = View.VISIBLE
binding.clRed.visibility = View.GONE
binding.tvNicknameOpened.text = redPackageNotifyInfo.sendUserNick
ImageLoadUtils.loadAvatar(context, redPackageNotifyInfo.sendUserAvatar, binding.ivAvatarOpened)
binding?.clOpened?.visibility = View.VISIBLE
binding?.clRed?.visibility = View.GONE
binding?.tvNicknameOpened?.text = redPackageNotifyInfo.sendUserNick
ImageLoadUtils.loadAvatar(context, redPackageNotifyInfo.sendUserAvatar, binding?.ivAvatarOpened)
packageInfo.redEnvelopeVO?.apply {
binding.tvContentOpened.text = message
binding?.tvContentOpened?.text = message
when (packageInfo.redEnvelopeState) {
SUCCESS -> {
packageInfo.redEnvelopeItemVOs?.firstOrNull { item -> item.userVO.uid == UserUtils.getUserUid() }?.let {
it.redEnvelopeGiftItemVOs?.apply {
if (!isEmpty()) {
val adapter = RedPackageGiftAdapter(R.layout.item_red_package_gift_top)
binding.rvGift.visibility = View.VISIBLE
binding.tvDiamondNum.visibility = View.GONE
binding.rvGift.layoutManager = LinearLayoutManager(context, RecyclerView.HORIZONTAL, false)
binding.rvGift.adapter = adapter
binding?.rvGift?.visibility = View.VISIBLE
binding?.tvDiamondNum?.visibility = View.GONE
binding?.rvGift?.layoutManager = LinearLayoutManager(context, RecyclerView.HORIZONTAL, false)
binding?.rvGift?.adapter = adapter
adapter.setNewData(this)
binding.tvTips.setTextColor(Color.WHITE)
binding.tvTips.text = MessageView.SpannableBuilder(binding.tvTips)
binding?.tvTips?.setTextColor(Color.WHITE)
binding?.tvTips?.text = MessageView.SpannableBuilder(binding?.tvTips)
.append(ResUtil.getString(R.string.avroom_redpackage_redpackageopendialog_03))
.append(it.amount, ForegroundColorSpan(Color.parseColor("#FDCD00")))
.append(ResUtil.getString(R.string.avroom_redpackage_redpackageopendialog_04))
.build()
}
}
binding.tvDiamondNum.text = it.amount.substringBefore(".")
binding?.tvDiamondNum?.text = it.amount.substringBefore(".")
}
if (!AvRoomDataManager.get().isRoomFans){
AvRoomDataManager.get().roomUid.let {
@@ -155,20 +155,20 @@ class RedPackageOpenDialog : BaseDialog<DialogRedPackageOpenBinding>() {
}
}
TIME_OUT, REMAIN_ZERO, TIME_OUT_BACK -> {
binding.clOpened.setBackgroundResource(R.drawable.room_red_package_get_bg)
binding.tvDiamondNum.visibility = View.GONE
binding.tvTips.visibility = View.GONE
binding.tvNoGet.visibility = View.VISIBLE
binding?.clOpened?.setBackgroundResource(R.drawable.room_red_package_get_bg)
binding?.tvDiamondNum?.visibility = View.GONE
binding?.tvTips?.visibility = View.GONE
binding?.tvNoGet?.visibility = View.VISIBLE
}
}
binding.tvRedNum.text = "已領取${pickNum}/${totalNum}"
binding?.tvRedNum?.text = "已領取${pickNum}/${totalNum}"
if (type == ALL_GIFT || type == ALL_DIAMOND) {
DemoCache.saveRedPackage(id)
}
}
val adapter = RedPackageOpenAdapter()
binding.rvUsers.adapter = adapter
binding.rvUsers.layoutManager = LinearLayoutManager(context)
binding?.rvUsers?.adapter = adapter
binding?.rvUsers?.layoutManager = LinearLayoutManager(context)
adapter.setNewData(packageInfo.redEnvelopeItemVOs)
PayModel.get().getWalletInfo(AuthModel.get().currentUid).subscribe()
}

View File

@@ -59,7 +59,7 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
EventBus.getDefault().register(this)
PayModel.get().currentWalletInfo?.let {
binding.tvBalanceNum.text = it.diamondNum.toInt().toString()
binding?.tvBalanceNum?.text = it.diamondNum.toInt().toString()
}
if (InitialModel.get().cacheInitInfo == null) {
InitialModel.get().init(true)
@@ -74,12 +74,12 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
*/
fun changeToNotAll() {
isAll = false
binding.tvAllRed.alpha = 0.5f
binding.tvRoomRed.alpha = 1f
binding.indicatorAllRed.visibility = View.GONE
binding.indicatorRoomRed.visibility = View.VISIBLE
binding.tvGoldNumHint.text = "紅包總金額不低於${initInfo.redEnvelopeConfig.roomRedEnvelopeMinAmount}鉆石且必須為10的倍數"
binding.editRedNum.hint = "${initInfo.redEnvelopeConfig.roomRedEnvelopeMinNum}-${initInfo.redEnvelopeConfig.roomRedEnvelopeMaxNum}"
binding?.tvAllRed?.alpha = 0.5f
binding?.tvRoomRed?.alpha = 1f
binding?.indicatorAllRed?.visibility = View.GONE
binding?.indicatorRoomRed?.visibility = View.VISIBLE
binding?.tvGoldNumHint?.text = "紅包總金額不低於${initInfo.redEnvelopeConfig.roomRedEnvelopeMinAmount}鉆石且必須為10的倍數"
binding?.editRedNum?.hint = "${initInfo.redEnvelopeConfig.roomRedEnvelopeMinNum}-${initInfo.redEnvelopeConfig.roomRedEnvelopeMaxNum}"
}
/**
@@ -87,39 +87,39 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
*/
fun changeToAll() {
isAll = true
binding.tvAllRed.alpha = 1f
binding.tvRoomRed.alpha = 0.5f
binding.indicatorAllRed.visibility = View.VISIBLE
binding.indicatorRoomRed.visibility = View.GONE
binding.tvGoldNumHint.text = "紅包總金額不低於${initInfo.redEnvelopeConfig.serverRedEnvelopeMinAmount}鉆石且必須為100的倍數"
binding.editRedNum.hint = "${initInfo.redEnvelopeConfig.serverRedEnvelopeMinNum}-${initInfo.redEnvelopeConfig.serverRedEnvelopeMaxNum}"
binding?.tvAllRed?.alpha = 1f
binding?.tvRoomRed?.alpha = 0.5f
binding?.indicatorAllRed?.visibility = View.VISIBLE
binding?.indicatorRoomRed?.visibility = View.GONE
binding?.tvGoldNumHint?.text = "紅包總金額不低於${initInfo.redEnvelopeConfig.serverRedEnvelopeMinAmount}鉆石且必須為100的倍數"
binding?.editRedNum?.hint = "${initInfo.redEnvelopeConfig.serverRedEnvelopeMinNum}-${initInfo.redEnvelopeConfig.serverRedEnvelopeMaxNum}"
}
when (initInfo.redEnvelopedPosition) {
2 -> changeToAll()
else -> changeToNotAll()
}
binding.tvCharge.paint.flags = Paint.UNDERLINE_TEXT_FLAG
binding.tvCharge.paint.isAntiAlias = true
binding.tvChangeType.paint.flags = Paint.UNDERLINE_TEXT_FLAG
binding.tvChangeType.paint.isAntiAlias = true
binding.tvChangeType.setOnClickListener {
binding?.tvCharge?.paint?.flags = Paint.UNDERLINE_TEXT_FLAG
binding?.tvCharge?.paint?.isAntiAlias = true
binding?.tvChangeType?.paint?.flags = Paint.UNDERLINE_TEXT_FLAG
binding?.tvChangeType?.paint?.isAntiAlias = true
binding?.tvChangeType?.setOnClickListener {
if (isGift) {
isGift = false
binding.tvRedTypeHint.text = "當前為手氣紅包,"
binding.tvChangeType.text = "改為禮物紅包"
binding?.tvRedTypeHint?.text = "當前為手氣紅包,"
binding?.tvChangeType?.text = "改為禮物紅包"
} else {
isGift = true
binding.tvRedTypeHint.text = "當前為禮物紅包,"
binding.tvChangeType.text = "改為手氣紅包"
binding?.tvRedTypeHint?.text = "當前為禮物紅包,"
binding?.tvChangeType?.text = "改為手氣紅包"
}
}
//默認就已經是手氣紅包,如果後臺配置為了禮物紅包就在這裏改下
if (initInfo.redEnvelopeType == 2 && !isGift) {
binding.tvChangeType.callOnClick()
binding?.tvChangeType?.callOnClick()
}
binding.tvCharge.setOnClickListener {
binding?.tvCharge?.setOnClickListener {
if (!CommonUtils.isFastDoubleClick(800)) {
if (AppMetaDataUtil.getChannelID() == Constants.GOOGLE) {
ChargeActivity.start(context)
@@ -133,9 +133,9 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
}
}
}
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.ivHelp.setOnClickListener { DialogWebViewActivity.start(context, UriProvider.getRedPacketRule()) }
binding.ivSend.setOnClickListener {
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivHelp?.setOnClickListener { DialogWebViewActivity.start(context, UriProvider.getRedPacketRule()) }
binding?.ivSend?.setOnClickListener {
UserModel.get().cacheLoginUserInfo?.let {
if (!it.isBindPaymentPwd) {
ModifyPwdActivity.start(context, ModifyPwdActivity.PAY_PWD)
@@ -148,12 +148,12 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
val maxGold = if (isAll) initInfo.redEnvelopeConfig.serverRedEnvelopeMaxAmount else initInfo.redEnvelopeConfig.roomRedEnvelopeMaxAmount
val rate = if (initInfo.redEnvelopeConfig.exchangeDiamondsRate == 0.0) 0.68 else initInfo.redEnvelopeConfig.exchangeDiamondsRate
val redNum = binding.editRedNum.text.toString().toIntOrDef()
val redNum = binding?.editRedNum?.text.toString().toIntOrDef()
if (redNum < minNum || redNum > maxNum) {
SingleToastUtil.showToast("紅包數量不能小於${minNum}或大於${maxNum}!")
return@setOnClickListener
}
val goldNum = binding.editGoldNum.text.toString().toIntOrDef()
val goldNum = binding?.editGoldNum?.text.toString().toIntOrDef()
if (isAll) {
if (goldNum % 100 != 0) {
@@ -179,22 +179,22 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
SingleToastUtil.showToast("單個紅包金額過低")
return@setOnClickListener
}
GiveGoldPassWordFragment.newInstance(childFragmentManager, binding.editGoldNum.text.toString()).apply {
GiveGoldPassWordFragment.newInstance(childFragmentManager, binding?.editGoldNum?.text.toString()).apply {
setListener(this@RedPackageSendDialog)
passWordFragment = this
}
};
binding.tvAllRed.setOnClickListener {
binding?.tvAllRed?.setOnClickListener {
if (isAll) return@setOnClickListener
changeToAll()
}
binding.tvRoomRed.setOnClickListener {
binding?.tvRoomRed?.setOnClickListener {
if (!isAll) return@setOnClickListener
changeToNotAll()
}
binding.editRedText.addTextChangedListener(this)
binding?.editRedText?.addTextChangedListener(this)
binding.editRedText.setOnEditorActionListener { _, _, event ->
binding?.editRedText?.setOnEditorActionListener { _, _, event ->
event.keyCode == KeyEvent.KEYCODE_ENTER
}
@@ -210,7 +210,7 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
}
override fun onDestroyView() {
binding.editRedText.removeTextChangedListener(this)
binding?.editRedText?.removeTextChangedListener(this)
super.onDestroyView()
}
@@ -220,9 +220,9 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
val password = passWordFragment?.password?.password ?: ""
if (password.length == 6) {
dialogManager.showProgressDialog(context)
RedPackageModel.sendRedPackage(binding.editGoldNum.text.toString(),
binding.editRedText.text.toString().ifEmpty { "恭喜發財,大吉大利!" },
binding.editRedNum.text.toString(),
RedPackageModel.sendRedPackage(binding?.editGoldNum?.text.toString(),
binding?.editRedText?.text.toString().ifEmpty { "恭喜發財,大吉大利!" },
binding?.editRedNum?.text.toString(),
AvRoomDataManager.get().mCurrentRoomInfo?.uid.toString(), getRedType(), DESUtils.DESAndBase64(password))
.doOnError {
dialogManager.dismissDialog()
@@ -241,7 +241,7 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
@Subscribe(threadMode = ThreadMode.MAIN)
fun onWalletInfoUpdate(event: UpdateWalletInfoEvent?) {
binding.tvBalanceNum.text = PayModel.get().currentWalletInfo?.diamondNum?.toString()
binding?.tvBalanceNum?.text = PayModel.get().currentWalletInfo?.diamondNum?.toString()
?: "0"
}
@@ -256,7 +256,7 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
@SuppressLint("SetTextI18n")
override fun afterTextChanged(s: Editable) {
binding.tvRedTextLimit.text = "${s.length}/20"
binding?.tvRedTextLimit?.text = "${s.length}/20"
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {

View File

@@ -33,37 +33,37 @@ class SingleRoomPkFinishDialog : BaseDialog<DialogSingleRoomPkFinishBinding>() {
@SuppressLint("CheckResult", "SetTextI18n")
override fun init() {
binding.tvClose.setOnClickListener { dismissAllowingStateLoss() }
binding.tvTitleRed.text = roomPkBean.cNick.subAndReplaceDot(7)
binding.tvValueRed.text = "${roomPkBean.cAmount}"
binding.ivAvatarRed.load(roomPkBean.cAvatar, defaultRes = R.drawable.default_avatar)
binding?.tvClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.tvTitleRed?.text = roomPkBean.cNick.subAndReplaceDot(7)
binding?.tvValueRed?.text = "${roomPkBean.cAmount}"
binding?.ivAvatarRed?.load(roomPkBean.cAvatar, defaultRes = R.drawable.default_avatar)
roomPkBean.csRank.getOrNull(0)?.let {
binding.groupRank1.isVisible = true
binding.tvRankNick1.text = it.nick.subAndReplaceDot(7)
binding.tvRankValue1.text = "PK值:${it.amount}"
binding.ivAvatar1.load(it.avatar, defaultRes = R.drawable.default_avatar)
binding?.groupRank1?.isVisible = true
binding?.tvRankNick1?.text = it.nick.subAndReplaceDot(7)
binding?.tvRankValue1?.text = "PK值:${it.amount}"
binding?.ivAvatar1?.load(it.avatar, defaultRes = R.drawable.default_avatar)
} ?: run {
binding.groupRank1.isVisible = false
binding.tvEmptyTip.isVisible = true
binding?.groupRank1?.isVisible = false
binding?.tvEmptyTip?.isVisible = true
}
roomPkBean.csRank.getOrNull(1)?.let {
binding.groupRank2.isVisible = true
binding.tvRankNick2.text = it.nick.subAndReplaceDot(7)
binding.tvRankValue2.text = "PK值:${it.amount}"
binding.ivAvatar2.load(it.avatar, defaultRes = R.drawable.default_avatar)
binding?.groupRank2?.isVisible = true
binding?.tvRankNick2?.text = it.nick.subAndReplaceDot(7)
binding?.tvRankValue2?.text = "PK值:${it.amount}"
binding?.ivAvatar2?.load(it.avatar, defaultRes = R.drawable.default_avatar)
} ?: run {
binding.groupRank2.isVisible = false
binding?.groupRank2?.isVisible = false
}
roomPkBean.csRank.getOrNull(2)?.let {
binding.groupRank3.isVisible = true
binding.tvRankNick3.text = it.nick.subAndReplaceDot(7)
binding.tvRankValue3.text = "PK值:${it.amount}"
binding.ivAvatar3.load(it.avatar, defaultRes = R.drawable.default_avatar)
binding?.groupRank3?.isVisible = true
binding?.tvRankNick3?.text = it.nick.subAndReplaceDot(7)
binding?.tvRankValue3?.text = "PK值:${it.amount}"
binding?.ivAvatar3?.load(it.avatar, defaultRes = R.drawable.default_avatar)
} ?: run {
binding.groupRank3.isVisible = false
binding?.groupRank3?.isVisible = false
}
Observable.intervalRange(0, 6, 0, 1, TimeUnit.SECONDS)
@@ -71,24 +71,24 @@ class SingleRoomPkFinishDialog : BaseDialog<DialogSingleRoomPkFinishBinding>() {
.observeOn(AndroidSchedulers.mainThread())
.doOnComplete { dismissAllowingStateLoss() }
.subscribe {
binding.tvClose.text = "關閉(${5 - it})"
binding?.tvClose?.text = "關閉(${5 - it})"
}
when (roomPkBean.winUid) {
0L -> {
binding.viewBg.setBackgroundResource(R.drawable.single_room_pk_bg_finish_deuce)
binding.viewBgAvatar.setBackgroundResource(R.drawable.single_room_pk_bg_finish_deuce_avatar)
binding.tvContributeTitle.setBackgroundResource(R.drawable.single_room_pk_bg_finish_deuce_contribute)
binding?.viewBg?.setBackgroundResource(R.drawable.single_room_pk_bg_finish_deuce)
binding?.viewBgAvatar?.setBackgroundResource(R.drawable.single_room_pk_bg_finish_deuce_avatar)
binding?.tvContributeTitle?.setBackgroundResource(R.drawable.single_room_pk_bg_finish_deuce_contribute)
}
roomPkBean.cUid -> {
binding.viewBg.setBackgroundResource(R.drawable.single_room_pk_bg_finish_win)
binding.viewBgAvatar.setBackgroundResource(R.drawable.single_room_pk_bg_finish_win_avatar)
binding.tvContributeTitle.setBackgroundResource(R.drawable.single_room_pk_bg_finish_win_contribute)
binding?.viewBg?.setBackgroundResource(R.drawable.single_room_pk_bg_finish_win)
binding?.viewBgAvatar?.setBackgroundResource(R.drawable.single_room_pk_bg_finish_win_avatar)
binding?.tvContributeTitle?.setBackgroundResource(R.drawable.single_room_pk_bg_finish_win_contribute)
}
else -> {
binding.viewBg.setBackgroundResource(R.drawable.single_room_pk_bg_finish_failed)
binding.viewBgAvatar.setBackgroundResource(R.drawable.single_room_pk_bg_finish_failed_avatar)
binding.tvContributeTitle.setBackgroundResource(R.drawable.single_room_pk_bg_finish_failed_contribute)
binding?.viewBg?.setBackgroundResource(R.drawable.single_room_pk_bg_finish_failed)
binding?.viewBgAvatar?.setBackgroundResource(R.drawable.single_room_pk_bg_finish_failed_avatar)
binding?.tvContributeTitle?.setBackgroundResource(R.drawable.single_room_pk_bg_finish_failed_contribute)
}
}

View File

@@ -29,23 +29,23 @@ class SingleRoomPkForceFinishDialog : BaseDialog<DialogSingleRoomPkForceFinishBi
@SuppressLint("CheckResult", "SetTextI18n")
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.tvTitleRed.text = roomPkBean.cNick.subAndReplaceDot(7)
binding.tvValueRed.text = "${roomPkBean.cAmount}"
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.tvTitleRed?.text = roomPkBean.cNick.subAndReplaceDot(7)
binding?.tvValueRed?.text = "${roomPkBean.cAmount}"
ImageLoadUtils.loadImage(
context,
roomPkBean.cAvatar,
binding.ivAvatarRed,
binding?.ivAvatarRed,
R.drawable.default_avatar
)
binding.tvTitleBlue.text = roomPkBean.aNick.subAndReplaceDot(7)
binding.tvValueBlue.text = "${roomPkBean.aAmount}"
binding?.tvTitleBlue?.text = roomPkBean.aNick.subAndReplaceDot(7)
binding?.tvValueBlue?.text = "${roomPkBean.aAmount}"
ImageLoadUtils.loadImage(
context,
roomPkBean.aAvatar,
binding.ivAvatarBlue,
binding?.ivAvatarBlue,
R.drawable.default_avatar
)

View File

@@ -36,26 +36,26 @@ class SingleRoomPkReceivedDialog : BaseDialog<DialogSingleRoomPkReceivedBinding>
@SuppressLint("CheckResult")
override fun init() {
binding.tvNick.text = pkBean.inviteRoomTitle.subAndReplaceDot(7)
binding.tvTime.text = "${pkBean.pkDuration}分鐘"
binding?.tvNick?.text = pkBean.inviteRoomTitle.subAndReplaceDot(7)
binding?.tvTime?.text = "${pkBean.pkDuration}分鐘"
pkBean.pkDesc.ifNotNullOrEmpty {
binding.tvDescTitle.isVisible = true
binding.tvDesc.isVisible = true
binding.tvDesc.text = it
binding?.tvDescTitle?.isVisible = true
binding?.tvDesc?.isVisible = true
binding?.tvDesc?.text = it
}
disposable = Observable.intervalRange(0, 10, 0, 1, TimeUnit.SECONDS)
.compose(bindToLifecycle())
.observeOn(AndroidSchedulers.mainThread())
.doOnComplete { dismissAllowingStateLoss() }
.subscribe {
binding.tvCloseTime.text = "${10 - it}"
binding?.tvCloseTime?.text = "${10 - it}"
}
binding.tvReceived.setOnClickListener {
binding?.tvReceived?.setOnClickListener {
commit(true)
}
binding.tvRefuse.setOnClickListener {
binding?.tvRefuse?.setOnClickListener {
commit(false)
}
}

View File

@@ -17,12 +17,12 @@ class SingleRoomPkRuleDialog : BaseDialog<DialogSingleRoomPkRuleBinding>() {
}
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.tvContent.movementMethod = ScrollingMovementMethod.getInstance()
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.tvContent?.movementMethod = ScrollingMovementMethod.getInstance()
SingleRoomPKModel.getSingleRoomPkRule()
.compose(bindToLifecycle())
.doOnSuccess {
binding.tvContent.text = it.replace("\\n", "\n").replace("\\r", "\r")
binding?.tvContent?.text = it.replace("\\n", "\n").replace("\\r", "\r")
}
.doOnError { it?.message.toast() }
.subscribe()

View File

@@ -162,7 +162,7 @@ import com.yizhuan.xchat_android_core.room.pk.bean.RoomPKInvitedUpMicMember;
import com.yizhuan.xchat_android_core.room.pk.bean.RoomPkData;
import com.yizhuan.xchat_android_core.room.queuing_mic.attachment.QueuingMicAttachment;
import com.yizhuan.xchat_android_core.room.queuing_mic.bean.QueuingMicInfo;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfo;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfoBean;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.ExtensionUtil;
@@ -1011,7 +1011,7 @@ public class MessageView extends FrameLayout {
private void setFairyMsg(ChatRoomMessage chatRoomMessage, TextView tvContent) {
if (chatRoomMessage.getAttachment() instanceof FairyMsgAttachment) {
FairyMsgAttachment attachment = (FairyMsgAttachment) chatRoomMessage.getAttachment();
FairyMsgInfo fairyMsgInfo = attachment.getFairyMsgInfo();
FairyMsgInfoBean fairyMsgInfo = attachment.getFairyMsgInfo();
if (fairyMsgInfo == null) return;
SpannableBuilder builder = null;
switch (attachment.getSecond()) {
@@ -1055,7 +1055,7 @@ public class MessageView extends FrameLayout {
}
private SpannableBuilder builderConvertMsg(TextView textView, @NonNull FairyMsgInfo fairyMsgInfo, String type) {
private SpannableBuilder builderConvertMsg(TextView textView, @NonNull FairyMsgInfoBean fairyMsgInfo, String type) {
return new SpannableBuilder(textView)
.append("厲害了!", new ForegroundColorSpan(whiteColor))
.append(StringExtensionKt.subAndReplaceDot(fairyMsgInfo.getNick(), 7), new OriginalDrawStatusClickSpan(roomTipNickColor, false) {
@@ -1069,7 +1069,7 @@ public class MessageView extends FrameLayout {
.append(fairyMsgInfo.getRewardShowValue() + "" + fairyMsgInfo.getRewardName(), new ForegroundColorSpan(roomTipColor));
}
private SpannableBuilder builderDrawMsg(TextView textView, @NonNull FairyMsgInfo fairyMsgInfo, String desc) {
private SpannableBuilder builderDrawMsg(TextView textView, @NonNull FairyMsgInfoBean fairyMsgInfo, String desc) {
SpannableBuilder builder = new SpannableBuilder(textView)
.append(desc, new ForegroundColorSpan(whiteColor))
.append(StringExtensionKt.subAndReplaceDot(fairyMsgInfo.getNick(), 7), new OriginalDrawStatusClickSpan(roomTipNickColor, false) {

View File

@@ -100,7 +100,7 @@ import com.yizhuan.xchat_android_core.Constants;
import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.bean.BaseProtocol;
import com.yizhuan.xchat_android_core.gift.bean.LuckyBagNoticeInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.FairyMsgInfoBean;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfoBean;
import com.yizhuan.xchat_android_core.im.custom.bean.PlayEffectInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomBoxPrizeInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomLuckySeaMsgBean;
@@ -118,7 +118,6 @@ import com.yizhuan.xchat_android_core.pay.bean.WalletInfo;
import com.yizhuan.xchat_android_core.redpackage.RedPackageNotifyInfo;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfo;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
import com.yizhuan.xchat_android_core.vip.VipMessageInfo;

View File

@@ -16,7 +16,7 @@ abstract class BaseDialog<T : ViewBinding> : RxDialogFragment() {
private var _binding: T? = null
private var onDismissListener: (() -> Unit)? = null
val binding get() = _binding!!
val binding get() = _binding
open var width = ScreenUtil.getDialogWidth()
open var height = WindowManager.LayoutParams.WRAP_CONTENT
open var gravity = Gravity.CENTER
@@ -42,7 +42,7 @@ abstract class BaseDialog<T : ViewBinding> : RxDialogFragment() {
val aClass = type.actualTypeArguments[0] as Class<*>
val method = aClass.getDeclaredMethod("inflate", LayoutInflater::class.java)
_binding = method.invoke(null, layoutInflater) as T
return binding.root
return binding?.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

View File

@@ -39,22 +39,22 @@ class HelloMessageDialog : BaseDialog<DialogHelloMessageBinding>() {
@SuppressLint("CheckResult", "SetTextI18n")
override fun init() {
val avatarList = listOf<ImageView>(binding.ivAvatar0, binding.ivAvatar1, binding.ivAvatar2)
val avatarList = listOf<ImageView>(binding!!.ivAvatar0, binding!!.ivAvatar1, binding!!.ivAvatar2)
avatarList.forEachIndexed { index, imageView ->
val avatarUrl = helloMessageInfo.sayHelloUserAvatarList?.getOrNull(index)
imageView.load(avatarUrl)
imageView.isGone = avatarUrl.isNullOrEmpty()
}
binding.tvContent.text = if (helloMessageInfo.sayHelloUserAvatarList?.size == 1) {
binding?.tvContent?.text = if (helloMessageInfo.sayHelloUserAvatarList?.size == 1) {
ResUtil.getString(R.string.home_dialog_hellomessagedialog_01)
} else {
ResUtil.getString(R.string.home_dialog_hellomessagedialog_02)
}
binding.tvView.setOnClickListener {
binding?.tvView?.setOnClickListener {
RoomMsgActivity.start(context)
dismissAllowingStateLoss()
}
binding.ivClose.setOnClickListener {
binding?.ivClose?.setOnClickListener {
dismissAllowingStateLoss()
}

View File

@@ -33,13 +33,13 @@ class NewUserHelloDialog : BaseDialog<DialogNewUserHelloBinding>() {
@SuppressLint("CheckResult", "SetTextI18n")
override fun init() {
binding.ivClose.setOnClickListener {
binding?.ivClose?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.ivAvatar.load(newUserHelloInfo.sayHelloUserAvatar)
binding.tvId.text = "ID:${newUserHelloInfo.sayHelloUserErbanNo}"
binding.tvNick.text = newUserHelloInfo.sayHelloUserNickname.subAndReplaceDot(8)
binding.tvGoRoom.setOnClickListener {
binding?.ivAvatar?.load(newUserHelloInfo.sayHelloUserAvatar)
binding?.tvId?.text = "ID:${newUserHelloInfo.sayHelloUserErbanNo}"
binding?.tvNick?.text = newUserHelloInfo.sayHelloUserNickname.subAndReplaceDot(8)
binding?.tvGoRoom?.setOnClickListener {
AVRoomActivity.startForFromType(
requireContext(),
newUserHelloInfo.roomUid,

View File

@@ -26,15 +26,15 @@ class RecommendRoomDialog : BaseDialog<DialogRecommendRoomBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding.ivClose.setOnClickListener {
binding?.ivClose?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.tvGo.setOnClickListener {
binding?.tvGo?.setOnClickListener {
dismissAllowingStateLoss()
AVRoomActivity.start(context, roomInfo.uid)
}
binding.tvRoomTitle.text = roomInfo.title
ImageLoadUtils.loadImage(context, roomInfo.avatar, binding.ivAvatar)
binding?.tvRoomTitle?.text = roomInfo.title
ImageLoadUtils.loadImage(context, roomInfo.avatar, binding?.ivAvatar)
}
}

View File

@@ -38,7 +38,7 @@ import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager
import com.yizhuan.xchat_android_core.manager.RoomEvent
import com.yizhuan.xchat_android_core.treasurefairy.DrawInfo
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfo
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfoBean
import com.yizhuan.xchat_android_core.treasurefairy.PrizeInfo
import com.yizhuan.xchat_android_library.utils.FormatUtils
import io.reactivex.Observable
@@ -404,7 +404,7 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
)
attachment.fairyMsgInfo = JSON.parseObject(
baseProtocol.data.toString(),
FairyMsgInfo::class.java
FairyMsgInfoBean::class.java
)
val message = ChatRoomMessageBuilder.createChatRoomCustomMessage(
AvRoomDataManager.get().roomId.toString(),

View File

@@ -32,28 +32,28 @@ class ExchangeFairyDialog : BaseDialog<TreasureFairyDialogExchangeBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding.ivBack.setOnClickListener {
binding?.ivBack?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.tvRecord.setOnClickListener {
binding?.tvRecord?.setOnClickListener {
ExchangeRecordDialog.newInstance().show(context)
}
binding.rg.setOnCheckedChangeListener { _, checkedId ->
binding?.rg?.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.rb_epic -> binding.viewPager.currentItem = 0
R.id.rb_legend -> binding.viewPager.currentItem = 1
R.id.rb_epic -> binding?.viewPager?.currentItem = 0
R.id.rb_legend -> binding?.viewPager?.currentItem = 1
}
}
binding.viewPager.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
binding?.viewPager?.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
override fun onPageSelected(position: Int) {
when (position) {
0 -> binding.rg.check(R.id.rb_epic)
1 -> binding.rg.check(R.id.rb_legend)
0 -> binding?.rg?.check(R.id.rb_epic)
1 -> binding?.rg?.check(R.id.rb_legend)
}
}
})
binding.viewPager.adapter = RoomVPAdapter(
binding?.viewPager?.adapter = RoomVPAdapter(
childFragmentManager,
listOf(
ExchangeFairyFragment.newInstance(),

View File

@@ -34,7 +34,7 @@ class ExchangeFairyResultDialog : BaseDialog<TreasureFairyDialogTestFairyResultB
@SuppressLint("CheckResult")
override fun init() {
binding.tvClose.setOnClickListener {
binding?.tvClose?.setOnClickListener {
dismissAllowingStateLoss()
}
val prizeInfoList = viewModel.exchangeGiftLiveData.value
@@ -46,7 +46,7 @@ class ExchangeFairyResultDialog : BaseDialog<TreasureFairyDialogTestFairyResultB
prizeAdapter = ExchangeFairyResultAdapter()
rvDelegate = RVDelegate.Builder<ExchangeGiftInfo>()
.setAdapter(prizeAdapter)
.setRecyclerView(binding.recyclerView)
.setRecyclerView(binding?.recyclerView)
.setLayoutManager(
LinearLayoutManager(context)
)

View File

@@ -30,24 +30,24 @@ class ExchangeRecordDialog : BaseDialog<TreasureFairyDialogExchangeRecordBinding
@SuppressLint("CheckResult")
override fun init() {
binding.rootView.setOnClickListener {
binding?.rootView?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.rg.setOnCheckedChangeListener { _, checkedId ->
binding?.rg?.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.rb_prizes -> binding.viewPager.currentItem = 0
R.id.rb_record -> binding.viewPager.currentItem = 1
R.id.rb_prizes -> binding?.viewPager?.currentItem = 0
R.id.rb_record -> binding?.viewPager?.currentItem = 1
}
}
binding.viewPager.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
binding?.viewPager?.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
override fun onPageSelected(position: Int) {
when (position) {
0 -> binding.rg.check(R.id.rb_prizes)
1 -> binding.rg.check(R.id.rb_record)
0 -> binding?.rg?.check(R.id.rb_prizes)
1 -> binding?.rg?.check(R.id.rb_record)
}
}
})
binding.viewPager.adapter = RoomVPAdapter(
binding?.viewPager?.adapter = RoomVPAdapter(
childFragmentManager,
listOf(
ExchangeFairyRecordFragment.newInstance(),

View File

@@ -50,51 +50,51 @@ class ForestFairyDialog : BaseDialog<TreasureFairyDialogForestBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding.ivBack.setOnClickListener {
binding?.ivBack?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.ivRecord.setOnClickListener {
binding?.ivRecord?.setOnClickListener {
ForestRecordDialog.newInstance().show(context)
}
binding.ivMyFairy.setOnClickListener {
binding?.ivMyFairy?.setOnClickListener {
MyFairyDialog.newInstance().show(context)
}
binding.ivFairyTest.setOnClickListener {
binding?.ivFairyTest?.setOnClickListener {
TestFairyDialog.newInstance().show(context)
}
binding.ivFairyStore.setOnClickListener {
binding?.ivFairyStore?.setOnClickListener {
ExchangeFairyDialog.newInstance().show(context)
}
binding.ivPrevious.setOnClickListener {
binding?.ivPrevious?.setOnClickListener {
currentType--
switchType()
}
binding.ivNext.setOnClickListener {
binding?.ivNext?.setOnClickListener {
currentType++
switchType()
}
binding.viewBgGrab1.setOnClickListener {
binding?.viewBgGrab1?.setOnClickListener {
if (checkBallNum(1)) {
enabledOpenBtn(false)
binding.animView.startPlay(requireContext().assets, "vap/fairy_anim_once.mp4")
binding.animView.postDelayed(showResultRunnable, 1900)
binding?.animView?.startPlay(requireContext().assets, "vap/fairy_anim_once.mp4")
binding?.animView?.postDelayed(showResultRunnable, 1900)
viewModel.drawForestFairy(1, currentType)
}
}
binding.viewBgGrab10.setOnClickListener {
binding?.viewBgGrab10?.setOnClickListener {
if (checkBallNum(10)) {
enabledOpenBtn(false)
binding.animView.startPlay(requireContext().assets, "vap/fairy_anim_ten.mp4")
binding.animView.postDelayed(showResultRunnable, 1900)
binding?.animView?.startPlay(requireContext().assets, "vap/fairy_anim_ten.mp4")
binding?.animView?.postDelayed(showResultRunnable, 1900)
viewModel.drawForestFairy(10, currentType)
}
}
binding.animView.setOnClickListener {
binding?.animView?.setOnClickListener {
if (canShowResult) {
binding.animView.removeCallbacks(showResultRunnable)
binding?.animView?.removeCallbacks(showResultRunnable)
showResultRunnable.run()
}
}
@@ -114,11 +114,11 @@ class ForestFairyDialog : BaseDialog<TreasureFairyDialogForestBinding>() {
viewModel.forestInfoLiveData.observe(viewLifecycleOwner) {
it?.let {
binding.ivAvatar.loadAvatar(it.avatar)
binding.tvNickname.text = it.nick.subAndReplaceDot(7)
binding.tvKeyNumBase.text = it.lowBallNum
binding.tvKeyNumEpic.text = it.middleBallNum
binding.tvKeyNumLegend.text = it.highBallNum
binding?.ivAvatar?.loadAvatar(it.avatar)
binding?.tvNickname?.text = it.nick.subAndReplaceDot(7)
binding?.tvKeyNumBase?.text = it.lowBallNum
binding?.tvKeyNumEpic?.text = it.middleBallNum
binding?.tvKeyNumLegend?.text = it.highBallNum
}
}
@@ -141,34 +141,34 @@ class ForestFairyDialog : BaseDialog<TreasureFairyDialogForestBinding>() {
}
private fun enabledOpenBtn(enable: Boolean) {
binding.viewBgGrab1.isEnabled = enable
binding.viewBgGrab10.isEnabled = enable
binding?.viewBgGrab1?.isEnabled = enable
binding?.viewBgGrab10?.isEnabled = enable
}
@SuppressLint("SetTextI18n")
private fun switchType() {
when (currentType) {
BASE -> {
binding.ivPrevious.isInvisible = true
binding.tvGrabText1.text = "(初級球X1)"
binding.tvGrabText10.text = "(初級球X10)"
binding.tvTips.text = "使用初級球有一定幾率抓到初級精靈"
binding.viewBgForestBase.setBackgroundResource(R.drawable.treasure_fairy_bg_forest_base)
binding?.ivPrevious?.isInvisible = true
binding?.tvGrabText1?.text = "(初級球X1)"
binding?.tvGrabText10?.text = "(初級球X10)"
binding?.tvTips?.text = "使用初級球有一定幾率抓到初級精靈"
binding?.viewBgForestBase?.setBackgroundResource(R.drawable.treasure_fairy_bg_forest_base)
}
EPIC -> {
binding.ivNext.isInvisible = false
binding.ivPrevious.isInvisible = false
binding.tvGrabText1.text = "(超級球X1)"
binding.tvGrabText10.text = "(超級球X10)"
binding.tvTips.text = "使用超級球有一定幾率抓到史詩精靈"
binding.viewBgForestBase.setBackgroundResource(R.drawable.treasure_fairy_bg_forest_epic)
binding?.ivNext?.isInvisible = false
binding?.ivPrevious?.isInvisible = false
binding?.tvGrabText1?.text = "(超級球X1)"
binding?.tvGrabText10?.text = "(超級球X10)"
binding?.tvTips?.text = "使用超級球有一定幾率抓到史詩精靈"
binding?.viewBgForestBase?.setBackgroundResource(R.drawable.treasure_fairy_bg_forest_epic)
}
LEGEND -> {
binding.ivNext.isInvisible = true
binding.tvGrabText1.text = "(大師球X1)"
binding.tvGrabText10.text = "(大師球X10)"
binding.tvTips.text = "使用大師球必定抓到傳說精靈"
binding.viewBgForestBase.setBackgroundResource(R.drawable.treasure_fairy_bg_forest_legend)
binding?.ivNext?.isInvisible = true
binding?.tvGrabText1?.text = "(大師球X1)"
binding?.tvGrabText10?.text = "(大師球X10)"
binding?.tvTips?.text = "使用大師球必定抓到傳說精靈"
binding?.viewBgForestBase?.setBackgroundResource(R.drawable.treasure_fairy_bg_forest_legend)
}
}
}

View File

@@ -39,7 +39,7 @@ class ForestPrizeDialog : BaseDialog<TreasureFairyDialogForestPrizeBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding.tvClose.setOnClickListener {
binding?.tvClose?.setOnClickListener {
dismissAllowingStateLoss()
}
val prizeInfoList = viewModel.drawForestLiveData.value?.peekContent()
@@ -51,7 +51,7 @@ class ForestPrizeDialog : BaseDialog<TreasureFairyDialogForestPrizeBinding>() {
if (isFairy) {
viewModel.cleanDrawForestLiveData()
}
binding.tvTitle.text = if (isFairy) "恭喜獲得" else "意外發現"
binding?.tvTitle?.text = if (isFairy) "恭喜獲得" else "意外發現"
if (!isFairy && !isSingle && hasSurprise) {
newInstance(true).show(context)
}
@@ -60,16 +60,16 @@ class ForestPrizeDialog : BaseDialog<TreasureFairyDialogForestPrizeBinding>() {
prizeInfoList.filter { if (isFairy) (it.propType != 1) else (it.propType == 1) }
val isShowDateSingle = showPrizeInfoList.size == 1
if (!isShowDateSingle) {
binding.viewBg.updateLayoutParams {
binding?.viewBg?.updateLayoutParams {
width = ScreenUtil.dip2px(318f)
height = ScreenUtil.dip2px(383f)
}
binding.viewBg.setBackgroundResource(R.drawable.treasure_fairy_bg_forest_prize)
binding?.viewBg?.setBackgroundResource(R.drawable.treasure_fairy_bg_forest_prize)
}
prizeAdapter = ForestPrizeAdapter(isShowDateSingle)
rvDelegate = RVDelegate.Builder<PrizeInfo>()
.setAdapter(prizeAdapter)
.setRecyclerView(binding.recyclerView)
.setRecyclerView(binding?.recyclerView)
.setLayoutManager(
if (isShowDateSingle) {
LinearLayoutManager(context)

View File

@@ -30,24 +30,24 @@ class ForestRecordDialog : BaseDialog<TreasureFairyDialogForestRecordBinding>()
@SuppressLint("CheckResult")
override fun init() {
binding.rootView.setOnClickListener {
binding?.rootView?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.rg.setOnCheckedChangeListener { _, checkedId ->
binding?.rg?.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.rb_prizes -> binding.viewPager.currentItem = 0
R.id.rb_record -> binding.viewPager.currentItem = 1
R.id.rb_prizes -> binding?.viewPager?.currentItem = 0
R.id.rb_record -> binding?.viewPager?.currentItem = 1
}
}
binding.viewPager.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
binding?.viewPager?.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
override fun onPageSelected(position: Int) {
when (position) {
0 -> binding.rg.check(R.id.rb_prizes)
1 -> binding.rg.check(R.id.rb_record)
0 -> binding?.rg?.check(R.id.rb_prizes)
1 -> binding?.rg?.check(R.id.rb_record)
}
}
})
binding.viewPager.adapter = RoomVPAdapter(
binding?.viewPager?.adapter = RoomVPAdapter(
childFragmentManager,
listOf(
ForestPrizesFragment.newInstance(),

View File

@@ -34,7 +34,7 @@ class HomePrizeDialog : BaseDialog<TreasureFairyDialogHomePrizeBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding.rootView.setOnClickListener {
binding?.rootView?.setOnClickListener {
dismissAllowingStateLoss()
}
val prizeInfoList = viewModel.resultLiveData.value?.peekContent()
@@ -43,7 +43,7 @@ class HomePrizeDialog : BaseDialog<TreasureFairyDialogHomePrizeBinding>() {
prizeAdapter = HomePrizeAdapter(isSingle)
rvDelegate = RVDelegate.Builder<PrizeInfo>()
.setAdapter(prizeAdapter)
.setRecyclerView(binding.recyclerView)
.setRecyclerView(binding?.recyclerView)
.setLayoutManager(
if (isSingle) {
LinearLayoutManager(context)

View File

@@ -39,30 +39,30 @@ class MyFairyDialog : BaseDialog<TreasureFairyDialogMyFairyBinding>() {
override fun init() {
EventBus.getDefault().register(this)
binding.ivBack.setOnClickListener {
binding?.ivBack?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.ivRecord.setOnClickListener {
binding?.ivRecord?.setOnClickListener {
MyFairyRecordDialog.newInstance().show(context)
}
binding.rg.setOnCheckedChangeListener { _, checkedId ->
binding?.rg?.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.rb_base -> binding.viewPager.currentItem = 0
R.id.rb_epic -> binding.viewPager.currentItem = 1
R.id.rb_legend -> binding.viewPager.currentItem = 2
R.id.rb_base -> binding?.viewPager?.currentItem = 0
R.id.rb_epic -> binding?.viewPager?.currentItem = 1
R.id.rb_legend -> binding?.viewPager?.currentItem = 2
}
}
binding.viewPager.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
binding?.viewPager?.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
override fun onPageSelected(position: Int) {
when (position) {
0 -> binding.rg.check(R.id.rb_base)
1 -> binding.rg.check(R.id.rb_epic)
2 -> binding.rg.check(R.id.rb_legend)
0 -> binding?.rg?.check(R.id.rb_base)
1 -> binding?.rg?.check(R.id.rb_epic)
2 -> binding?.rg?.check(R.id.rb_legend)
}
DemoCache.saveMyFairyIndex(position)
}
})
binding.viewPager.adapter = RoomVPAdapter(
binding?.viewPager?.adapter = RoomVPAdapter(
childFragmentManager,
listOf(
MyFairyFragment.newInstance(MyFairyItemView.BASE),
@@ -71,7 +71,7 @@ class MyFairyDialog : BaseDialog<TreasureFairyDialogMyFairyBinding>() {
)
)
binding.viewPager.setCurrentItem(DemoCache.readMyFairyIndex(), false)
binding?.viewPager?.setCurrentItem(DemoCache.readMyFairyIndex(), false)
viewModel.getMyFairyInfo()
}

View File

@@ -41,7 +41,7 @@ class MyFairyRecordDialog : BaseDialog<TreasureFairyDialogMyFairyRecordBinding>(
recordAdapter = MyFairyRecordAdapter()
rvDelegate = RVDelegate.Builder<SendFairyInfo>()
.setAdapter(recordAdapter)
.setRecyclerView(binding.recyclerView)
.setRecyclerView(binding?.recyclerView)
.setEmptyView(
EmptyViewHelper.createEmptyTextViewNoImage(
context,
@@ -55,7 +55,7 @@ class MyFairyRecordDialog : BaseDialog<TreasureFairyDialogMyFairyRecordBinding>(
rvDelegate.loadData(it)
}
recordAdapter.setOnLoadMoreListener({ loadData(false) }, binding.recyclerView)
recordAdapter.setOnLoadMoreListener({ loadData(false) }, binding?.recyclerView)
loadData(true)
}

View File

@@ -37,11 +37,11 @@ class MyFairySearchFriendsDialog : BaseDialog<TreasureFairyDialogMyFairySearchFr
@SuppressLint("CheckResult")
override fun init() {
binding.ivBack.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivBack?.setOnClickListener { dismissAllowingStateLoss() }
friendsAdapter = MyFairyFriendsAdapter()
rvDelegate = RVDelegate.Builder<SimpleUserInfo>()
.setAdapter(friendsAdapter)
.setRecyclerView(binding.recyclerView)
.setRecyclerView(binding?.recyclerView)
.setLayoutManager(LinearLayoutManager(context))
.build()
friendsAdapter.setOnItemClickListener { _, _, position ->
@@ -53,7 +53,7 @@ class MyFairySearchFriendsDialog : BaseDialog<TreasureFairyDialogMyFairySearchFr
viewModel.friendsListLiveData.observe(viewLifecycleOwner) {
rvDelegate.setNewData(it)
}
binding.editSearch.doAfterTextChanged {
binding?.editSearch?.doAfterTextChanged {
viewModel.getFriendsList(it?.toString())
}

View File

@@ -42,8 +42,8 @@ class MyFairySendDialog : BaseDialog<TreasureFairyDialogMyFairySendBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding.ivFairyIcon.load(fairyInfo.elfPicUrl)
binding.tvContent.text =
binding?.ivFairyIcon?.load(fairyInfo.elfPicUrl)
binding?.tvContent?.text =
SpannableBuilder()
.append(if (isSend) "確定贈送" else "確定向", ForegroundColorSpan(Color.WHITE))
.append("${userInfo.nick}", ForegroundColorSpan("#FEF8AA".toColorInt()))
@@ -52,12 +52,12 @@ class MyFairySendDialog : BaseDialog<TreasureFairyDialogMyFairySendBinding>() {
ForegroundColorSpan(Color.WHITE)
)
.build()
binding.tvSend.text = if (isSend) "贈 送" else "索 要"
binding.tvClose.setOnClickListener {
binding?.tvSend?.text = if (isSend) "贈 送" else "索 要"
binding?.tvClose?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.tvSend.clickWithTrigger{
binding.tvSend.isEnabled = false
binding?.tvSend?.clickWithTrigger{
binding?.tvSend?.isEnabled = false
if (isSend) {
viewModel.sendFairy(fairyInfo.elfId, userInfo.uid)
} else {
@@ -66,7 +66,7 @@ class MyFairySendDialog : BaseDialog<TreasureFairyDialogMyFairySendBinding>() {
}
viewModel.sendFairyLiveData.observe(viewLifecycleOwner) {
binding.tvSend.isEnabled = true
binding?.tvSend?.isEnabled = true
if (it.getContentIfNotHandled() == true) {
dismissAllowingStateLoss()
onSendListener?.invoke()

View File

@@ -32,29 +32,29 @@ class TestFairyDialog : BaseDialog<TreasureFairyDialogTestFairyBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding.ivBack.setOnClickListener {
binding?.ivBack?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.tvRecord.setOnClickListener {
binding?.tvRecord?.setOnClickListener {
TestFairyRecordDialog.newInstance().show(context)
}
binding.rg.setOnCheckedChangeListener { _, checkedId ->
binding?.rg?.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.rb_epic -> binding.viewPager.currentItem = 0
R.id.rb_legend -> binding.viewPager.currentItem = 1
R.id.rb_epic -> binding?.viewPager?.currentItem = 0
R.id.rb_legend -> binding?.viewPager?.currentItem = 1
}
}
binding.viewPager.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
binding?.viewPager?.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
override fun onPageSelected(position: Int) {
when (position) {
0 -> binding.rg.check(R.id.rb_epic)
1 -> binding.rg.check(R.id.rb_legend)
0 -> binding?.rg?.check(R.id.rb_epic)
1 -> binding?.rg?.check(R.id.rb_legend)
}
viewModel.cleanTestParam()
}
})
binding.viewPager.adapter = RoomVPAdapter(
binding?.viewPager?.adapter = RoomVPAdapter(
childFragmentManager,
listOf(
TestFairyFragment.newInstance(MyFairyItemView.BASE),

View File

@@ -41,7 +41,7 @@ class TestFairyRecordDialog : BaseDialog<TreasureFairyDialogTestFairyRecordBindi
rvDelegate = RVDelegate.Builder<TestFairyRecordInfo>()
.setAdapter(prizeAdapter)
.setPageSize(pageSize)
.setRecyclerView(binding.recyclerView)
.setRecyclerView(binding?.recyclerView)
.setEmptyView(
EmptyViewHelper.createEmptyTextViewNoImage(
context,
@@ -55,7 +55,7 @@ class TestFairyRecordDialog : BaseDialog<TreasureFairyDialogTestFairyRecordBindi
rvDelegate.loadData(it)
}
prizeAdapter.setOnLoadMoreListener({ loadData(false) }, binding.recyclerView)
prizeAdapter.setOnLoadMoreListener({ loadData(false) }, binding?.recyclerView)
loadData(true)
}

View File

@@ -36,13 +36,13 @@ class TestFairyResultDialog : BaseDialog<TreasureFairyDialogTestFairyResultBindi
private val fairyInfo by lazy { requireArguments().getSerializable("fairyInfo") as FairyInfo }
@SuppressLint("CheckResult")
override fun init() {
binding.tvClose.setOnClickListener {
binding?.tvClose?.setOnClickListener {
dismissAllowingStateLoss()
}
prizeAdapter = TestFairyResultAdapter()
rvDelegate = RVDelegate.Builder<FairyInfo>()
.setAdapter(prizeAdapter)
.setRecyclerView(binding.recyclerView)
.setRecyclerView(binding?.recyclerView)
.setLayoutManager(
LinearLayoutManager(context)
)

View File

@@ -50,10 +50,10 @@ class UserAreaDialog :
}
private fun initListener() {
binding.tvCancel.setOnClickListener {
binding?.tvCancel?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.tvSure.setOnClickListener {
binding?.tvSure?.setOnClickListener {
mArea?.let { area ->
dismissAllowingStateLoss()
mAction?.invoke(area)
@@ -68,9 +68,9 @@ class UserAreaDialog :
private fun setWheelView() {
mOptionsItems?.let {
binding.wheelView.setCyclic(false)
binding.wheelView.adapter = ArrayWheelAdapter(it)
binding.wheelView.setOnItemSelectedListener { index -> mArea = it[index] }
binding?.wheelView?.setCyclic(false)
binding?.wheelView?.adapter = ArrayWheelAdapter(it)
binding?.wheelView?.setOnItemSelectedListener { index -> mArea = it[index] }
}
}

View File

@@ -46,9 +46,9 @@ class UserLabelDialog :
}
private fun initListener() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding.tvEdit.setOnClickListener {
binding?.tvEdit?.setOnClickListener {
dismissAllowingStateLoss()
context?.let { it1 -> EditUserLabelActivity.start(it1) }
}
@@ -59,18 +59,18 @@ class UserLabelDialog :
flexBoxLayoutManager.flexDirection = FlexDirection.ROW//主轴为水平方向,起点在左端
flexBoxLayoutManager.flexWrap = FlexWrap.WRAP//按正常方向换行
flexBoxLayoutManager.justifyContent = JustifyContent.FLEX_START//交叉轴的起点对齐
binding.mRecyclerView.layoutManager = flexBoxLayoutManager
binding.mRecyclerView.adapter = mTagAdapter
binding?.mRecyclerView?.layoutManager = flexBoxLayoutManager
binding?.mRecyclerView?.adapter = mTagAdapter
}
private fun initLabel() {
val userId = arguments?.getLong(KEY_USER_ID) ?: 0L
if (AuthModel.get().currentUid != userId) {
binding.tvTitle.text = getString(R.string.other_label)
binding.tvEdit.visibility = View.GONE
binding?.tvTitle?.text = getString(R.string.other_label)
binding?.tvEdit?.visibility = View.GONE
} else {
binding.tvTitle.text = getString(R.string.my_label)
binding.tvEdit.visibility = View.VISIBLE
binding?.tvTitle?.text = getString(R.string.my_label)
binding?.tvEdit?.visibility = View.VISIBLE
}
val labelList = arguments?.getSerializable(KEY_LABEL) as List<String?>?
mTagAdapter.setNewData(labelList)

View File

@@ -12,11 +12,11 @@ class DatingSelectDialog(val position: Int, val uid: Long, private val myUid: Lo
override fun init() {
width = ScreenUtil.dip2px(200f)
binding.tvMessage.text = ResUtil.getString(R.string.ui_widget_datingselectdialog_01) + (position + 1) + ResUtil.getString(R.string.ui_widget_datingselectdialog_02)
binding.btnCancel.setOnClickListener {
binding?.tvMessage?.text = ResUtil.getString(R.string.ui_widget_datingselectdialog_01) + (position + 1) + ResUtil.getString(R.string.ui_widget_datingselectdialog_02)
binding?.btnCancel?.setOnClickListener {
dismissAllowingStateLoss()
}
binding.btnOk.setOnClickListener {
binding?.btnOk?.setOnClickListener {
EventBus.getDefault().post(DatingSelectUserEvent(uid, myUid, roomUid))
dismissAllowingStateLoss()
}

View File

@@ -732,6 +732,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
private void updateWeekStarDesc() {
if (giftIndicator.getCurrrentType() == GiftIndicator.TYPE_WEEK) {
flLuckyDesc.setVisibility(View.GONE);
llStarWeek.setVisibility(View.GONE);
mStarWeekBanner.setVisibility(View.VISIBLE);
} else {

View File

@@ -36,11 +36,10 @@ import com.yizhuan.erban.databinding.DialogAllPlayEffectBinding;
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
import com.yizhuan.erban.utils.SpannableBuilder;
import com.yizhuan.xchat_android_core.gift.bean.LuckyBagNoticeInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.FairyMsgInfoBean;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfoBean;
import com.yizhuan.xchat_android_core.im.custom.bean.PlayEffectInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomBoxPrizeInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomLuckySeaMsgBean;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfo;
import com.yizhuan.xchat_android_library.utils.ResUtil;
public class AllPlayEffectDialog extends BaseDialog {

View File

@@ -48,7 +48,7 @@ class PaymentDialog : BaseDialog<DialogPaymentBinding>() {
override fun init() {
rvDelegate = RVDelegate.Builder<PayInfo>()
.setAdapter(payAdapter)
.setRecyclerView(binding.mRecyclerView)
.setRecyclerView(binding?.mRecyclerView)
.setLayoutManager(LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false))
.build()
@@ -67,7 +67,7 @@ class PaymentDialog : BaseDialog<DialogPaymentBinding>() {
payAdapter.notifyItemChanged(selectIndex)
}
binding.tvConfirmPay.setOnClickListener {
binding?.tvConfirmPay?.setOnClickListener {
}

View File

@@ -89,9 +89,9 @@ class SelectPayTypeDialog : BaseDialog<DialogSelectPayTypeBinding>() {
it.printStackTrace()
})
binding.tvConfirmPay.setOnClickListener {
if (binding.rbDiamond.isChecked) {
if (binding.tvDiamondNum.text.toString().toInt() > (walletInfo?.diamondNum ?: 0.0).toInt()
binding?.tvConfirmPay?.setOnClickListener {
if (binding?.rbDiamond?.isChecked == true) {
if (binding?.tvDiamondNum?.text.toString().toInt() > (walletInfo?.diamondNum ?: 0.0).toInt()
) {
val tipDialog = CommonTipDialog(context)
tipDialog.setTipMsg(ResUtil.getString(R.string.Diamond_balance_is_insufficient))
@@ -114,19 +114,19 @@ class SelectPayTypeDialog : BaseDialog<DialogSelectPayTypeBinding>() {
}
if (showGoogleCharge) {
binding.rbGoogle.visibility = View.VISIBLE
binding.rg.setOnCheckedChangeListener { _, _ ->
if (binding.rbDiamond.isChecked) {
binding.tvDiamondNum.text = (money * 1000).toInt().toString()
binding.tvDiamond.visibility = View.VISIBLE
binding?.rbGoogle?.visibility = View.VISIBLE
binding?.rg?.setOnCheckedChangeListener { _, _ ->
if (binding?.rbDiamond?.isChecked == true) {
binding?.tvDiamondNum?.text = (money * 1000).toInt().toString()
binding?.tvDiamond?.visibility = View.VISIBLE
} else {
binding.tvDiamondNum.text = descText
binding.tvDiamond.visibility = View.GONE
binding?.tvDiamondNum?.text = descText
binding?.tvDiamond?.visibility = View.GONE
}
}
} else {
binding.rbGoogle.visibility = View.GONE
binding.tvDiamondNum.text = descText
binding?.rbGoogle?.visibility = View.GONE
binding?.tvDiamondNum?.text = descText
}
}
@@ -138,7 +138,7 @@ class SelectPayTypeDialog : BaseDialog<DialogSelectPayTypeBinding>() {
this.walletInfo = walletInfo
val states = arrayOf(intArrayOf(android.R.attr.state_enabled))
val colors = intArrayOf("#8A8CAB".toColorInt())
binding.rbDiamond.text = SpannableBuilder()
binding?.rbDiamond?.text = SpannableBuilder()
.append("钻石支付")
.append(
"${FormatUtils.formatBigInteger(walletInfo.diamondNum)}钻石)",
@@ -153,12 +153,12 @@ class SelectPayTypeDialog : BaseDialog<DialogSelectPayTypeBinding>() {
.build()
val defaultDiamond = money != 0.0 && money * 1000 <= walletInfo.diamondNum
if (showGoogleCharge) {
binding.rbGoogle.visibility = View.VISIBLE
binding.rbGoogle.isChecked = !defaultDiamond
binding?.rbGoogle?.visibility = View.VISIBLE
binding?.rbGoogle?.isChecked = !defaultDiamond
} else {
binding.rbGoogle.visibility = View.GONE
binding?.rbGoogle?.visibility = View.GONE
}
binding.rbDiamond.isChecked = defaultDiamond
binding?.rbDiamond?.isChecked = defaultDiamond
}
}

View File

@@ -21,9 +21,9 @@ class VipAuthDetailsDialog : BaseDialog<DialogVipAuthDetailsBinding>() {
}
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.ivAuthIcon.load(requireArguments().getString("icon", ""))
binding.tvAuthDesc.text = requireArguments().getString("desc", "")
binding.tvAuthName.text = requireArguments().getString("name", "")
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivAuthIcon?.load(requireArguments().getString("icon", ""))
binding?.tvAuthDesc?.text = requireArguments().getString("desc", "")
binding?.tvAuthName?.text = requireArguments().getString("name", "")
}
}

View File

@@ -34,12 +34,12 @@ class VipBroadcastDialog : BaseDialog<DialogVipBroadcastBinding>() {
@SuppressLint("SetTextI18n")
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.ivSend.setOnClickListener {
if (binding.editContent.text.isNullOrBlank()) {
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivSend?.setOnClickListener {
if (binding?.editContent?.text.isNullOrBlank()) {
ResUtil.getString(R.string.erban_vip_vipbroadcastdialog_01).toast()
} else {
viewModel.sendVipBroadcast(binding.editContent.text.toString())
viewModel.sendVipBroadcast(binding?.editContent?.text.toString())
}
}
@@ -64,8 +64,8 @@ class VipBroadcastDialog : BaseDialog<DialogVipBroadcastBinding>() {
viewModel.vipBroadcastInfoLiveData.observe(viewLifecycleOwner) { beanResult ->
if (beanResult.isSuccess) {
beanResult.data?.let {
binding.clRoot.isVisible = true
binding.tvSendLimit.text = "剩餘次數${it.remainCount}/${it.totalCount}"
binding?.clRoot?.isVisible = true
binding?.tvSendLimit?.text = "剩餘次數${it.remainCount}/${it.totalCount}"
disposable?.dispose()
disposable = Observable.interval(0, 1, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
@@ -73,12 +73,12 @@ class VipBroadcastDialog : BaseDialog<DialogVipBroadcastBinding>() {
val remainTime =
(CurrentTimeUtils.getCurrentTime() - it.lastSendTime) / 1000
if (remainTime > 60) {
binding.tvSendTip.text = "發布後1分鐘內不可使用小喇叭"
binding.ivSend.isEnabled = true
binding?.tvSendTip?.text = "發布後1分鐘內不可使用小喇叭"
binding?.ivSend?.isEnabled = true
disposable?.dispose()
} else {
binding.ivSend.isEnabled = false
binding.tvSendTip.text = "${60 - remainTime}後可再次使用喇叭喊話~"
binding?.ivSend?.isEnabled = false
binding?.tvSendTip?.text = "${60 - remainTime}後可再次使用喇叭喊話~"
}
}
}

View File

@@ -17,6 +17,6 @@ class VipRemainTimeDialog : BaseDialog<DialogVipRemainTimeBinding>() {
}
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
}
}

View File

@@ -33,7 +33,7 @@ class VipUpgradeDialog : BaseDialog<DialogVipUpgradeBinding>() {
@SuppressLint("SetTextI18n")
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
vm.saveOriginDisguiseResult.observe(this) {
if (it == true) {
@@ -50,15 +50,15 @@ class VipUpgradeDialog : BaseDialog<DialogVipUpgradeBinding>() {
}
}
}
binding.tvVipUplevel.setOnClickListener { dismissAllowingStateLoss() }
binding.tvVipOrigin.setOnClickListener { vm.saveOriginDisguise() }
binding?.tvVipUplevel?.setOnClickListener { dismissAllowingStateLoss() }
binding?.tvVipOrigin?.setOnClickListener { vm.saveOriginDisguise() }
try {
SVGAParser.shareParser()
.decodeFromURL(URL(vipInfo.vipLogo), object : SVGAParser.ParseCompletion {
override fun onComplete(videoItem: SVGAVideoEntity) {
val drawable = SVGADrawable(videoItem)
binding.ivVipIcon.setImageDrawable(drawable)
binding.ivVipIcon.startAnimation()
binding?.ivVipIcon?.setImageDrawable(drawable)
binding?.ivVipIcon?.startAnimation()
}
override fun onError() {
@@ -67,6 +67,6 @@ class VipUpgradeDialog : BaseDialog<DialogVipUpgradeBinding>() {
} catch (e: MalformedURLException) {
}
binding.tvLevelDesc.text = "恭喜你成為「${vipInfo.vipName}」!當前已自動佩戴該等級裝扮,是否保留原有裝扮?"
binding?.tvLevelDesc?.text = "恭喜你成為「${vipInfo.vipName}」!當前已自動佩戴該等級裝扮,是否保留原有裝扮?"
}
}

View File

@@ -13,7 +13,6 @@
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@mipmap/bg_pk_board"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View File

@@ -25,7 +25,7 @@
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_4"
android:ellipsize="end"
android:lines="1"
android:maxEms="5"

View File

@@ -173,8 +173,6 @@
<item name="windowNoTitle">true</item>
<!--阴影 -->
<item name="android:windowIsTranslucent">true</item>
<!--透明背景-->
<item name="android:background">@android:color/transparent</item>
<!--窗口背景透明-->
<item name="android:windowBackground">@android:color/transparent</item>
<!--弹窗背景是否变暗-->

View File

@@ -8,26 +8,26 @@
<com.yizhuan.erban.base.TitleBar
android:id="@+id/title_bar"
android:layout_marginTop="@dimen/dp_30"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_30" />
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
android:id="@+id/indicator"
android:layout_marginStart="@dimen/dp_30"
android:layout_marginEnd="@dimen/dp_30"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45" />
android:layout_height="@dimen/dp_45"
android:layout_marginStart="@dimen/dp_30"
android:layout_marginEnd="@dimen/dp_30" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="81dp"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginTop="12dp"
android:layout_marginEnd="@dimen/dp_15"
android:layout_marginStart="@dimen/dp_15"
android:background="@drawable/bg_income">
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_year"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -41,13 +41,13 @@
android:id="@+id/ll_day_group"
android:layout_width="wrap_content"
android:layout_height="31dp"
android:layout_alignParentBottom="true"
android:gravity="center_vertical"
android:layout_below="@id/tv_year"
android:layout_alignParentBottom="true"
android:layout_marginStart="15dp"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_month_day_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -55,7 +55,7 @@
android:textSize="@dimen/sp_15"
tools:text="@string/layout_activity_income_statistics_02" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_month_day_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -66,46 +66,46 @@
</LinearLayout>
<ImageView
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_date_arrow"
android:layout_width="11dp"
android:layout_height="7dp"
android:layout_toEndOf="@id/ll_day_group"
android:layout_marginStart="@dimen/dp_18"
android:layout_alignParentBottom="true"
android:layout_marginStart="@dimen/dp_18"
android:layout_marginBottom="21dp"
android:layout_toEndOf="@id/ll_day_group"
android:src="@drawable/icon_date_arrow" />
<View
android:layout_toEndOf="@id/iv_date_arrow"
android:id="@+id/view_line"
android:layout_width="2px"
android:layout_width="@dimen/dp_2"
android:layout_height="31dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/dp_9"
android:layout_marginStart="@dimen/dp_18"
android:layout_marginBottom="@dimen/dp_9"
android:layout_toEndOf="@id/iv_date_arrow"
android:background="@color/white" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_19"
android:layout_marginTop="@dimen/dp_15"
android:layout_toEndOf="@id/view_line"
android:text="@string/all_income"
android:textColor="@color/white_transparent_80"
android:textSize="@dimen/sp_12"
android:layout_toEndOf="@id/view_line" />
android:textSize="@dimen/sp_12" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_19"
android:textColor="@color/white"
android:layout_alignParentBottom="true"
android:layout_marginStart="@dimen/dp_19"
android:layout_marginBottom="10dp"
android:layout_toEndOf="@id/view_line"
android:textSize="24dp" />
android:textColor="@color/white"
android:textSize="@dimen/text_size_24" />
</RelativeLayout>
@@ -114,69 +114,69 @@
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="20dp"
android:orientation="horizontal"
android:background="@color/color_F0F5F6"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_15"
android:paddingEnd="@dimen/dp_40"
android:background="@color/color_F0F5F6">
android:paddingEnd="@dimen/dp_40">
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/layout_activity_income_statistics_04"
android:textColor="@color/color_1F1A4E"
android:textSize="@dimen/sp_12"
android:text="@string/layout_activity_income_statistics_04" />
android:textSize="@dimen/sp_12" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/layout_activity_income_statistics_05"
android:textColor="@color/color_1F1A4E"
android:textSize="@dimen/sp_12"
android:text="@string/layout_activity_income_statistics_05" />
android:textSize="@dimen/sp_12" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/layout_activity_income_statistics_06"
android:textColor="@color/color_1F1A4E"
android:textSize="@dimen/sp_12"
android:text="@string/layout_activity_income_statistics_06" />
android:textSize="@dimen/sp_12" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/diamond_income"
android:textColor="@color/color_1F1A4E"
android:textSize="@dimen/sp_12"
android:text="@string/diamond_income" />
android:textSize="@dimen/sp_12" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_gold_list"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="@dimen/dp_20"
android:background="@color/color_F0F5F6"
android:gravity="center_vertical"
android:paddingStart="@dimen/dp_15"
android:paddingEnd="@dimen/dp_15">
android:paddingEnd="@dimen/dp_15"
android:visibility="gone">
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvBelongRoom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -189,7 +189,7 @@
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/member"
@@ -201,7 +201,7 @@
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_diamond_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -211,23 +211,23 @@
<LinearLayout
android:id="@+id/ll_diamond_arrow"
android:orientation="vertical"
android:layout_marginStart="@dimen/dp_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_3"
android:orientation="vertical">
<ImageView
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_diamond_top"
android:src="@mipmap/ic_arrow_gray_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:src="@mipmap/ic_arrow_gray_top" />
<ImageView
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_diamond_bottom"
android:src="@mipmap/ic_arrow_black_bottom"
android:layout_marginTop="@dimen/dp_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_2"
android:src="@mipmap/ic_arrow_black_bottom" />
</LinearLayout>
@@ -236,7 +236,7 @@
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/have_exchange_gold"
@@ -248,7 +248,7 @@
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_gold_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -258,23 +258,23 @@
<LinearLayout
android:id="@+id/ll_gold_arrow"
android:orientation="vertical"
android:layout_marginStart="@dimen/dp_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_3"
android:orientation="vertical">
<ImageView
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_gold_top"
android:src="@mipmap/ic_arrow_gray_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:src="@mipmap/ic_arrow_gray_top" />
<ImageView
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_gold_bottom"
android:src="@mipmap/ic_arrow_black_bottom"
android:layout_marginTop="@dimen/dp_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_2"
android:src="@mipmap/ic_arrow_black_bottom" />
</LinearLayout>
@@ -283,7 +283,6 @@
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent" />
</androidx.viewpager.widget.ViewPager>
</LinearLayout>

View File

@@ -26,15 +26,15 @@ class NewbieFilterDialog : BaseDialog<DialogNewbieFilterBinding>() {
}
override fun init() {
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.tvConfirm.setOnClickListener {
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.tvConfirm?.setOnClickListener {
onFilterListener?.invoke(
when (binding.rgGender.checkedRadioButtonId) {
when (binding?.rgGender?.checkedRadioButtonId) {
R.id.rb_gender_male -> 1
R.id.rb_gender_female -> 2
else -> 0
},
when (binding.rgHello.checkedRadioButtonId) {
when (binding?.rgHello?.checkedRadioButtonId) {
R.id.rb_hello_already -> 1
R.id.rb_hello_no -> 2
else -> 0

View File

@@ -15,11 +15,11 @@ class RadishBuyKeyDialog :
}
override fun init() {
binding.ivCancel.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivCancel?.setOnClickListener { dismissAllowingStateLoss() }
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding.ivBuy.setOnClickListener {
binding?.ivBuy?.setOnClickListener {
DialogWebViewActivity.start(context, UriProvider.getRadishKey())
dismissAllowingStateLoss()
}

View File

@@ -54,16 +54,16 @@ class RadishResultDialog :
)
}
)
.setRecyclerView(binding.recyclerView)
.setRecyclerView(binding?.recyclerView)
.build()
rvDelegate.setNewData(openBoxResult.prizeItemList)
if (openBoxResult.isSpecialStatus) {
binding.root.setBackgroundResource(R.drawable.pull_radish_result_bg_special)
binding?.root?.setBackgroundResource(R.drawable.pull_radish_result_bg_special)
}
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.root.alpha = 0f
binding.root.animate().alpha(1f).setDuration(500).start()
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
binding?.root?.alpha = 0f
binding?.root?.animate()?.alpha(1f)?.setDuration(500)?.start()
}
}

View File

@@ -58,7 +58,7 @@ import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
import com.yizhuan.xchat_android_core.manager.RoomEvent;
import com.yizhuan.xchat_android_core.pay.PayModel;
import com.yizhuan.xchat_android_core.pay.bean.WalletInfo;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfo;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfoBean;
import com.yizhuan.xchat_android_core.utils.StringUtils;
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
import com.yizhuan.xchat_android_library.common.util.SoftKeyboardStateHelper;
@@ -373,7 +373,7 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
case CUSTOM_MSG_FAIRY://夺宝精灵
if (baseProtocol.getSecond() == CUSTOM_MSG_SUB_DRAW_GIFT_L5) {
FairyMsgAttachment attachment = new FairyMsgAttachment(CUSTOM_MSG_FAIRY, CUSTOM_MSG_SUB_DRAW_GIFT_L5);
attachment.setFairyMsgInfo(JSON.parseObject(String.valueOf(baseProtocol.getData()), FairyMsgInfo.class));
attachment.setFairyMsgInfo(JSON.parseObject(String.valueOf(baseProtocol.getData()), FairyMsgInfoBean.class));
ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), attachment);
IMNetEaseManager.get().noticeRoomEvent(message, RoomEvent.FAIRY_DRAW_GIFT_L5);
}

View File

@@ -24,7 +24,7 @@ class TreasureBoxDialog : BaseDialog<DialogTreasureBoxBinding>() {
}
override fun init() {
binding.tvCharge.setOnClickListener {
binding?.tvCharge?.setOnClickListener {
if (AppMetaDataUtil.getChannelID() == Constants.GOOGLE) {
ChargeActivity.start(context)
} else {

View File

@@ -1,48 +0,0 @@
package com.yizhuan.xchat_android_core.treasurefairy
data class FairyMsgInfo(
/**
* uid
*/
val uid: Long = 0L,
/**
* 昵称
*/
val nick: String = "",
/**
* 所在房间uid
*/
val roomUid: Long = 0L,
/**
* 奖励类型
*/
val rewardType: String = "",
/**
* 奖励名称
*/
val rewardName: String = "",
/**
* 奖励等级
*/
val rewardLevel: Int = 0,
/**
* 奖励数量
*/
val rewardNum: Int = 0,
/**
* 限制等级
*/
val userLevelLimit: Int = 0,
/**
* 展示价值
*/
val rewardShowValue: Int = 0
)

View File

@@ -1,4 +1,4 @@
package com.yizhuan.xchat_android_core.im.custom.bean;
package com.yizhuan.xchat_android_core.treasurefairy;
import lombok.Data;

View File

@@ -2,14 +2,14 @@ package com.yizhuan.xchat_android_core.im.custom.bean;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfo;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfoBean;
/**
* Created by chenran on 2017/10/4.
*/
public class FairyMsgAttachment extends CustomAttachment {
private FairyMsgInfo fairyMsgInfo;
private FairyMsgInfoBean fairyMsgInfo;
public FairyMsgAttachment(int first, int second) {
super(first, second);
@@ -17,14 +17,14 @@ public class FairyMsgAttachment extends CustomAttachment {
@Override
protected void parseData(JSONObject jsonObject) {
fairyMsgInfo = new Gson().fromJson(jsonObject.toJSONString(), FairyMsgInfo.class);
fairyMsgInfo = new Gson().fromJson(jsonObject.toJSONString(), FairyMsgInfoBean.class);
}
public FairyMsgInfo getFairyMsgInfo() {
public FairyMsgInfoBean getFairyMsgInfo() {
return fairyMsgInfo;
}
public void setFairyMsgInfo(FairyMsgInfo fairyMsgInfo) {
public void setFairyMsgInfo(FairyMsgInfoBean fairyMsgInfo) {
this.fairyMsgInfo = fairyMsgInfo;
}

View File

@@ -1,7 +1,7 @@
package com.yizhuan.xchat_android_core.im.custom.bean;
import com.yizhuan.xchat_android_core.gift.bean.LuckyBagNoticeInfo;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfo;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfoBean;
import lombok.Data;

View File

@@ -29,8 +29,8 @@ COMPILE_SDK_VERSION=32
MIN_SDK_VERSION=21
TARGET_SDK_VERSION=32
version_name=1.9.2
version_code=192
version_name=1.9.3
version_code=193
#systemProp.https.proxyHost=127.0.0.1
#systemProp.https.proxyPort=9999