From a60d48ec10207a0291fd4e4322f8e64677e72ecf Mon Sep 17 00:00:00 2001 From: eggmanQQQ <3671373519@qq.com> Date: Thu, 31 Oct 2024 14:41:54 +0800 Subject: [PATCH] =?UTF-8?q?feat=20:=20=20=20=E4=BF=AE=E6=94=B9=E6=88=BF?= =?UTF-8?q?=E9=97=B4=E8=83=8C=E6=99=AF=20=E5=BC=B9=E7=AA=97,=20=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=20=E6=88=BF=E9=97=B4=E5=88=97=E8=A1=A8=20banner=20ite?= =?UTF-8?q?m?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/avroom/dialog/RoomBgPreviewDialog.kt | 37 +++++ .../chwl/app/avroom/dialog/RoomBgSetDialog.kt | 82 ++++++++++ .../avroom/dialog/RoomOperationDialog.java | 24 +++ .../chwl/app/home/adapter/HomeRoomAdapter.kt | 11 +- .../fragment/HomeRoomCollectListFragment.kt | 10 +- .../fragment/HomeRoomHistoryListFragment.kt | 10 +- .../app/home/fragment/HomeTabRoomFragment.kt | 12 +- .../com/chwl/app/home/fragment/MeFragment.kt | 4 +- .../app/ui/widget/TopRoundLinearLayout.java | 6 +- .../main/res/layout/activity_room_setting.xml | 2 + .../res/layout/dialog_room_bg_preview.xml | 128 ++++++++++++++++ .../main/res/layout/dialog_room_bg_set.xml | 104 +++++++++++++ app/src/main/res/layout/home_item_banner.xml | 24 +++ app/src/main/res/layout/item_room_bg_set.xml | 143 ++++++++++++++++++ app/src/main/res/values/strings.xml | 12 ++ .../com/chwl/core/gift/bean/RoomBgInfo.java | 5 + .../java/com/chwl/library/widget/SVGAView.kt | 10 ++ 17 files changed, 602 insertions(+), 22 deletions(-) create mode 100644 app/src/main/java/com/chwl/app/avroom/dialog/RoomBgPreviewDialog.kt create mode 100644 app/src/main/java/com/chwl/app/avroom/dialog/RoomBgSetDialog.kt create mode 100644 app/src/main/res/layout/dialog_room_bg_preview.xml create mode 100644 app/src/main/res/layout/dialog_room_bg_set.xml create mode 100644 app/src/main/res/layout/home_item_banner.xml create mode 100644 app/src/main/res/layout/item_room_bg_set.xml create mode 100644 core/src/main/java/com/chwl/core/gift/bean/RoomBgInfo.java diff --git a/app/src/main/java/com/chwl/app/avroom/dialog/RoomBgPreviewDialog.kt b/app/src/main/java/com/chwl/app/avroom/dialog/RoomBgPreviewDialog.kt new file mode 100644 index 000000000..e9e05b391 --- /dev/null +++ b/app/src/main/java/com/chwl/app/avroom/dialog/RoomBgPreviewDialog.kt @@ -0,0 +1,37 @@ +package com.chwl.app.avroom.dialog + +import android.view.Gravity +import android.view.WindowManager +import com.chwl.app.base.BaseDialogFragment +import com.chwl.app.databinding.DialogRoomBgPreviewBinding + +class RoomBgPreviewDialog : BaseDialogFragment() { + + + + override var width = WindowManager.LayoutParams.MATCH_PARENT + override var height = WindowManager.LayoutParams.MATCH_PARENT + override var dimAmount = 0.3f + override var gravity = Gravity.BOTTOM + + + override fun init() { + + binding.btnBack.setOnClickListener { + dismiss() + } + + binding.close.setOnClickListener { + dismiss() + } + + binding.prvView.setOnClickListener { + + } + +// binding.bg.loadUrl("https://image.pekolive.com/ca486d8c-9c4c-40ff-ab0a-58982622e2fb.jpg") + + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/avroom/dialog/RoomBgSetDialog.kt b/app/src/main/java/com/chwl/app/avroom/dialog/RoomBgSetDialog.kt new file mode 100644 index 000000000..fbbeeb84d --- /dev/null +++ b/app/src/main/java/com/chwl/app/avroom/dialog/RoomBgSetDialog.kt @@ -0,0 +1,82 @@ +package com.chwl.app.avroom.dialog + +import android.view.Gravity +import android.view.WindowManager +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.chwl.app.R +import com.chwl.app.base.BaseDialogFragment +import com.chwl.app.bindadapter.BaseAdapter +import com.chwl.app.bindadapter.BindingViewHolder +import com.chwl.app.common.widget.dialog.DialogManager +import com.chwl.app.databinding.DialogRoomBgSetBinding +import com.chwl.core.gift.bean.RoomBgInfo +import com.chwl.library.common.util.ClickUtils.click +import com.example.lib_utils.ktx.getDimension +import com.example.lib_utils.ktx.getString + +class RoomBgSetDialog : BaseDialogFragment() { + + override var width = WindowManager.LayoutParams.MATCH_PARENT + override var height = R.dimen.dp_323.getDimension().toInt() + override var dimAmount = 0f + override var gravity = Gravity.BOTTOM + + lateinit var mAdapter: RoomBgAdapter + + + override fun init() { + + mAdapter = RoomBgAdapter() + mAdapter.setNewData(arrayListOf(RoomBgInfo(),RoomBgInfo(),RoomBgInfo(),RoomBgInfo(),)) + + binding.rvList.layoutManager = LinearLayoutManager(context,RecyclerView.HORIZONTAL,false) + binding.rvList.adapter = mAdapter + + mAdapter.setOnItemClickListener { adapter, view, position -> + + } + + + mAdapter.setOnItemChildClickListener { adapter, view, position -> + when (view.id) { + + R.id.statusPlay -> { + + + } + + R.id.statusBuy -> { + + + } + + else -> {} + } + + } + + binding.btnMore.click { + DialogManager(context).showOkDialog(R.string.Purchases_hint_info.getString()) + } + + + } + + class RoomBgAdapter() : BaseAdapter(R.layout.item_room_bg_set, 1) { + + + override fun convert(helper: BindingViewHolder, data: RoomBgInfo?) { + + + + helper.addOnClickListener(R.id.statusPlay) + helper.addOnClickListener(R.id.statusBuy) + } + + } + + + + +} \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/avroom/dialog/RoomOperationDialog.java b/app/src/main/java/com/chwl/app/avroom/dialog/RoomOperationDialog.java index adc69a239..1356dac3d 100644 --- a/app/src/main/java/com/chwl/app/avroom/dialog/RoomOperationDialog.java +++ b/app/src/main/java/com/chwl/app/avroom/dialog/RoomOperationDialog.java @@ -1,6 +1,7 @@ package com.chwl.app.avroom.dialog; import android.annotation.SuppressLint; +import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; @@ -16,6 +17,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.chwl.app.R; import com.chwl.app.UIHelper; +import com.chwl.app.application.GlobalHandleManager; import com.chwl.app.avroom.activity.CreatePKActivity; import com.chwl.app.avroom.activity.RoomSettingActivity; import com.chwl.app.avroom.activity.RoomTypeSwitchActivity; @@ -133,6 +135,7 @@ public class RoomOperationDialog extends BottomSheetDialog { addVipSendBroadcastAction(optAdapter); //小喇叭 // addRedPacketAction(optAdapter); //红包 addRoomSettingAction(optAdapter); //房间设置 + addRoomSettingBackPicAction(optAdapter); //房间背景设置 addGiftEffectAction(optAdapter); //礼物特效 // addOpenOrClosePublicScreenAction(optAdapter); //公屏开关 // addRedPackageSwitch(); // 开关红包 @@ -572,6 +575,27 @@ public class RoomOperationDialog extends BottomSheetDialog { } } + /** + * 房间背景设置 + * + * @param optAdapter + */ + private void addRoomSettingBackPicAction(OptAdapter optAdapter) { + if (SuperAdminUtil.isSuperAdmin()) { + return; + } + if (AvRoomDataManager.get().isManager()) { + optAdapter.addData(new OptAction(R.drawable.icon_room_setting, getContext().getResources().getString(R.string.roomBg), () -> { + Activity activity = GlobalHandleManager.get().getActivity(); + if (activity != null) { + RoomBgSetDialog roomBgSetDialog = new RoomBgSetDialog(); + roomBgSetDialog.show(activity); + } + })); + } + } + + /** * 房间类型切换 * diff --git a/app/src/main/java/com/chwl/app/home/adapter/HomeRoomAdapter.kt b/app/src/main/java/com/chwl/app/home/adapter/HomeRoomAdapter.kt index 1966fd7ac..cb7152b0f 100644 --- a/app/src/main/java/com/chwl/app/home/adapter/HomeRoomAdapter.kt +++ b/app/src/main/java/com/chwl/app/home/adapter/HomeRoomAdapter.kt @@ -8,7 +8,7 @@ import androidx.core.view.isVisible import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.RecycledViewPool -import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseMultiItemQuickAdapter import com.chad.library.adapter.base.BaseViewHolder import com.chwl.app.R import com.chwl.app.ui.utils.ImageLoadUtils @@ -27,13 +27,20 @@ import com.tencent.qgame.animplayer.AnimView /** * create by lvzebiao @2019/11/13 */ -class HomeRoomAdapter : BaseQuickAdapter(R.layout.home_item_room) { +class HomeRoomAdapter : BaseMultiItemQuickAdapter { private var micUserItemViewPool = RecycledViewPool().apply { setMaxRecycledViews(0, 50) } + + private val isRTL = UiUtils.isRtl(AppUtils.getApp()) + constructor(data: MutableList?) : super(data){ + addItemType(HomeRoomInfo.TYPE_ROOM,R.layout.home_item_room) + addItemType(HomeRoomInfo.TYPE_BANNER,R.layout.home_item_banner) + } + override fun onCreateDefViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder { return super.onCreateDefViewHolder(parent, viewType).apply { val micUserRecyclerView = this.getView(R.id.recycler_view_users) diff --git a/app/src/main/java/com/chwl/app/home/fragment/HomeRoomCollectListFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/HomeRoomCollectListFragment.kt index 9175bb1c8..d302f1288 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/HomeRoomCollectListFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/HomeRoomCollectListFragment.kt @@ -6,15 +6,15 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.chad.library.adapter.base.BaseQuickAdapter import com.chwl.app.R -import com.chwl.app.base.BaseViewBindingFragment -import com.chwl.app.home.adapter.HomeRoomAdapter -import com.chwl.app.ui.utils.RVDelegate -import com.chwl.core.home.bean.HomeRoomInfo import com.chwl.app.avroom.activity.AVRoomActivity +import com.chwl.app.base.BaseViewBindingFragment import com.chwl.app.common.EmptyViewHelper import com.chwl.app.databinding.HomeTabRoomFragmentBinding import com.chwl.app.home.HomeMeViewModel +import com.chwl.app.home.adapter.HomeRoomAdapter import com.chwl.app.support.FragmentVisibleStateHelper +import com.chwl.app.ui.utils.RVDelegate +import com.chwl.core.home.bean.HomeRoomInfo /** * 收藏 @@ -49,7 +49,7 @@ class HomeRoomCollectListFragment : BaseViewBindingFragment?, _: View?, position: Int -> val homePlayInfo: HomeRoomInfo? = adapter.getItem(position) diff --git a/app/src/main/java/com/chwl/app/home/fragment/HomeRoomHistoryListFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/HomeRoomHistoryListFragment.kt index 7f5ae7715..69181abc6 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/HomeRoomHistoryListFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/HomeRoomHistoryListFragment.kt @@ -6,15 +6,15 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.chad.library.adapter.base.BaseQuickAdapter import com.chwl.app.R -import com.chwl.app.base.BaseViewBindingFragment -import com.chwl.app.home.adapter.HomeRoomAdapter -import com.chwl.app.ui.utils.RVDelegate -import com.chwl.core.home.bean.HomeRoomInfo import com.chwl.app.avroom.activity.AVRoomActivity +import com.chwl.app.base.BaseViewBindingFragment import com.chwl.app.common.EmptyViewHelper import com.chwl.app.databinding.HomeTabRoomFragmentBinding import com.chwl.app.home.HomeMeViewModel +import com.chwl.app.home.adapter.HomeRoomAdapter import com.chwl.app.support.FragmentVisibleStateHelper +import com.chwl.app.ui.utils.RVDelegate +import com.chwl.core.home.bean.HomeRoomInfo /** * 最近访问记录 @@ -49,7 +49,7 @@ class HomeRoomHistoryListFragment : BaseViewBindingFragment?, _: View?, position: Int -> val homePlayInfo: HomeRoomInfo? = adapter.getItem(position) diff --git a/app/src/main/java/com/chwl/app/home/fragment/HomeTabRoomFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/HomeTabRoomFragment.kt index 52d328a30..b0a40211c 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/HomeTabRoomFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/HomeTabRoomFragment.kt @@ -7,15 +7,15 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.chad.library.adapter.base.BaseQuickAdapter import com.chwl.app.R -import com.chwl.app.base.BaseViewBindingFragment -import com.chwl.app.home.HomeViewModel -import com.chwl.app.home.adapter.HomeRoomAdapter -import com.chwl.app.ui.utils.RVDelegate -import com.chwl.core.home.bean.HomeRoomInfo import com.chwl.app.avroom.activity.AVRoomActivity +import com.chwl.app.base.BaseViewBindingFragment import com.chwl.app.common.EmptyViewHelper import com.chwl.app.databinding.HomeTabRoomFragmentBinding +import com.chwl.app.home.HomeViewModel +import com.chwl.app.home.adapter.HomeRoomAdapter import com.chwl.app.support.FragmentVisibleStateHelper +import com.chwl.app.ui.utils.RVDelegate +import com.chwl.core.home.bean.HomeRoomInfo /** * 首页-房间列表 @@ -60,7 +60,7 @@ class HomeTabRoomFragment : BaseViewBindingFragment( } private fun initListView() { - adapter = HomeRoomAdapter() + adapter = HomeRoomAdapter(arrayListOf()) adapter.onItemClickListener = BaseQuickAdapter.OnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int -> val homePlayInfo: HomeRoomInfo? = adapter.getItem(position) diff --git a/app/src/main/java/com/chwl/app/home/fragment/MeFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/MeFragment.kt index 125a4408f..836f96054 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/MeFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/MeFragment.kt @@ -28,7 +28,6 @@ import com.chwl.app.home.helper.OpenRoomHelper import com.chwl.app.module_hall.HallDataManager import com.chwl.app.module_hall.hall.activity.ModuleClanActivity import com.chwl.app.module_hall.hall.activity.ModuleHallActivity -import com.chwl.app.music.activity.MusicListActivity import com.chwl.app.support.FragmentVisibleStateHelper import com.chwl.app.ui.im.RouterHandler import com.chwl.app.ui.relation.AttentionListActivity @@ -371,8 +370,7 @@ class MeFragment : BaseFragment(), View.OnClickListener { R.id.tv_user_name -> { //todo do 测试按钮 if (BuildConfig.DEBUG) { -// PhotoPickActivity.start(requireActivity(), PhotoPickActivity.GIF) - MusicListActivity.openLocalMusicList(context) + } } diff --git a/app/src/main/java/com/chwl/app/ui/widget/TopRoundLinearLayout.java b/app/src/main/java/com/chwl/app/ui/widget/TopRoundLinearLayout.java index 46c727ba7..4c38fc8ab 100644 --- a/app/src/main/java/com/chwl/app/ui/widget/TopRoundLinearLayout.java +++ b/app/src/main/java/com/chwl/app/ui/widget/TopRoundLinearLayout.java @@ -35,7 +35,11 @@ public class TopRoundLinearLayout extends LinearLayout { private void init() { mPath = new Path(); mPath.setFillType(Path.FillType.EVEN_ODD); - mRadius = ScreenUtil.dip2px(10); + mRadius = ScreenUtil.dip2px(16); + } + + public void setRadius(int mRadius) { + this.mRadius = mRadius; } private void checkPathChanged() { diff --git a/app/src/main/res/layout/activity_room_setting.xml b/app/src/main/res/layout/activity_room_setting.xml index 327a4ed4a..ba9858741 100644 --- a/app/src/main/res/layout/activity_room_setting.xml +++ b/app/src/main/res/layout/activity_room_setting.xml @@ -272,6 +272,8 @@ android:id="@+id/layout_theme" android:layout_width="match_parent" android:layout_height="44dp" + android:visibility="gone" + tools:visibility="visible" android:onClick="@{click}"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_room_bg_set.xml b/app/src/main/res/layout/dialog_room_bg_set.xml new file mode 100644 index 000000000..e2adc154e --- /dev/null +++ b/app/src/main/res/layout/dialog_room_bg_set.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/home_item_banner.xml b/app/src/main/res/layout/home_item_banner.xml new file mode 100644 index 000000000..534cc6088 --- /dev/null +++ b/app/src/main/res/layout/home_item_banner.xml @@ -0,0 +1,24 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_room_bg_set.xml b/app/src/main/res/layout/item_room_bg_set.xml new file mode 100644 index 000000000..77e7b9548 --- /dev/null +++ b/app/src/main/res/layout/item_room_bg_set.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ae73b0d85..256ddfac0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5324,6 +5324,18 @@ You cannot join again within 24 hours after leaving VIP Privilege Static Avatar + 房间背景 + 免费 + 自定义 + 创建 + in review + Original + %s /15Days + 15Days + Purchases Tips + Purchases Hint + Purchases Hint info + diff --git a/core/src/main/java/com/chwl/core/gift/bean/RoomBgInfo.java b/core/src/main/java/com/chwl/core/gift/bean/RoomBgInfo.java new file mode 100644 index 000000000..7c781205d --- /dev/null +++ b/core/src/main/java/com/chwl/core/gift/bean/RoomBgInfo.java @@ -0,0 +1,5 @@ +package com.chwl.core.gift.bean; + +public class RoomBgInfo { + +} diff --git a/library/src/main/java/com/chwl/library/widget/SVGAView.kt b/library/src/main/java/com/chwl/library/widget/SVGAView.kt index 670d25e18..76ee4b104 100644 --- a/library/src/main/java/com/chwl/library/widget/SVGAView.kt +++ b/library/src/main/java/com/chwl/library/widget/SVGAView.kt @@ -84,6 +84,16 @@ class SVGAView : SVGAImageView, ILog { onViewStateChanged(0) return } + + if (url?.endsWith(".svga") == false || url?.endsWith(".SVGA") == false) { + this.resourceUrl = null + this.setImageDrawable(null) + onViewStateChanged(0) + GlideUtils.instance().load(url,this) + return + } + + if (url == resourceUrl && drawable is SVGADrawable) { logD("loadUrl() 已加载 isAnimating:$isAnimating") if (!isAnimating) {