diff --git a/app/src/main/assets/svga/single_headware.svga b/app/src/main/assets/svga/single_headware.svga new file mode 100644 index 000000000..a2034e66d Binary files /dev/null and b/app/src/main/assets/svga/single_headware.svga differ diff --git a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java index c7cf46a8a..a11557657 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java @@ -741,24 +741,6 @@ public class AVRoomActivity extends BaseMvpActivity(R.id.svga_head_wear)?.let { it.visibility = View.VISIBLE diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/BaseRoomFragment.kt b/app/src/main/java/com/yizhuan/erban/avroom/fragment/BaseRoomFragment.kt index 2e64a3830..0bf293862 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/BaseRoomFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/BaseRoomFragment.kt @@ -17,8 +17,13 @@ import android.view.ViewStub import android.widget.EditText import android.widget.ImageView import android.widget.RelativeLayout +import android.widget.TextView import androidx.annotation.CallSuper 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.nimlib.sdk.StatusCode 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.DatingVipRuleDialog 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.redpackage.RedPackageSendDialog 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.home.adapter.RoomActAdapter 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.widget.ButtonItem 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.xchat_android_constants.XChatConstants 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.auth.AuthModel 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.bean.BaseInfo 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_library.net.rxnet.utils.RxNetWorkUtils import com.yizhuan.xchat_android_library.rxbus.RxBus @@ -137,6 +146,11 @@ open class BaseRoomFragment?> : @JvmField protected var isDatingMode = false + /** + * 快捷发言 + */ + private var lastSendTime: Long = 0 + /** * 是否开启礼物值显示 @@ -631,10 +645,13 @@ open class BaseRoomFragment?> : .onEvent(StatisticsProtocol.Event.EVENT_MP_ROOM_RANKING_LIST_CLICK, "房间榜") } 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()) } @@ -1050,6 +1067,50 @@ open class BaseRoomFragment?> : } } + fun initSpeedyMessage(speedyMessageContainer: View) { + val rvSpeedyMessage = + speedyMessageContainer.findViewById(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 = + object : BaseQuickAdapter(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(R.id.iv_close_speedy_message).setOnClickListener { + speedyMessageContainer.visibility = View.GONE + DemoCache.saveSpeedyMessageGoneTime(System.currentTimeMillis()) + } + } + + override fun showMessageHistory(messages: List?) { messageView.addHistoryMessages(messages) } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyFragment.java b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyFragment.java index 67389980e..1451a6944 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyFragment.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyFragment.java @@ -287,6 +287,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe return currentRoomInfo != null && AvRoomDataManager.get().isRoomOwner() && currentRoomInfo.getIsPermitRoom() != 1 && + currentRoomInfo.getType() != RoomInfo.ROOM_TYPE_SINGLE && (currentRoomInfo.getRoomModeType() == RoomModeType.NORMAL_MODE || currentRoomInfo.getRoomModeType() == 2 || currentRoomInfo.getRoomModeType() == 4); diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java index 8799c2c36..792b40637 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java @@ -1,18 +1,12 @@ 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.os.Bundle; import android.text.TextUtils; import android.view.View; -import android.widget.TextView; 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.support.glide.GlideApp; 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.utils.UserUtils; 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.auth.AuthModel; 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.event.QueuingMicEmptyEvent; 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.user.UserModel; -import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils; import com.yizhuan.xchat_android_library.base.factory.CreatePresenter; -import com.yizhuan.xchat_android_library.utils.ListUtils; import com.yizhuan.xchat_android_library.utils.SingleToastUtil; -import com.yizhuan.xchat_android_library.utils.TimeUtils; import com.yizhuan.xchat_android_library.utils.UIUtils; import com.yizhuan.xchat_android_library.utils.config.BasicConfig; @@ -110,11 +99,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment phrases = AvRoomDataManager.get().phrases; - if (ListUtils.isListEmpty(phrases) || !TimeUtils.isTomorrow(DemoCache.readSpeedyMessageGoneTime())) { - gameBinding.flSpeedyMessage.setVisibility(View.GONE); - return; - } - BaseQuickAdapter adapter = new BaseQuickAdapter(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() { LogUtil.e("cleanDragonBar"); @@ -623,10 +569,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment faceInfos = DynamicFaceModel.get().getFaceInfos(); diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/SingleRoomFragment.kt b/app/src/main/java/com/yizhuan/erban/avroom/fragment/SingleRoomFragment.kt index 3acdeb1f0..99c06cbc5 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/SingleRoomFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/SingleRoomFragment.kt @@ -5,41 +5,27 @@ import android.os.Bundle import android.view.View import androidx.core.view.isVisible import androidx.databinding.DataBindingUtil -import com.orhanobut.logger.Logger import com.yizhuan.erban.R import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener 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.firstcharge.FirstChargePrizeDialog import com.yizhuan.erban.avroom.presenter.SingleRoomPresenter import com.yizhuan.erban.avroom.view.ISingleRoomView 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.xchat_android_core.Constants import com.yizhuan.xchat_android_core.UriProvider 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.im.custom.bean.CustomAttachment 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.RoomEvent 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.GiftValueMrg -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.UserModel import com.yizhuan.xchat_android_core.user.bean.UserInfo import com.yizhuan.xchat_android_library.base.factory.CreatePresenter import org.greenrobot.eventbus.Subscribe @@ -53,7 +39,7 @@ import org.greenrobot.eventbus.ThreadMode */ @CreatePresenter(SingleRoomPresenter::class) class SingleRoomFragment : BaseRoomFragment(), - View.OnClickListener, ISingleRoomView, OnMicroItemClickListener { + ISingleRoomView, OnMicroItemClickListener { companion object { @JvmStatic @@ -86,6 +72,28 @@ class SingleRoomFragment : BaseRoomFragment + 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?) { @@ -155,12 +163,11 @@ class SingleRoomFragment : BaseRoomFragment) { - initRoomAct(gameBinding.activityImg, dialogInfos) + initRoomAct(gameBinding.activityImg, dialogInfos, 10f) } @Subscribe(threadMode = ThreadMode.MAIN) @@ -173,5 +180,4 @@ class SingleRoomFragment : BaseRoomFragment - - + tools:layout_width="90dp"> + app:layout_constraintStart_toStartOf="parent"> @@ -34,8 +35,8 @@ android:id="@+id/lock_image" android:layout_width="40dp" android:layout_height="40dp" - android:layout_margin="@dimen/dp_10" android:layout_gravity="center" + android:layout_margin="@dimen/dp_10" android:scaleType="fitXY" android:src="@drawable/icon_room_single_lock_micro" android:visibility="invisible" @@ -45,24 +46,16 @@ android:id="@+id/avatar" android:layout_width="40dp" android:layout_height="40dp" - android:layout_margin="@dimen/dp_10" android:layout_gravity="center" + android:layout_margin="@dimen/dp_10" android:src="@drawable/default_avatar" android:visibility="gone" tools:visibility="visible" /> - - + app:layout_constraintStart_toStartOf="parent"> - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_micro_single_anchor_boss.xml b/app/src/main/res/layout/item_micro_single_anchor_boss.xml index 749390d4a..dddaab481 100644 --- a/app/src/main/res/layout/item_micro_single_anchor_boss.xml +++ b/app/src/main/res/layout/item_micro_single_anchor_boss.xml @@ -4,9 +4,10 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" + android:clipChildren="false" 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"> - + app:layout_constraintWidth_percent="0.6"> + android:layout_width="0dp" + android:layout_height="0dp" + 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" /> + 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" /> - - + 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" /> + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - + + app:layout_constraintStart_toStartOf="@id/micro_layout"> @@ -183,12 +194,11 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" - android:layout_marginBottom="@dimen/dp_10" android:gravity="center" android:orientation="horizontal" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="@id/micro_layout" - app:layout_constraintStart_toStartOf="@id/micro_layout" - app:layout_constraintTop_toBottomOf="@id/rl_nick"> + app:layout_constraintStart_toStartOf="@id/micro_layout"> + + - - - - + + + + + + + + + + - - @@ -167,6 +193,7 @@ android:id="@+id/vs_music_player" android:layout_width="match_parent" android:layout_height="match_parent" + android:layout_marginTop="75dp" android:layout="@layout/avroom_music_player_layout" /> diff --git a/gradle.properties b/gradle.properties index af71e1499..48ff38ba0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,5 +23,5 @@ only_arm64=false channel_file=channel.txt -version_name=4.1.0 -version_code=410 \ No newline at end of file +version_name=4.2.0 +version_code=420 \ No newline at end of file