[BugFix]房间排行榜前三头像回显

This commit is contained in:
DESKTOP-ICQKP58\H1
2023-04-25 16:02:19 +08:00
parent 34b061996f
commit 2f238e0447
21 changed files with 659 additions and 127 deletions

View File

@@ -91,7 +91,6 @@
android:icon="@mipmap/app_logo"
android:label="@string/app_name"
android:largeHeap="true"
android:requestLegacyExternalStorage="true"
android:resizeableActivity="true"
android:supportsRtl="true"
android:theme="@style/MyMaterialTheme"
@@ -406,12 +405,7 @@
android:configChanges="keyboardHidden|orientation|screenSize|locale"
android:theme="@android:style/Theme.Translucent" />
<activity
android:name="com.alipay.sdk.auth.AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" />
<activity
android:name="com.nnbc123.core.pay.PaymentActivity"
android:launchMode="singleTask"

View File

@@ -0,0 +1,17 @@
package com.nnbc123.app.avroom.event;
/**
* 进房通知
*/
public class EnterRoomEvent {
private final int mType;
public EnterRoomEvent(int type) {
this.mType = type;
}
public int getType() {
return mType;
}
}

View File

@@ -280,7 +280,6 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
// 刷新礼物列表,获取房间专属礼物列表
GiftModel.get().refreshGiftList(AvRoomDataManager.get().roomUid.toString()).subscribe()
checkFollowOwner()
mvpPresenter?.loadRoomRank()
GiftValueMrg.get().updateRoomGiftValue(false)
ivRadishEntrance?.isVisible = GoldBoxHelper.isShowRadish()

View File

@@ -6,6 +6,8 @@ import android.os.Bundle
import android.view.Gravity
import android.view.View
import android.view.ViewConfiguration
import android.widget.ImageView
import androidx.core.content.ContextCompat
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
@@ -20,6 +22,7 @@ import com.nnbc123.app.avroom.activity.AVRoomActivity
import com.nnbc123.app.avroom.activity.RoomOnlineUserActivity
import com.nnbc123.app.avroom.adapter.SelectGameAdapter
import com.nnbc123.app.avroom.dialog.ExitRoomPopupWindow.Companion.newInstance
import com.nnbc123.app.avroom.event.EnterRoomEvent
import com.nnbc123.app.base.BaseFragment
import com.nnbc123.app.databinding.FragmentChatroomGameMainBinding
import com.nnbc123.app.friend.view.SelectFriendActivity
@@ -31,10 +34,12 @@ import com.nnbc123.app.ui.widget.ShareDialog.OnShareDialogItemClick
import com.nnbc123.app.utils.RegexUtil
import com.nnbc123.app.vip.VipMainActivity
import com.nnbc123.core.UriProvider
import com.nnbc123.core.bean.response.ServiceResult
import com.nnbc123.core.gift.bean.GiftMultiReceiverInfo
import com.nnbc123.core.gift.bean.GiftReceiveInfo
import com.nnbc123.core.gift.bean.LuckyBagGifts
import com.nnbc123.core.gift.bean.MultiGiftReceiveInfo
import com.nnbc123.core.home.bean.BannerInfo
import com.nnbc123.core.home.event.FollowRoomEvent
import com.nnbc123.core.home.event.ShareRoomEvent
import com.nnbc123.core.home.model.CollectionRoomModel
@@ -60,11 +65,13 @@ import com.nnbc123.core.statistic.protocol.StatisticsProtocol
import com.nnbc123.core.super_admin.util.SuperAdminUtil
import com.nnbc123.core.user.UserModel
import com.nnbc123.core.user.bean.UserInfo
import com.nnbc123.core.utils.LogUtils
import com.nnbc123.core.utils.net.RxHelper
import com.nnbc123.library.rxbus.RxBus
import com.nnbc123.library.utils.FormatUtils
import com.nnbc123.library.utils.JavaUtil
import com.nnbc123.library.utils.SingleToastUtil
import com.tencent.bugly.proguard.A
import com.trello.rxlifecycle3.android.FragmentEvent
import io.reactivex.SingleObserver
import io.reactivex.disposables.Disposable
@@ -160,6 +167,28 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
AvRoomDataManager.get().mIsNeedGiftEffect =
AvRoomDataManager.get().mCurrentRoomInfo?.isHasAnimationEffect ?: false
}
IMNetEaseManager.get().chatRoomEventObservable
.compose(bindToLifecycle())
.subscribe { roomEvent: RoomEvent? ->
if (roomEvent == null) return@subscribe
LogUtils.d(roomEvent.event.toString())
when (roomEvent.event) {
RoomEvent.ENTER_ROOM -> {
updateOnlineNumberView(
AvRoomDataManager.get().mCurrentRoomInfo?.onlineNum ?: 0
)
addTipMsg()
setRoomBg(AvRoomDataManager.get().mCurrentRoomInfo)
updateView()
}
RoomEvent.ROOM_INFO_UPDATE -> {
setRoomBg(AvRoomDataManager.get().mCurrentRoomInfo)
updateView()
}
else -> {
}
}
}
}
private fun initRvGame() {
@@ -236,8 +265,6 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
@SuppressLint("CheckResult")
override fun onResume() {
super.onResume()
updateView(AvRoomDataManager.get().mCurrentRoomInfo)
loadRoomRank()
IMNetEaseManager.get().chatRoomEventObservable
.compose(bindToLifecycle())
.subscribe { roomEvent: RoomEvent? ->
@@ -265,6 +292,7 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
else -> {}
}
}
loadRoomRank()
}
private fun onReceiveLuckyGiftToMultiMsg(giftMultiReceiverInfo: LuckyBagGifts?) {
@@ -292,6 +320,7 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
tipMessage.content = "礼物特效"
IMNetEaseManager.get().addCloseScreenMessages(tipMessage)
}
loadRoomRank()
}
private fun setIdOnlineData() {
@@ -321,18 +350,45 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
}
@SuppressLint("CheckResult")
fun updateView(currentRoomInfo: RoomInfo?) {
if (currentRoomInfo != null) {
fun updateView(currentRoomInfo: RoomInfo?=null) {
(currentRoomInfo ?: AvRoomDataManager.get().mCurrentRoomInfo)?.let {
binding.roomInfo=it
updateHasAnimationEffect()
binding.roomTitle.text=RegexUtil.getPrintableString(it.getTitle())
if (!StringUtil.isEmpty(it.getRoomPwd())){
binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds(
0,0,R.drawable.icon_room_lock,0
)
}else{
binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds(
0,0,0,0
)
}
binding.tvFollowRoom.visibility=
if (AvRoomDataManager.get().isRoomOwner)View.GONE else View.VISIBLE
FOLLOW_ROOM_TYPE=if (AvRoomDataManager.get().isRoomFans) "2" else "1"
binding.tvFollowRoom.text = if (AvRoomDataManager.get().isRoomFans) "已收藏" else "收藏"
binding.tvFollowRoom.setTextColor(
if (AvRoomDataManager.get().isRoomFans) ContextCompat.getColor(
mContext,
R.color.white
) else ContextCompat.getColor(mContext, R.color.color_FFE285)
)
binding.tvFollowRoom.setBackgroundResource(if (AvRoomDataManager.get().isRoomFans) R.drawable.bg_room_follow_room_collected else R.drawable.bg_room_follow_room)
var tempFragment = roomFragment
when (currentRoomInfo.type) {
RoomInfo.ROOMTYPE_GAME -> if (tempFragment !is GameRoomFragment) {
tempFragment = GameRoomFragment.newInstance()
}
RoomInfo.ROOM_TYPE_SINGLE -> if (tempFragment !is SingleRoomFragment) {
tempFragment = SingleRoomFragment.newInstance()
}
else -> if (tempFragment !is HomePartyRoomFragment) {
tempFragment = HomePartyRoomFragment.newInstance()
if (currentRoomInfo != null) {
when (currentRoomInfo.type) {
RoomInfo.ROOMTYPE_GAME -> if (tempFragment !is GameRoomFragment) {
tempFragment = GameRoomFragment.newInstance()
}
RoomInfo.ROOM_TYPE_SINGLE -> if (tempFragment !is SingleRoomFragment) {
tempFragment = SingleRoomFragment.newInstance()
}
else -> if (tempFragment !is HomePartyRoomFragment) {
tempFragment = HomePartyRoomFragment.newInstance()
}
}
}
if (tempFragment !== roomFragment) {
@@ -344,47 +400,22 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
}
binding.roomInfo = currentRoomInfo
updateHasAnimationEffect()
binding.roomTitle.text = RegexUtil.getPrintableString(currentRoomInfo.getTitle())
if (!StringUtil.isEmpty(currentRoomInfo.getRoomPwd())) {
binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds(
null, null,
resources.getDrawable(R.drawable.icon_room_lock), null
)
} else {
binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null)
if (currentRoomInfo != null) {
binding.roomTitle.text = RegexUtil.getPrintableString(currentRoomInfo.getTitle())
}
if (currentRoomInfo != null) {
if (!StringUtil.isEmpty(currentRoomInfo.getRoomPwd())) {
binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds(
null, null,
resources.getDrawable(R.drawable.icon_room_lock), null
)
} else {
binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null)
}
}
setupFollowRoom()
FOLLOW_ROOM_TYPE = if (AvRoomDataManager.get().isRoomFans) "2" else "1"
setIdOnlineData()
if (isShowChangeGame) {
initRvGame()
binding.llChangeGame.visibility = View.VISIBLE
if (AvRoomDataManager.get().isOpenGame) {
binding.tvCurrGame.text = currentRoomInfo.mgName
} else {
binding.tvCurrGame.text = "扩列交友"
}
getGameList()
.compose(bindToLifecycle())
.map { it.toMutableList() }
.subscribe { gameInfos: MutableList<GameInfo> ->
if (AvRoomDataManager.get().isOpenGame) {
for (i in gameInfos.indices) {
val (_, mgId) = gameInfos[i]
if (JavaUtil.str2long(mgId) == currentRoomInfo.mgId) {
gameInfos.removeAt(i)
break
}
}
val gameInfo = GameInfo()
gameInfo.name = "扩列交友"
gameInfos.add(gameInfo)
}
gameAdapter?.setNewData(gameInfos)
}
} else {
binding.llChangeGame.visibility = View.GONE
}
}
}
@@ -403,7 +434,10 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
fun updateHasAnimation(event: HasAnimationEffect?) {
updateHasAnimationEffect()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun enterRoomEvent(event: EnterRoomEvent?) {
loadRoomRank()
}
override fun onClick(v: View) {
when (v.id) {
R.id.room_more -> newInstance((requireActivity() as AVRoomActivity))
@@ -422,10 +456,17 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
.onEvent(StatisticsProtocol.EVENT_ROOM_RETURN_CLICK, "房间返回按钮点击")
}
R.id.ll_rank -> {
DialogWebViewActivity.start(mContext, UriProvider.getRoomRanking())
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_MP_ROOM_RANKING_LIST_CLICK, "房间榜")
loadRoomRank()
if (AvRoomDataManager.get().isCpRoom) {
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_CP_ROOM_RANKING_LIST_CLICK, "房间榜")
} else StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_MP_ROOM_RANKING_LIST_CLICK, "房间榜")
if (childFragmentManager.findFragmentByTag("dialog_fragment_room_rank") != null) {
return
}
val roomRankDialogFragment = RoomRankDialogFragment.newInstance()
roomRankDialogFragment.show(childFragmentManager, "dialog_fragment_room_rank")
}
else -> {}
}
@@ -466,16 +507,28 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
@SuppressLint("CheckResult")
fun loadRoomRank() {
val type =
if (AvRoomDataManager.get().isSingleRoom) {
RoomContributeDataInfo.TYPE_ROOM_WEEK_RANKING
} else {
RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING
}
if (AvRoomDataManager.get().isSingleRoom) RoomContributeDataInfo.TYPE_ROOM_MONTH_RANKING else RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING
RoomContributeListModel.get().getSingleRoomRanking(1, type)
.compose(bindToLifecycle())
.compose(RxHelper.handleBeanData())
.subscribe { roomContributeDataInfo: RoomContributeDataInfo ->
val rankings = roomContributeDataInfo.rankings
updateRoomRanks(roomContributeDataInfo.rankings)
var imageView: ImageView
val avatarList = listOf(
binding.ivRank0,
binding.ivRank1,
binding.ivRank2
)
for (i in avatarList.indices) {
imageView = avatarList[i]
if (rankings.size > i) {
val info = rankings[i]
imageView.loadAvatar(info.avatar)
} else {
imageView.setImageResource(R.drawable.default_avatar)
}
}
}
}
@@ -565,11 +618,9 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
}
}
override fun onDestroyView() {
super.onDestroyView()
override fun onDestroy() {
EventBus.getDefault().unregister(this)
binding.vsGiftView.release()
_binding = null
super.onDestroy()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
@@ -581,6 +632,7 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte
updateOnlineNumberView(onlineNumber)
}
/**
* 普通多人
*

View File

@@ -4,24 +4,60 @@ import android.annotation.SuppressLint;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import androidx.databinding.DataBindingUtil;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.nnbc123.app.R;
import com.nnbc123.app.avroom.activity.AVRoomActivity;
import com.nnbc123.app.avroom.adapter.BaseMicroViewAdapter;
import com.nnbc123.app.avroom.adapter.CpMicroViewAdapter;
import com.nnbc123.app.avroom.adapter.DatingMicroViewAdapter;
import com.nnbc123.app.avroom.adapter.MicroViewAdapter;
import com.nnbc123.app.avroom.anotherroompk.RoomPkFinishDialog;
import com.nnbc123.app.avroom.anotherroompk.RoomPkForceFinishDialog;
import com.nnbc123.app.avroom.anotherroompk.RoomPkReceivedDialog;
import com.nnbc123.app.avroom.dialog.MicQueueDialog;
import com.nnbc123.app.avroom.dialog.PKMicQueueDialog;
import com.nnbc123.app.avroom.dialog.PKResultDialog;
import com.nnbc123.app.avroom.dialog.PKScoreBoardDialog;
import com.nnbc123.app.avroom.event.EnterRoomEvent;
import com.nnbc123.app.avroom.firstcharge.FirstChargePrizeDialog;
import com.nnbc123.app.avroom.giftvalue.GiftValueDialogUiHelper;
import com.nnbc123.app.avroom.presenter.HomePartyPresenter;
import com.nnbc123.app.avroom.view.IHomePartyView;
import com.nnbc123.app.avroom.widget.PKBoardView;
import com.nnbc123.app.base.BaseMvpActivity;
import com.nnbc123.app.common.widget.dialog.DialogManager;
import com.nnbc123.app.databinding.FragmentAvRoomGameBinding;
import com.nnbc123.app.ui.utils.ImageLoadKt;
import com.nnbc123.app.ui.webview.DatingRuleWebViewActivity;
import com.nnbc123.app.ui.webview.DialogWebViewActivity;
import com.nnbc123.app.utils.UserUtils;
import com.nnbc123.core.Constants;
import com.nnbc123.core.UriProvider;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.gift.GiftModel;
import com.nnbc123.core.home.bean.BannerInfo;
import com.nnbc123.core.home.event.ShareRoomEvent;
import com.nnbc123.core.im.custom.bean.RoomPKAttachment;
import com.nnbc123.core.im.custom.bean.RoomPkBean;
import com.nnbc123.core.initial.InitialModel;
import com.nnbc123.core.initial.bean.InitInfo;
import com.nnbc123.core.manager.AvRoomDataManager;
import com.nnbc123.core.manager.IMNetEaseManager;
import com.nnbc123.core.manager.RoomEvent;
import com.nnbc123.core.market_verify.MarketVerifyModel;
import com.nnbc123.core.mentoring_relationship.event.MentoringStartCountingEvent;
import com.nnbc123.core.mentoring_relationship.event.MentoringStopCountingEvent;
import com.nnbc123.core.pay.event.FirstChargeEvent;
import com.nnbc123.core.room.bean.RoomContributeUserInfo;
import com.nnbc123.core.room.bean.RoomInfo;
import com.nnbc123.core.room.event.DatingSelectUserEvent;
import com.nnbc123.core.room.face.DynamicFaceModel;
import com.nnbc123.core.room.face.FaceInfo;
import com.nnbc123.core.room.giftvalue.helper.GiftValueMrg;
import com.nnbc123.core.room.model.AvRoomModel;
import com.nnbc123.core.room.model.MicQueueModel;
import com.nnbc123.core.room.pk.bean.PKRespQueuingMicListInfo;
@@ -36,43 +72,22 @@ import com.nnbc123.core.statistic.protocol.StatisticsProtocol;
import com.nnbc123.core.super_admin.util.SuperAdminUtil;
import com.nnbc123.core.user.UserModel;
import com.nnbc123.core.utils.CurrentTimeUtils;
import com.nnbc123.app.R;
import com.nnbc123.app.avroom.activity.AVRoomActivity;
import com.nnbc123.app.avroom.adapter.BaseMicroViewAdapter;
import com.nnbc123.app.avroom.adapter.CpMicroViewAdapter;
import com.nnbc123.app.avroom.adapter.DatingMicroViewAdapter;
import com.nnbc123.app.avroom.adapter.MicroViewAdapter;
import com.nnbc123.app.avroom.anotherroompk.RoomPkFinishDialog;
import com.nnbc123.app.avroom.anotherroompk.RoomPkForceFinishDialog;
import com.nnbc123.app.avroom.anotherroompk.RoomPkReceivedDialog;
import com.nnbc123.app.avroom.dialog.MicQueueDialog;
import com.nnbc123.app.avroom.dialog.PKMicQueueDialog;
import com.nnbc123.app.avroom.dialog.PKResultDialog;
import com.nnbc123.app.avroom.dialog.PKScoreBoardDialog;
import com.nnbc123.app.avroom.firstcharge.FirstChargePrizeDialog;
import com.nnbc123.app.avroom.giftvalue.GiftValueDialogUiHelper;
import com.nnbc123.app.avroom.presenter.HomePartyPresenter;
import com.nnbc123.app.avroom.view.IHomePartyView;
import com.nnbc123.app.avroom.widget.PKBoardView;
import com.nnbc123.app.base.BaseMvpActivity;
import com.nnbc123.app.common.widget.dialog.DialogManager;
import com.nnbc123.app.databinding.FragmentAvRoomGameBinding;
import com.nnbc123.app.ui.webview.DatingRuleWebViewActivity;
import com.nnbc123.app.ui.webview.DialogWebViewActivity;
import com.nnbc123.app.utils.UserUtils;
import com.nnbc123.library.base.factory.CreatePresenter;
import com.nnbc123.library.utils.SingleToastUtil;
import com.nnbc123.library.utils.TimeUtils;
import com.nnbc123.library.utils.UIUtils;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.orhanobut.logger.Logger;
import com.trello.rxlifecycle3.android.FragmentEvent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
@@ -307,6 +322,44 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
gameBinding.llRoomPkOrder.setVisibility(View.GONE);
}
}
@SuppressLint("CheckResult")
private void onEnterRoom() {
Logger.i("进入房间事件");
gameBinding.setRoomInfo(AvRoomDataManager.get().mCurrentRoomInfo);
if (AvRoomDataManager.get().mCurrentRoomInfo != null
&& IMNetEaseManager.get().mCacheRoomQueueInfo != null
&& !AvRoomDataManager.get().isFirstEnterRoomOrChangeOtherRoom(AvRoomDataManager.get().mCurrentRoomInfo.getUid())) {
getMvpPresenter().chatRoomReConnect(IMNetEaseManager.get().mCacheRoomQueueInfo);
}
cpRoomAutoUpMic();
getMvpPresenter().leaveModeCheck();
updateView();
updateMicBtn();
updateQueuingMicBtn();
updatePkScoreBoard();
if (AvRoomDataManager.get().isFromMentoring() && Objects.equals(AvRoomDataManager.get().getMasterUid(),
AvRoomDataManager.get().mCurrentRoomInfo.getUid())) {
// 只有从任务三分享房间链接进来的时候才开始倒计时
EventBus.getDefault().post(new MentoringStartCountingEvent());
} else {
EventBus.getDefault().post(new MentoringStopCountingEvent());
}
GiftValueMrg.get().updateRoomGiftValue(false);
GiftModel.get().refreshGiftList(String.valueOf(AvRoomDataManager.get().getRoomUid())).subscribe();
getMvpPresenter().loadRoomRank();
EventBus.getDefault().post(new EnterRoomEvent(AvRoomDataManager.get().mCurrentRoomInfo.getType()));
UserModel.get().getCurrentUserInfo()
.compose(bindToLifecycle())
.subscribe(userInfo -> {
if (userInfo.isFirstCharge()) {
gameBinding.ivFirstChargeEnter.setVisibility(View.VISIBLE);
}
InitInfo initInfo = InitialModel.get().getCacheInitInfo();
});
updatePkScoreBoard();
}
/**
* cp房自动上麦
@@ -943,6 +996,28 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
.subscribe();
}
@Override
public void updateRoomRanks(ArrayList<RoomContributeUserInfo> rankings) {
List<ImageView> avatarList = Arrays.asList(
mView.findViewById(R.id.iv_rank_0),
mView.findViewById(R.id.iv_rank_1),
mView.findViewById(R.id.iv_rank_2)
);
RoomContributeUserInfo info = null;
ImageView imageView;
for (int i = 0; i < avatarList.size(); i++) {
imageView = avatarList.get(i);
if (rankings.size() > i) {
info = rankings.get(i);
ImageLoadKt.loadAvatar(imageView, info.getAvatar());
} else {
imageView.setImageResource(R.drawable.default_avatar);
}
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onFirstRechargeEvent(FirstChargeEvent event) {

View File

@@ -529,9 +529,9 @@ public class BaseRoomPresenter<V extends IBaseRoomView> extends BaseMvpPresenter
.compose(bindToLifecycle())
.compose(RxHelper.handleBeanData())
.subscribe(roomContributeDataInfo -> {
if (getMvpView() == null) {
return;
}
// if (getMvpView() == null) {
// return;
// }
getMvpView().updateRoomRanks(roomContributeDataInfo.getRankings());
});
}

View File

@@ -21,16 +21,19 @@ import com.nnbc123.core.manager.AvRoomDataManager;
import com.nnbc123.core.manager.IMNetEaseManager;
import com.nnbc123.core.manager.RoomEvent;
import com.nnbc123.core.room.bean.DragonBarInfo;
import com.nnbc123.core.room.bean.RoomContributeDataInfo;
import com.nnbc123.core.room.bean.RoomInfo;
import com.nnbc123.core.room.dragonball.DragonBallModel;
import com.nnbc123.core.room.face.FaceInfo;
import com.nnbc123.core.room.face.FaceReceiveInfo;
import com.nnbc123.core.room.giftvalue.helper.GiftValueMrg;
import com.nnbc123.core.room.model.RoomContributeListModel;
import com.nnbc123.core.room.model.RoomSettingModel;
import com.nnbc123.core.room.queue.bean.MicMemberInfo;
import com.nnbc123.core.user.UserModel;
import com.nnbc123.core.user.bean.UserInfo;
import com.nnbc123.core.utils.net.BeanObserver;
import com.nnbc123.core.utils.net.RxHelper;
import com.nnbc123.library.utils.SingleToastUtil;
import com.nnbc123.library.utils.config.BasicConfig;
@@ -302,4 +305,17 @@ public class HomePartyPresenter extends BaseRoomPresenter<IHomePartyView> {
getMvpView().onShowBanner(bannerInfos);
});
}
@SuppressLint("CheckResult")
public void loadRoomRank() {
String type = AvRoomDataManager.get().isSingleRoom() ? RoomContributeDataInfo.TYPE_ROOM_MONTH_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());
});
}
}

View File

@@ -1,8 +1,10 @@
package com.nnbc123.app.avroom.view;
import com.nnbc123.core.home.bean.BannerInfo;
import com.nnbc123.core.room.bean.RoomContributeUserInfo;
import com.nnbc123.core.room.bean.RoomInfo;
import java.util.ArrayList;
import java.util.List;
/**
@@ -22,4 +24,6 @@ public interface IHomePartyView extends IBaseRoomView {
void onGiftValueChangeMic(int micPosition, String uId, boolean isInviteUpMic, RoomInfo roomInfo);
void onShowBanner(List<BannerInfo> bannerInfos);
void updateRoomRanks(ArrayList<RoomContributeUserInfo> rankings);
}

View File

@@ -9,6 +9,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.nnbc123.app.R
import com.nnbc123.app.avroom.activity.AVRoomActivity
import com.nnbc123.app.bills.widget.BillItemView
import com.nnbc123.app.ui.im.avtivity.NimP2PMessageActivity
import com.nnbc123.app.ui.user.UserInfoActivity
import com.nnbc123.app.ui.utils.loadAvatar
@@ -56,6 +57,7 @@ class RoomNewFriendsAdapter : BaseQuickAdapter<UserInfo, BaseViewHolder>(R.layou
llOnline.setOnClickListener {
AVRoomActivity.start(mContext, item.inRoomUid)
}
} else {
viewOnline.isVisible = false
svgaLiving.setImageResource(R.drawable.ic_new_friends_msg)
@@ -74,19 +76,11 @@ class RoomNewFriendsAdapter : BaseQuickAdapter<UserInfo, BaseViewHolder>(R.layou
VipHelper.loadVipNickColor(tvNickname, item.userVipInfoVO, "#282828")
VipHelper.loadVipIcon(helper.getView(R.id.iv_vip_icon), item.userVipInfoVO)
}
override fun onViewAttachedToWindow(holder: BaseViewHolder) {
super.onViewAttachedToWindow(holder)
val svgaLives = holder.getView<SVGAImageView>(R.id.svga_living)
svgaLives.startAnimation()
}
val svgaLiving = holder.getView<SVGAImageView>(R.id.svga_living)
svgaLiving?.loadFromAssets("svga/home_living.svga")
override fun onViewDetachedFromWindow(holder: BaseViewHolder) {
super.onViewDetachedFromWindow(holder)
val svgaLives = holder.getView<SVGAImageView>(R.id.svga_living)
svgaLives.stopAnimation(false)
}

View File

@@ -56,10 +56,12 @@ import com.nnbc123.core.room.bean.RoomInfo
import com.nnbc123.core.statistic.StatisticManager
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
import com.nnbc123.core.user.UserModel
import com.nnbc123.core.user.bean.UserExpInfo
import com.nnbc123.core.user.bean.UserInfo
import com.nnbc123.core.user.event.LoginUserInfoUpdateEvent
import com.nnbc123.core.utils.CurrentTimeUtils
import com.nnbc123.core.utils.StarUtils
import com.nnbc123.core.utils.net.BeanObserver
import com.nnbc123.core.utils.toast
import com.trello.rxlifecycle3.android.FragmentEvent
import io.reactivex.Observable
@@ -238,12 +240,21 @@ class MeFragment : BaseFragment(), View.OnClickListener {
override fun onResume() {
super.onResume()
setUserData()
if(mUserInfo!=null && mUserInfo!!.isReview){
if (mUserInfo?.isReview == true) {
requestUpdateUserInfo()
}
initUserDate()
}
@SuppressLint("CheckResult")
private fun initUserDate() {
UserModel.get().currentUserInfo
.compose(bindToLifecycle())
.subscribe { userInfo: UserInfo? ->
mUserInfo = userInfo
setUserData()
}
}
@SuppressLint("SetTextI18n")
private fun setUserData() {

View File

@@ -17,6 +17,7 @@ import androidx.annotation.Nullable;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.coorchice.library.SuperTextView;
import com.netease.nim.uikit.api.NimUIKit;
import com.netease.nim.uikit.api.model.contact.ContactChangedObserver;
import com.netease.nim.uikit.api.model.main.OnlineStateChangeObserver;
@@ -34,17 +35,14 @@ import com.netease.nimlib.sdk.msg.model.CustomNotification;
import com.nnbc123.app.R;
import com.nnbc123.app.avroom.activity.AVRoomActivity;
import com.nnbc123.app.common.widget.CustomImageSpan;
import com.nnbc123.app.mentoring_relationship.dialog.BuildMentoringRelationshipSuccessDialog;
import com.nnbc123.app.ui.im.audio.ShakeHeartDialogFragment;
import com.nnbc123.app.ui.im.fragment.MessageFragment;
import com.nnbc123.app.ui.user.UserInfoActivity;
import com.nnbc123.app.ui.utils.ImageLoadUtils;
import com.nnbc123.app.mentoring_relationship.dialog.BuildMentoringRelationshipSuccessDialog;
import com.nnbc123.core.audio.event.VoiceShakeHeartEvent;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.im.friend.IMFriendModel;
import com.nnbc123.core.initial.InitialModel;
import com.nnbc123.core.initial.bean.InitInfo;
import com.nnbc123.core.level.UserLevelVo;
import com.nnbc123.core.mentoring_relationship.event.MentoringSuccessEvent;
import com.nnbc123.core.noble.NobleUtil;
import com.nnbc123.core.praise.PraiseModel;
@@ -94,10 +92,14 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity {
}
showCommandMessage(message);
};
private ImageView ivAvatar;
private TextView tvMessage;
private TextView tvDesc;
private TextView ivAddBlackList;
private TextView tvTips;
private View tipsLayout;
private ImageView closeIcon;
private SuperTextView ivAttention;
@Nullable
private UserInfo buddyUserInfo;
private final ContactChangedObserver friendDataChangedObserver = new ContactChangedObserver() {
@@ -121,7 +123,7 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity {
displayAntiFraudTips();
}
};
private ImageView ivAttention;
private UserInfoObserver uinfoObserver;
public static void start(Context context, String contactId) {
@@ -167,7 +169,7 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity {
IMFriendModel.get().addCloseTipsAccount(sessionId);
tipsLayout.setVisibility(View.GONE);
});
ivAttention = (ImageView) findViewById(R.id.iv_attention);
// 单聊特例话数据,包括个人信息,黑名单
addBlackList();
requestBuddyInfo();
@@ -285,8 +287,18 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity {
if (AuthModel.get().getCurrentUid() != userInfo.getUid() && !SystemUidUtil.isSystemUid(sessionId)) {
PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), userInfo.getUid()).subscribe();
}
buddyUserInfo = userInfo;
displayAntiFraudTips();
if (AuthModel.get().getCurrentUid() != userInfo.getUid()) {
PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), userInfo.getUid()).subscribe();
}
ivAvatar = (ImageView) findViewById(R.id.iv_avatar);
ImageLoadUtils.loadAvatar(userInfo.getAvatar(),ivAvatar);
tvMessage = (TextView) findViewById(R.id.tv_message);
tvMessage.setText(userTitleName);
tvDesc = (TextView) findViewById(R.id.tv_desc);
tvDesc.setText(userInfo.getUserDesc());
}
});

View File

@@ -351,6 +351,7 @@
android:layout_height="match_parent" />
<com.nnbc123.app.avroom.widget.RoomEffectView
android:id="@+id/room_effect_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />

View File

@@ -131,7 +131,7 @@
<com.nnbc123.app.common.widget.CircleImageView
android:id="@+id/iv_avatar_2"
android:layout_width="22dp"
android:layout_width="17dp"
android:layout_height="22dp"
android:layout_marginStart="36dp"
android:src="@drawable/default_avatar"

View File

@@ -597,7 +597,7 @@
<color name="color_60_FFFFFF">#99FFFFFF</color>
<color name="color_10_FFFFFF">#1AFFFFFF</color>
<color name="color_FFE285">#FFE285</color>
<color name="color_40_333333">#66333333</color>
<color name="color_30_ffce4e">#4DFFCE4E</color>
<color name="color_c6c6e9">#c6c6e9</color>

View File

@@ -118,6 +118,7 @@ public interface StatisticsProtocol {
String EVENT_MP_ROOM_SMASH_EGG_CLICK = "mp_room_smashEgg_click"; // 砸蛋入口
String EVENT_MP_ROOM_SMASHEGG_CHOOSE = "mp_room_smashEgg_choose"; // 开始砸蛋-多人房
String EVENT_MP_ROOM_RANKING_LIST_CLICK = "mp_room_rankingList_click"; // 房间榜
String EVENT_CP_ROOM_RANKING_LIST_CLICK=("cp_room_rankingList_click");// 房间榜
String EVENT_MP_ROOM_SET_TOPIC_CLICK = "mp_room_setTopic_click"; // 设置房间话题
String EVENT_MP_ROOM_CLOSE_MIC_CLICK = "mp_room_close_mic_click"; // 关闭麦克风
String EVENT_MP_ROOM_CLOSE_SOUND_CLICK = "mp_room_close_sound_click"; // 关闭声音

View File

@@ -11,6 +11,7 @@ import com.nnbc123.core.user.bean.GiftWallInfo;
import com.nnbc123.core.user.bean.NewUserInfo;
import com.nnbc123.core.user.bean.ProtocolInfo;
import com.nnbc123.core.user.bean.UserDetailInfo;
import com.nnbc123.core.user.bean.UserExpInfo;
import com.nnbc123.core.user.bean.UserGameInfo;
import com.nnbc123.core.user.bean.UserInfo;
import com.nnbc123.core.user.bean.UserRandomConfig;
@@ -69,6 +70,14 @@ public interface IUserModel extends IModel {
* @return
*/
Single<UserInfo> getUserInfoFromServer(long userId);
/**
* 根据uid 从服务器获取用户等级信息。
* 66新的
*
* @param userId
* @return
*/
Single<UserExpInfo> getUserExper(long userId);
/**
* 根据uid 从服务器获取用户详细信息。

View File

@@ -25,6 +25,7 @@ import com.nnbc123.core.user.bean.GiftWallInfo;
import com.nnbc123.core.user.bean.NewUserInfo;
import com.nnbc123.core.user.bean.ProtocolInfo;
import com.nnbc123.core.user.bean.UserDetailInfo;
import com.nnbc123.core.user.bean.UserExpInfo;
import com.nnbc123.core.user.bean.UserGameInfo;
import com.nnbc123.core.user.bean.UserInfo;
import com.nnbc123.core.user.bean.UserRandomConfig;
@@ -302,6 +303,19 @@ public final class UserModel extends BaseModel implements IUserModel {
}
@Override
public Single<UserExpInfo> getUserExper(long userId) {
return api.getUserExper(String.valueOf(userId))
.compose(RxHelper.handleSchedulers())
.flatMap(userExpInfoResult -> {
UserExpInfo userExpInfo1 = userExpInfoResult.getData();
if (null == userExpInfo1) {
return Single.error(new Exception("服务器返回的userInfo字段为空"));
}
return Single.just(userExpInfo1);
});
}
@Override
public Single<UserDetailInfo> getUserInfoDetail(long uid) {
return api.getUserInfoDetail(String.valueOf(uid))
@@ -829,6 +843,9 @@ public final class UserModel extends BaseModel implements IUserModel {
@GET("/user/get")
Single<ServiceResult<UserInfo>> requestUserInfo(@Query("uid") String uid);
@GET("/userLevel/getUserExper")
Single<ServiceResult<UserExpInfo>> getUserExper(@Query("uid") String uid);
@GET("/user/detail/get")
Single<UserDetailInfo> getUserInfoDetail(@Query("uid") String uid);

View File

@@ -0,0 +1,327 @@
package com.nnbc123.core.user.bean;
public class UserExpInfo {
/**
* userLevelExperience : {"uid":2296330,"amount":1888,"levelExperience":{"id":6,"levelSeq":6,"levelName":"Lv6","levelGrp":"","amount":1460,"need":500,"url":"https://image.zhongjialx.com/wealth_06.png","status":1,"broadcast":0,"interaction":0,"createTime":1517390445000},"nextLevelExperience":{"id":7,"levelSeq":7,"levelName":"Lv7","levelGrp":"","amount":1960,"need":500,"url":"https://image.zhongjialx.com/wealth_07.png","status":1,"broadcast":0,"interaction":0,"createTime":1517390445000}}
* avatar : http://image.uat.zhongjialx.com/FjcT2lxblAkPp7TFiOjDwMTi1YXP?imageslim
* nick : 冬萱小哥哥49
* uid : 2296330
*/
private UserLevelExperienceBean userLevelExperience;
private String avatar;
private String nick;
private int uid;
public UserLevelExperienceBean getUserLevelExperience() {
return userLevelExperience;
}
public void setUserLevelExperience(UserLevelExperienceBean userLevelExperience) {
this.userLevelExperience = userLevelExperience;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getNick() {
return nick;
}
public void setNick(String nick) {
this.nick = nick;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public static class UserLevelExperienceBean {
/**
* uid : 2296330
* amount : 1888
* levelExperience : {"id":6,"levelSeq":6,"levelName":"Lv6","levelGrp":"","amount":1460,"need":500,"url":"https://image.zhongjialx.com/wealth_06.png","status":1,"broadcast":0,"interaction":0,"createTime":1517390445000}
* nextLevelExperience : {"id":7,"levelSeq":7,"levelName":"Lv7","levelGrp":"","amount":1960,"need":500,"url":"https://image.zhongjialx.com/wealth_07.png","status":1,"broadcast":0,"interaction":0,"createTime":1517390445000}
*/
private int uid;
private int amount;
private LevelExperienceBean levelExperience;
private NextLevelExperienceBean nextLevelExperience;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public LevelExperienceBean getLevelExperience() {
return levelExperience;
}
public void setLevelExperience(LevelExperienceBean levelExperience) {
this.levelExperience = levelExperience;
}
public NextLevelExperienceBean getNextLevelExperience() {
return nextLevelExperience;
}
public void setNextLevelExperience(NextLevelExperienceBean nextLevelExperience) {
this.nextLevelExperience = nextLevelExperience;
}
public static class LevelExperienceBean {
/**
* id : 6
* levelSeq : 6
* levelName : Lv6
* levelGrp :
* amount : 1460
* need : 500
* url : https://image.zhongjialx.com/wealth_06.png
* status : 1
* broadcast : 0
* interaction : 0
* createTime : 1517390445000
*/
private int id;
private int levelSeq;
private String levelName;
private String levelGrp;
private int amount;
private int need;
private String url;
private int status;
private int broadcast;
private int interaction;
private long createTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getLevelSeq() {
return levelSeq;
}
public void setLevelSeq(int levelSeq) {
this.levelSeq = levelSeq;
}
public String getLevelName() {
return levelName;
}
public void setLevelName(String levelName) {
this.levelName = levelName;
}
public String getLevelGrp() {
return levelGrp;
}
public void setLevelGrp(String levelGrp) {
this.levelGrp = levelGrp;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public int getNeed() {
return need;
}
public void setNeed(int need) {
this.need = need;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getBroadcast() {
return broadcast;
}
public void setBroadcast(int broadcast) {
this.broadcast = broadcast;
}
public int getInteraction() {
return interaction;
}
public void setInteraction(int interaction) {
this.interaction = interaction;
}
public long getCreateTime() {
return createTime;
}
public void setCreateTime(long createTime) {
this.createTime = createTime;
}
}
public static class NextLevelExperienceBean {
/**
* id : 7
* levelSeq : 7
* levelName : Lv7
* levelGrp :
* amount : 1960
* need : 500
* url : https://image.zhongjialx.com/wealth_07.png
* status : 1
* broadcast : 0
* interaction : 0
* createTime : 1517390445000
*/
private int id;
private int levelSeq;
private String levelName;
private String levelGrp;
private int amount;
private int need;
private String url;
private int status;
private int broadcast;
private int interaction;
private long createTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getLevelSeq() {
return levelSeq;
}
public void setLevelSeq(int levelSeq) {
this.levelSeq = levelSeq;
}
public String getLevelName() {
return levelName;
}
public void setLevelName(String levelName) {
this.levelName = levelName;
}
public String getLevelGrp() {
return levelGrp;
}
public void setLevelGrp(String levelGrp) {
this.levelGrp = levelGrp;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public int getNeed() {
return need;
}
public void setNeed(int need) {
this.need = need;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getBroadcast() {
return broadcast;
}
public void setBroadcast(int broadcast) {
this.broadcast = broadcast;
}
public int getInteraction() {
return interaction;
}
public void setInteraction(int interaction) {
this.interaction = interaction;
}
public long getCreateTime() {
return createTime;
}
public void setCreateTime(long createTime) {
this.createTime = createTime;
}
}
}
}

View File

@@ -190,6 +190,9 @@ public class LocalMusicBean {
final Object this$year = this.getYear();
final Object other$year = other.getYear();
if (this$year == null ? other$year != null : !this$year.equals(other$year)) return false;
final Object this$uri = this.getUri();
final Object other$uri = other.getUri();
if (this$uri == null ? other$uri != null : !this$uri.equals(other$uri)) return false;
return true;
}
@@ -220,8 +223,8 @@ public class LocalMusicBean {
result = result * PRIME + ($artistName == null ? 43 : $artistName.hashCode());
final Object $localUri = this.getLocalUri();
result = result * PRIME + ($localUri == null ? 43 : $localUri.hashCode());
final Object uri = this.getUri();
result = result * PRIME + (uri == null ? 43 : uri.hashCode());
final Object $uri = this.getUri();
result = result * PRIME + ($uri == null ? 43 : $uri.hashCode());
final Object $year = this.getYear();
result = result * PRIME + ($year == null ? 43 : $year.hashCode());
return result;

View File

@@ -27,7 +27,7 @@ channel_file=channel.txt
COMPILE_SDK_VERSION=32
MIN_SDK_VERSION=21
TARGET_SDK_VERSION=32
TARGET_SDK_VERSION=29
version_name=1.1.1
version_code=111
version_name=1.1.0
version_code=110

View File

@@ -1,6 +1,6 @@
#Mon Apr 03 18:35:35 CST 2023
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME