diff --git a/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt b/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt index c3f8b534a..ded4be529 100644 --- a/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt +++ b/app/src/main/java/com/chwl/app/avroom/fragment/BaseRoomFragment.kt @@ -287,7 +287,6 @@ open class BaseRoomFragment?> : // 刷新禮物列表,獲取房間專屬禮物列表 GiftModel.get().refreshGiftList(AvRoomDataManager.get().roomUid.toString()).subscribe() checkFollowOwner() - mvpPresenter?.loadRoomRank() GiftValueMrg.get().updateRoomGiftValue(false) //先隐藏航海冒险 @@ -496,6 +495,9 @@ open class BaseRoomFragment?> : if (isOnMic) { if (musicPlayerView == null) { musicPlayerView = mVsMusicPlayer?.inflate() as? MusicPlayerView + musicPlayerView?.let { + onInitMusicPlayerView(it) + } } musicPlayerView?.visibility = View.VISIBLE } else { @@ -618,11 +620,6 @@ open class BaseRoomFragment?> : sendMsg() } -// R.id.contribute_list -> { -// DialogWebViewActivity.start(mContext, UriProvider.getRoomRanking()) -// mvpPresenter?.loadRoomRank() -// } - R.id.iv_first_charge_enter -> FirstChargeDialog.start(mContext) // R.id.iv_treasure_box, // R.id.iv_treasure_box_cp -> GoldBoxHelper.handleBoxClick(mContext) @@ -1058,18 +1055,6 @@ open class BaseRoomFragment?> : microView.adapter.notifyDataSetChanged() } - override fun updateRoomRanks(data: List) { -// val avatarList = arrayListOf( -// mView.findViewById(R.id.iv_rank_0), -// mView.findViewById(R.id.iv_rank_1), -// mView.findViewById(R.id.iv_rank_2) -// ) -// -// for (i in 0 until avatarList.size) { -// avatarList[i]?.loadAvatar(data.getOrNull(i)?.avatar) -// } - } - private fun onSendGiftBtnClick(giftId: Int = 0) { if (giftDialog == null) { GiftDialog.GIFT_DIALOG_FROM = getString(R.string.room) @@ -1266,4 +1251,8 @@ open class BaseRoomFragment?> : protected open fun onEnterRoom(){ } + + protected open fun onInitMusicPlayerView(view: MusicPlayerView) { + + } } \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/avroom/fragment/HomePartyRoomFragment.java b/app/src/main/java/com/chwl/app/avroom/fragment/HomePartyRoomFragment.java index c0e0f3257..44d68bb4e 100644 --- a/app/src/main/java/com/chwl/app/avroom/fragment/HomePartyRoomFragment.java +++ b/app/src/main/java/com/chwl/app/avroom/fragment/HomePartyRoomFragment.java @@ -5,8 +5,12 @@ import android.os.Bundle; import android.text.TextUtils; import android.view.View; +import androidx.annotation.NonNull; import androidx.databinding.DataBindingUtil; +import com.chwl.app.avroom.rank.RoomRankWidget; +import com.chwl.app.music.widget.MusicPlayerView; +import com.chwl.app.ui.webview.DialogWebViewActivity; import com.netease.nim.uikit.common.util.log.LogUtil; import com.trello.rxlifecycle3.android.FragmentEvent; import com.chwl.app.R; @@ -36,7 +40,6 @@ import com.chwl.app.utils.UserUtils; import com.chwl.core.Constants; import com.chwl.core.UriProvider; import com.chwl.core.auth.AuthModel; -import com.chwl.core.home.bean.BannerInfo; import com.chwl.core.home.event.ShareRoomEvent; import com.chwl.core.im.custom.bean.RoomPKAttachment; import com.chwl.core.im.custom.bean.RoomPkBean; @@ -134,6 +137,7 @@ public class HomePartyRoomFragment extends BaseRoomFragment extends BaseMvpPresenter }); } - @SuppressLint("CheckResult") - public void loadRoomRank() { - String type = AvRoomDataManager.get().isSingleRoom() ? RoomContributeDataInfo.TYPE_ROOM_WEEK_RANKING : RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING; - RoomContributeListModel.get().getSingleRoomRanking(1, type) - .compose(bindToLifecycle()) - .compose(RxHelper.handleBeanData()) - .subscribe(roomContributeDataInfo -> { - if (getMvpView() == null) { - return; - } - getMvpView().updateRoomRanks(roomContributeDataInfo.getRankings()); - }); - } - /*** * 發送房間消息 * @param message diff --git a/app/src/main/java/com/chwl/app/avroom/rank/RoomRankWidget.kt b/app/src/main/java/com/chwl/app/avroom/rank/RoomRankWidget.kt new file mode 100644 index 000000000..5603f1ce1 --- /dev/null +++ b/app/src/main/java/com/chwl/app/avroom/rank/RoomRankWidget.kt @@ -0,0 +1,90 @@ +package com.chwl.app.avroom.rank + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.core.view.isVisible +import androidx.databinding.DataBindingUtil +import com.chwl.app.R +import com.chwl.app.databinding.RoomRankWidgetBinding +import com.chwl.app.ui.utils.loadAvatar +import com.chwl.app.ui.webview.DialogWebViewActivity +import com.chwl.core.UriProvider +import com.chwl.core.room.bean.RoomContributeDataInfo +import com.chwl.core.room.bean.RoomContributeUserInfo +import com.chwl.core.room.model.RoomContributeListModel +import com.chwl.core.support.room.FrameLayoutRoomWidget +import com.chwl.core.support.room.RoomContext +import com.chwl.core.support.room.RoomView +import com.chwl.core.support.room.RoomWidget +import com.chwl.core.utils.net.RxHelper +import com.example.lib_utils.ktx.singleClick + +/** + * 房间榜单入口 + */ +class RoomRankWidget : FrameLayoutRoomWidget, RoomWidget { + + private val binding: RoomRankWidgetBinding = + DataBindingUtil.inflate( + LayoutInflater.from( + context + ), R.layout.room_rank_widget, this, true + ) + + constructor(context: Context) : super(context) + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) + + init { + this.singleClick { + DialogWebViewActivity.start(context, UriProvider.getRoomRanking()) + refreshData() + } + } + + override fun onInitialize(roomView: RoomView, roomContext: RoomContext) { + super.onInitialize(roomView, roomContext) + refreshData() + } + + override fun onUnbindContext() { + super.onUnbindContext() + updateView(null) + } + + private fun refreshData() { + val disposable = RoomContributeListModel.get() + .getSingleRoomRanking(1, RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING) + .compose(RxHelper.handleBeanData()) + .subscribe { roomContributeDataInfo: RoomContributeDataInfo -> + updateView(roomContributeDataInfo.rankings) + } + getCompositeDisposable().add(disposable) + } + + private fun updateView(list: List?) { + arrayListOf( + binding.ivRank0, binding.ivRank1, binding.ivRank2 + ).forEachIndexed { index, imageView -> + val url = list?.getOrNull(index)?.avatar + if (url.isNullOrEmpty()) { + imageView.isVisible = false + } else { + imageView.loadAvatar(url) + imageView.isVisible = true + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/avroom/redpackage/RedPackageWidget.kt b/app/src/main/java/com/chwl/app/avroom/redpackage/RedPackageWidget.kt index bb59fca8d..b360e57c5 100644 --- a/app/src/main/java/com/chwl/app/avroom/redpackage/RedPackageWidget.kt +++ b/app/src/main/java/com/chwl/app/avroom/redpackage/RedPackageWidget.kt @@ -56,8 +56,6 @@ class RedPackageWidget : FrameLayoutRoomWidget, RoomWidget { ), R.layout.red_package_widget, this, true ) - private var compositeDisposable: CompositeDisposable? = null - constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( @@ -218,26 +216,14 @@ class RedPackageWidget : FrameLayoutRoomWidget, RoomWidget { getCompositeDisposable().add(disposable) } - private fun getCompositeDisposable(): CompositeDisposable { - var disposable = compositeDisposable - if (disposable == null) { - disposable = CompositeDisposable() - compositeDisposable = disposable - } - return disposable - } - override fun onStop() { super.onStop() this.dialogManager?.dismissDialog() this.dialogManager = null - this.roomView = null } override fun onUnbindContext() { super.onUnbindContext() - compositeDisposable?.dispose() - compositeDisposable = null loadData(null) } diff --git a/app/src/main/java/com/chwl/app/avroom/view/IBaseRoomView.kt b/app/src/main/java/com/chwl/app/avroom/view/IBaseRoomView.kt index 829ae8c1f..a7c50aa15 100644 --- a/app/src/main/java/com/chwl/app/avroom/view/IBaseRoomView.kt +++ b/app/src/main/java/com/chwl/app/avroom/view/IBaseRoomView.kt @@ -71,6 +71,4 @@ interface IBaseRoomView : IMvpBaseView { fun updateMicView() - fun updateRoomRanks(data: List) - } \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/ic_single_room_rank.webp b/app/src/main/res/drawable-xhdpi/ic_single_room_rank.webp deleted file mode 100644 index a94ec675d..000000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_single_room_rank.webp and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/room_ic_hour_rank.webp b/app/src/main/res/drawable-xxhdpi/room_ic_hour_rank.webp new file mode 100644 index 000000000..30e123270 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/room_ic_hour_rank.webp differ diff --git a/app/src/main/res/drawable-xxhdpi/room_ic_music.webp b/app/src/main/res/drawable-xxhdpi/room_ic_music.webp new file mode 100644 index 000000000..335a6612b Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/room_ic_music.webp differ diff --git a/app/src/main/res/drawable/room_bg_hour_rank.xml b/app/src/main/res/drawable/room_bg_hour_rank.xml new file mode 100644 index 000000000..bd2d54f8c --- /dev/null +++ b/app/src/main/res/drawable/room_bg_hour_rank.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/room_rank_widget_bg.xml b/app/src/main/res/drawable/room_rank_widget_bg.xml new file mode 100644 index 000000000..d962ed74c --- /dev/null +++ b/app/src/main/res/drawable/room_rank_widget_bg.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/room_rank_widget.xml b/app/src/main/res/layout/room_rank_widget.xml new file mode 100644 index 000000000..2d05b65bc --- /dev/null +++ b/app/src/main/res/layout/room_rank_widget.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/module_mini_world/res/layout/fragment_av_room_game.xml b/app/src/module_mini_world/res/layout/fragment_av_room_game.xml index f508b0fa7..eaeb35cf3 100644 --- a/app/src/module_mini_world/res/layout/fragment_av_room_game.xml +++ b/app/src/module_mini_world/res/layout/fragment_av_room_game.xml @@ -24,14 +24,13 @@ + android:layout_height="wrap_content" /> + + + + + + + + + + + + + app:layout_constraintTop_toBottomOf="@id/iv_music" /> showBoxInAnim()); + } + + @Override + public void setVisibility(int visibility) { + super.setVisibility(visibility); + if (musicFlagLayout != null) { + this.musicFlagLayout.setVisibility(visibility); + } + if (musicFlag != null) { + this.musicFlag.setVisibility(visibility); + } + } } diff --git a/app/src/module_music/res/drawable-xhdpi/icon_music_flag.webp b/app/src/module_music/res/drawable-xhdpi/icon_music_flag.webp deleted file mode 100644 index 1e24f3ebf..000000000 Binary files a/app/src/module_music/res/drawable-xhdpi/icon_music_flag.webp and /dev/null differ diff --git a/app/src/module_music/res/layout/layout_music_player_view.xml b/app/src/module_music/res/layout/layout_music_player_view.xml index c712ae044..7fb06d861 100644 --- a/app/src/module_music/res/layout/layout_music_player_view.xml +++ b/app/src/module_music/res/layout/layout_music_player_view.xml @@ -4,34 +4,6 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - - - - + +