From d80222afef75b6f7d2d21de434e30b0861643d91 Mon Sep 17 00:00:00 2001
From: lzl <1239365383@qq.com>
Date: Wed, 12 Nov 2025 16:42:51 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B62?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
MainModule/build.gradle | 1 +
MainModule/src/main/AndroidManifest.xml | 13 +
.../java/com/xscm/modulemain/Application.kt | 2 +-
.../activity/main/activity/MainActivity.java | 5 +-
.../activity/room/activity/RoomActivity.kt | 236 ++++-
.../room/fragment/ChatRoomFragment.java | 48 +-
.../room/fragment/FriendshipRoomFragment.java | 2 +-
.../room/fragment/MusicSongListFragment.java | 4 +-
.../room/fragment/RequestFragment.java | 18 +-
.../room/fragment/RoomCabinFragment.java | 22 +-
.../activity/room/fragment/RoomFragment.java | 16 +-
.../room/fragment/RoomKtvFragment.java | 38 +-
.../room/fragment/SingSongFragment.java | 41 +-
.../room/fragment/VoiceCategoryFragment.java | 2 +-
.../room/presenter/HotListPresenter.java | 2 +-
.../room/presenter/RoomPresenter.java | 4 +-
.../presenter/VoiceCategoryPresenter.java | 7 +-
.../activity/user/PageViewModel.java | 4 +-
.../user/activity/GiftWallActivity.java | 24 +-
.../user/activity/NobleDetailsActivity.java | 39 +-
.../user/activity/NoblePaymentActivity.java | 44 +-
.../user/activity/NobleTitleActivity.java | 43 +-
.../user/activity/SettingActivity.java | 28 +-
.../user/conacts/GiftWallConacts.java | 3 +-
.../activity/user/conacts/MeConacts.java | 11 +-
.../user/conacts/NobleTitleConacts.java | 9 +-
.../activity/user/conacts/SettingConacts.java | 2 +
.../user/fragment/PlaceholderFragment.java | 12 +-
.../user/fragment/UserHomepageFragment.java | 17 +-
.../user/fragment/VocalRangeFragment.java | 201 ++--
.../user/presenter/EditUserPresenter.java | 7 +-
.../user/presenter/GiftWallPresenter.java | 5 +-
.../activity/user/presenter/MePresenter.java | 64 +-
.../user/presenter/NobleTitlePresenter.java | 16 +-
.../user/presenter/RechargePresenter.java | 2 +-
.../user/presenter/SettingPresenter.java | 28 +-
.../xscm/modulemain/adapter/BlackAdapter.java | 2 +-
.../modulemain/adapter/EaseChatAdapter.java | 84 +-
.../modulemain/adapter/EmotionAdapter.java | 11 +-
.../adapter/ExpandColumnAdapter.java | 4 +-
.../modulemain/adapter/GiftWallAdapter.java | 9 +-
.../modulemain/adapter/GridNobleAdapter.java | 14 +-
.../adapter/NoblePrivilegeAdapter.java | 4 +-
.../adapter/NobliityBannerAdapter.java | 7 +-
.../adapter/SearchUserResultAdapter.java | 2 +-
.../adapter/SectionsGifPagerAdapter.java | 12 +-
.../dialog/RoomUserInfoFragment.java | 8 +-
.../dialog/SoundEffectsDialogFragment.java | 10 +-
.../dialog/TunerDialogFragment.java | 14 +-
.../xscm/modulemain/manager/RoomManager.java | 2 +-
.../modulemain/widget/WheatLayoutManager.kt | 1 +
.../res/layout/activity_currency_exchange.xml | 2 +-
.../src/main/res/layout/activity_main.xml | 55 +-
.../src/main/res/layout/activity_recharge.xml | 2 +-
.../src/main/res/layout/activity_setting.xml | 55 +-
.../main/res/layout/activity_withdrawal.xml | 2 +-
.../main/res/layout/fragment_vocal_range.xml | 923 +++++++++++++-----
.../src/main/res/layout/item_emotion.xml | 63 +-
MainModule/src/main/res/layout/room_top.xml | 3 +-
MainModule/src/main/res/layout/user_top.xml | 13 +-
app/build.gradle | 14 +-
.../qxcm/qxlive/wxapi/WXPayEntryActivity.java | 3 +-
gradle/libs.versions.toml | 9 +
settings.gradle | 2 +-
64 files changed, 1561 insertions(+), 789 deletions(-)
diff --git a/MainModule/build.gradle b/MainModule/build.gradle
index 53f229e5..b44aa45b 100644
--- a/MainModule/build.gradle
+++ b/MainModule/build.gradle
@@ -50,6 +50,7 @@ dependencies {
implementation libs.material
implementation libs.activity
implementation libs.constraintlayout
+ implementation project(':locktableview')
// implementation project(':modulevoice')
// implementation project(':modulecircle')
// implementation project(':modulevocal')
diff --git a/MainModule/src/main/AndroidManifest.xml b/MainModule/src/main/AndroidManifest.xml
index 52660643..801888ef 100644
--- a/MainModule/src/main/AndroidManifest.xml
+++ b/MainModule/src/main/AndroidManifest.xml
@@ -166,6 +166,19 @@
android:name=".activity.user.activity.RealNameActivity"
android:exported="false" />
+
+
+
+
+
list;
if (activitiesPermission != null) {
+ mBinding.dvr.setVisibility(View.VISIBLE);
list = new ArrayList<>();
if (activitiesPermission.getFirst_charge_permission() == 1) {
PermissionPicBean bean = new PermissionPicBean();
@@ -859,6 +860,8 @@ public class MainActivity extends BaseMvpActivity(),
override fun initData() {
if (!EasyPermissions.hasPermissions(this, *permissions)) {
- PermissionDescriptionHelper.addPermissionDescription(
- false,
- mBinding?.root as ViewGroup,
- permissions
- )
+ PermissionDescriptionHelper.addPermissionDescription(false, mBinding?.root as ViewGroup, permissions)
EasyPermissions.requestPermissions(
this, "请开启录音使用权限",
1, *permissions
@@ -492,7 +495,7 @@ class RoomActivity : BaseMvpActivity(),
this, LinearLayoutManager.HORIZONTAL, false
)
likeUserAdapter = LikeUserAdapter()
- mBinding!!.roomTop.userRecyclerView.adapter = likeUserAdapter
+ mBinding?.roomTop?.userRecyclerView?.adapter = likeUserAdapter
likeUserAdapter!!.onItemClickListener =
BaseQuickAdapter.OnItemClickListener { adapter, view, position ->
// RoomOnlineDialogFragment.show(roomId, "", mRoomUserBean, mRoomInfoResp, getSupportFragmentManager());
@@ -690,14 +693,22 @@ class RoomActivity : BaseMvpActivity(),
}
}
+/**
+ * 设置顶部操作按钮的可见性和点击事件
+ * 包括结束按钮和延时按钮的初始化和事件绑定
+ */
fun tob() {
+ // 获取并显示stubButtons2布局
val stub = mBinding!!.roomTop.stubButtons2
stub.visibility = View.VISIBLE
+ // 获取结束按钮和延时按钮的ImageView控件
val imActionJs = mBinding!!.roomTop.imActionJs.findViewById(R.id.im_action_js)
val imActionYs = mBinding!!.roomTop.imActionYs.findViewById(R.id.im_action_ys)
if (imActionJs != null && imActionYs != null) {
imActionJs.setOnClickListener { dialogEnd() }
+ // 设置结束按钮点击事件,调用dialogEnd()方法
imActionYs.setOnClickListener {
+ // 设置延时按钮点击事件,调用MvpPre的auctionDelay方法,传入当前拍卖ID
MvpPre!!.auctionDelay(
SpUtil.getauctionId()
)
@@ -744,6 +755,8 @@ class RoomActivity : BaseMvpActivity(),
if (visible) View.VISIBLE else View.INVISIBLE
}
+ // 根据传入的visible参数设置JS按钮的可见性
+ // 使用View.VISIBLE显示按钮,使用View.INVISIBLE隐藏按钮
fun upYs(visible: Boolean) {
mBinding!!.roomTop.imActionYs.visibility =
if (visible) View.VISIBLE else View.INVISIBLE
@@ -820,7 +833,7 @@ class RoomActivity : BaseMvpActivity(),
* 释放当前房间
*/
private fun releaseRoom() {
- AgoraManager.getInstance(this).cleanup()
+ AgoraManager.getInstance().cleanup()
CommonAppContext.getInstance().isPlaying = false
CommonAppContext.getInstance().isShow = false
QXGiftPlayerManager.getInstance(applicationContext).destroyEffectSvga()
@@ -930,9 +943,9 @@ class RoomActivity : BaseMvpActivity(),
mBinding!!.roomTop.btnFollow.text = "收藏"
}
if ((roomBean.type_id == "3" || roomBean.type_id == "1" || roomBean.type_id == "4") && roomBean.label_id == "2") {
- AgoraManager.getInstance(this).isBjMusic = false
+ AgoraManager.getInstance().isBjMusic = false
} else {
- AgoraManager.getInstance(this).isBjMusic = true
+ AgoraManager.getInstance().isBjMusic = true
}
@@ -1549,7 +1562,7 @@ class RoomActivity : BaseMvpActivity(),
} else {
if (customMusicFloatingView != null) {
customMusicFloatingView!!.destroy()
- AgoraManager.getInstance(this@RoomActivity).desMusic()
+ AgoraManager.getInstance().desMusic()
isMusic = false
}
@@ -1605,20 +1618,20 @@ class RoomActivity : BaseMvpActivity(),
if (customMusicFloatingView != null) {
customMusicFloatingView!!.destroy()
}
- AgoraManager.getInstance(this@RoomActivity).desMusic()
+ AgoraManager.getInstance().desMusic()
if ((mRoomInfoResp!!.room_info.type_id == "1" || mRoomInfoResp!!.room_info.type_id == "4" ||
mRoomInfoResp!!.room_info.type_id == "3" || mRoomInfoResp!!.room_info.type_id == "8") &&
mRoomInfoResp!!.room_info.label_id == "2"
) {
for (roomPitBean in mRoomInfoResp!!.song_pit_list) {
- AgoraManager.getInstance(this@RoomActivity).ClientRole(false)
+ AgoraManager.getInstance().ClientRole(false)
ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding)
mBinding?.rlMic?.visibility = View.GONE
}
if (mRoomInfoResp!!.song_user_info != null && mRoomInfoResp!!.song_user_info.user_id != null) {
if (mRoomInfoResp!!.song_user_info.user_id == SpUtil.getUserId().toString() + "") {
- AgoraManager.getInstance(this@RoomActivity).ClientRole(false)
+ AgoraManager.getInstance().ClientRole(false)
ivWheatFeeding(com.xscm.moduleutil.R.mipmap.room_wheat_feeding)
mBinding?.rlMic?.visibility = View.GONE
}
@@ -1719,7 +1732,7 @@ class RoomActivity : BaseMvpActivity(),
if (userId == currentUserId && "9" == pitNumber) {
if (customMusicFloatingView != null) {
customMusicFloatingView!!.destroy()
- AgoraManager.getInstance(this@RoomActivity).desMusic()
+ AgoraManager.getInstance().desMusic()
isMusic = false
}
mBinding!!.roomTop.rl.visibility = View.GONE
@@ -1844,12 +1857,134 @@ class RoomActivity : BaseMvpActivity(),
}
}
- private fun handleMsgType1001(messageEvent: RoomMessageEvent) {
- if (messageEvent.text.fromUserInfo.user_id != SpUtil.getUserId()) {
- number++
+// private fun handleMsgType1001(messageEvent: RoomMessageEvent) {
+// if (messageEvent.text.fromUserInfo.user_id != SpUtil.getUserId()) {
+// number++
+// }
+// mBinding!!.roomTop.tvNum.text = number.toString()
+// }
+
+ private var currentMqttView: View? = null // 正在播放
+ var decorView: ViewGroup? = null //礼物的
+
+
+ private fun handleMsgType1001(roomMessageEvent: RoomMessageEvent) {
+ if (roomMessageEvent.text.fromUserInfo.enter_image?.isNotEmpty() == true){
+ showFloatingMessage(roomMessageEvent.text.fromUserInfo)
}
- mBinding!!.roomTop.tvNum.text = number.toString()
+// number++
+// mBinding!!.roomTop.tvNum.text = number.toString() + ""
}
+ private fun showFloatingMessage(userInfo: UserInfo) {
+ try {
+ // 清理之前的视图(如果存在)
+ if ( currentMqttView?.getParent() != null) {
+ val parent = currentMqttView?.getParent() as ViewGroup
+ parent.removeView(currentMqttView)
+ }
+
+ if (decorView == null) {
+ decorView = getWindow().getDecorView() as ViewGroup?
+ }
+
+ currentMqttView = LayoutInflater.from(this).inflate(R.layout.item_noble_piaoping, null)
+ val layoutParams = FrameLayout.LayoutParams(
+ FrameLayout.LayoutParams.MATCH_PARENT,
+ FrameLayout.LayoutParams.WRAP_CONTENT
+ )
+ layoutParams.topMargin = DisplayUtil.dip2px(this, 300f)
+ layoutParams.gravity = Gravity.TOP or Gravity.CENTER_HORIZONTAL
+ currentMqttView?.setLayoutParams(layoutParams)
+ decorView?.addView(currentMqttView)
+ currentMqttView?.let { updateFloatingViewData(it, userInfo) }
+
+ currentMqttView?.let {
+ resetAndStartMqttAnimation(it, Runnable {
+ // 清理当前视图
+ if (currentMqttView?.getParent() != null) {
+ val parent = currentMqttView?.getParent() as ViewGroup
+ parent.removeView(currentMqttView)
+ }
+ currentMqttView = null
+
+ })
+ }
+ } catch (e: java.lang.Exception) {
+
+ }
+ }
+ private fun resetAndStartMqttAnimation(view: View, onAnimationEnd: Runnable) {
+ try {
+ val screenWidth = getScreenWidth()
+ // 设置初始位置:在屏幕右侧外部(完全不可见)
+ view.setTranslationX(screenWidth.toFloat())
+
+
+ val enterAnim = TranslateAnimation(
+ Animation.ABSOLUTE, screenWidth.toFloat(),
+ Animation.ABSOLUTE, ((screenWidth - SystemUtils.getWidth(316)) / 2).toFloat(),
+ Animation.ABSOLUTE, 0f,
+ Animation.ABSOLUTE, 0f
+ )
+ enterAnim.setDuration(1500)
+ enterAnim.setInterpolator(DecelerateInterpolator(2.0f))
+ enterAnim.setAnimationListener(object : Animation.AnimationListener {
+ override fun onAnimationStart(animation: Animation?) {
+ }
+
+ override fun onAnimationEnd(animation: Animation?) {
+ // 停留后退出
+ CommonAppContext.postDelayed(Runnable {
+ val exitAnim = TranslateAnimation(
+ Animation.ABSOLUTE, ((screenWidth - SystemUtils.getWidth(316)) / 2).toFloat(),
+ Animation.ABSOLUTE, -screenWidth.toFloat(),
+ Animation.ABSOLUTE, 0f,
+ Animation.ABSOLUTE, 0f
+ )
+ exitAnim.setDuration(3000)
+ exitAnim.setInterpolator(DecelerateInterpolator(2f))
+ exitAnim.setAnimationListener(object : Animation.AnimationListener {
+ override fun onAnimationStart(animation: Animation?) {
+ }
+
+ override fun onAnimationEnd(animation: Animation?) {
+ // 移除视图并处理下一个
+ onAnimationEnd.run()
+ }
+
+ override fun onAnimationRepeat(animation: Animation?) {
+ }
+ })
+ view.startAnimation(exitAnim)
+ }, 5000) // 停留1秒
+ }
+
+ override fun onAnimationRepeat(animation: Animation?) {
+ }
+ })
+ view.startAnimation(enterAnim)
+ } catch (e: java.lang.Exception) {
+ LogUtils.e("MQTT动画启动失败", e)
+ onAnimationEnd.run()
+ }
+ }
+ private fun getScreenWidth(): Int {
+ val displayMetrics = DisplayMetrics()
+ if (getWindowManager() != null) {
+ getWindowManager().getDefaultDisplay().getMetrics(displayMetrics)
+ return displayMetrics.widthPixels
+ }
+ return getResources().getDisplayMetrics().widthPixels
+ }
+
+ private fun updateFloatingViewData(view: View, userInfo: UserInfo) {
+ val textView = view.findViewById(R.id.tv_name)
+ val im_bj = view.findViewById(R.id.im_bj)
+
+ textView.text = userInfo.enter_text
+ ImageUtils.loadHeadCC(userInfo.enter_image, im_bj)
+ }
+
private fun handleMsgType1002(messageEvent: RoomMessageEvent, text: T?) {
number--
@@ -1965,7 +2100,7 @@ class RoomActivity : BaseMvpActivity(),
MessageListenerSingleton.getInstance().joinGroup(pendingRoomId)
MvpPre!!.getRoomIn(pendingRoomId, "")
lastSwitchedRoomId = pendingRoomId!!
- AgoraManager.getInstance(OkDownloadProvider.context).lastRoomId =
+ AgoraManager.getInstance().lastRoomId =
messageEvent.roomId
}
}
@@ -2057,9 +2192,9 @@ class RoomActivity : BaseMvpActivity(),
val parsedText: RoomMessageEvent.text =
GsonUtils.fromJson(text, RoomMessageEvent.text::class.java)
if (parsedText.is_mute == 1) {
- AgoraManagerEx.getInstance(this).muteLocalAudioStreamEx(true)
+ AgoraManagerEx.getInstance().muteLocalAudioStreamEx(true)
} else {
- AgoraManagerEx.getInstance(this).muteLocalAudioStreamEx(false)
+ AgoraManagerEx.getInstance().muteLocalAudioStreamEx(false)
}
} catch (e: Exception) {
// Handle exception
@@ -2098,7 +2233,7 @@ class RoomActivity : BaseMvpActivity(),
private fun handleMsgType126(messageEvent: RoomMessageEvent, text: T?) {
if (text == null) return
- AgoraManager.getInstance(this)
+ AgoraManager.getInstance()
.setLocalAudioEnabled(false, text.fromUserInfo.user_id.toString() + "")
}
@@ -2291,7 +2426,7 @@ class RoomActivity : BaseMvpActivity(),
mBinding!!.imVoive.setImageResource(com.xscm.moduleutil.R.mipmap.room_voice_kg)
voive = true
}
- AgoraManager.getInstance(this).muteSpeaker(!voive)
+ AgoraManager.getInstance().muteSpeaker(!voive)
} else if (id == R.id.rl_more) { //点击PK
val fragment = RoomPkDialogFragment.newInstance(
roomId,
@@ -2414,7 +2549,7 @@ class RoomActivity : BaseMvpActivity(),
CommonAppContext.getInstance().isPlaying = false
CommonAppContext.getInstance().isShow = false
QXGiftPlayerManager.getInstance(this).destroyEffectSvga()
- AgoraManager.getInstance(this).cleanup()
+ AgoraManager.getInstance().cleanup()
MyRoomSingleton.getInstance().onExitRoom()
MessageListenerSingleton.quitGroup(roomId)
@@ -2518,15 +2653,15 @@ class RoomActivity : BaseMvpActivity(),
fun switchMic(type: Int) {
if (type == 1) {
mBinding!!.ivMic.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone)
- AgoraManager.getInstance(this)
+ AgoraManager.getInstance()
.setLocalAudioEnabled(true, SpUtil.getUserId().toString() + "")
isSwith = false
- AgoraManager.getInstance(this).muteLocalAudioStream(false)
- AgoraManager.getInstance(this).ClientRole(true)
+ AgoraManager.getInstance().muteLocalAudioStream(false)
+ AgoraManager.getInstance().ClientRole(true)
CommonAppContext.getInstance().isMai = true
} else {
mBinding!!.ivMic.setImageResource(com.xscm.moduleutil.R.mipmap.room_microphone_off)
- AgoraManager.getInstance(this)
+ AgoraManager.getInstance()
.setLocalAudioEnabled(false, SpUtil.getUserId().toString() + "")
isSwith = true
isMute(1)
@@ -2611,7 +2746,7 @@ class RoomActivity : BaseMvpActivity(),
val typeId = mRoomInfoResp!!.room_info.type_id
val labelId = mRoomInfoResp!!.room_info.label_id
- val userPitNumber = mRoomInfoResp!!.user_info.pit_number
+ val userPitNumber = mRoomInfoResp?.user_info?.pit_number!!
// 情况1: typeId = 6 时,只显示消息按钮
if ("6" == typeId) {
@@ -2938,9 +3073,9 @@ class RoomActivity : BaseMvpActivity(),
// mBinding.roomTop.btnFollow.setBackground(getResources().getDrawable(com.xscm.moduleutil.R.mipmap.collect));
}
if ((roomBean.type_id == "3" || roomBean.type_id == "1" || roomBean.type_id == "4") && roomBean.label_id == "2") {
- AgoraManager.getInstance(this).isBjMusic = false
+ AgoraManager.getInstance().isBjMusic = false
} else {
- AgoraManager.getInstance(this).isBjMusic = true
+ AgoraManager.getInstance().isBjMusic = true
}
AgoraManager.stopMuisc()
@@ -3016,7 +3151,7 @@ class RoomActivity : BaseMvpActivity(),
ivSoundEffects(false)
}
// }
- if (mRoomInfoResp!!.user_info.user_id == SpUtil.getUserId()
+ if (mRoomInfoResp?.user_info?.user_id == SpUtil.getUserId()
&& mRoomInfoResp!!.user_info.pit_number == 9
&& mRoomInfoResp!!.room_info.type_id != "2"
&& mRoomInfoResp!!.room_info.type_id != "6"
@@ -3162,13 +3297,13 @@ class RoomActivity : BaseMvpActivity(),
*/
fun initializeAudio() {
if (mRoomUserBean!!.pit_number != 0) {
- AgoraManager.getInstance(this).ClientRole(true)
- AgoraManager.getInstance(this).muteLocalAudioStream(false)
+ AgoraManager.getInstance().ClientRole(true)
+ AgoraManager.getInstance().muteLocalAudioStream(false)
} else {
- AgoraManager.getInstance(this).ClientRole(false)
- AgoraManager.getInstance(this).muteLocalAudioStream(true)
+ AgoraManager.getInstance().ClientRole(false)
+ AgoraManager.getInstance().muteLocalAudioStream(true)
}
- AgoraManager.getInstance(this)
+ AgoraManager.getInstance()
.setLocalAudioEnabled(false, SpUtil.getUserId().toString() + "")
}
@@ -3385,7 +3520,7 @@ class RoomActivity : BaseMvpActivity(),
customMusicFloatingView!!.setOnItemClickListener(object : OnMusicItemClickListener {
override fun onMinimize() {
customMusicFloatingView!!.destroy()
- AgoraManager.getInstance(this@RoomActivity).desMusic()
+ AgoraManager.getInstance().desMusic()
isMusic = false
}
@@ -3398,20 +3533,20 @@ class RoomActivity : BaseMvpActivity(),
override fun onPause() {
// ToastUtils.showShort("暂停播放");
// 调用播放器或通知 MusicView
- AgoraManager.getInstance(this@RoomActivity).pauseMusic()
+ AgoraManager.getInstance().pauseMusic()
}
override fun onResume() {
// ToastUtils.showShort("恢复播放");
// 调用播放器或通知 MusicView
- AgoraManager.getInstance(this@RoomActivity).resumeMusic()
+ AgoraManager.getInstance().resumeMusic()
}
override fun onNext() {
// ToastUtils.showShort("下一首");
// 切换歌曲
// List musicSongBeans = AgoraManager.getInstance(RoomActivity.this).getMusicList();
- AgoraManager.nextSong()
+ AgoraManager.getInstance().nextSong()
}
})
// customMusicFloatingView.initView();
@@ -3484,8 +3619,8 @@ class RoomActivity : BaseMvpActivity(),
}
// 恢复音频状态
- if (AgoraManager.getInstance(this) != null) {
- AgoraManager.getInstance(this).resumeMusic()
+ if (AgoraManager.getInstance() != null) {
+ AgoraManager.getInstance().resumeMusic()
}
// 清除最小化状态标志
@@ -3732,7 +3867,7 @@ class RoomActivity : BaseMvpActivity(),
fun quit() {
CommonAppContext.getInstance().isPlaying = false
CommonAppContext.getInstance().isShow = false
- AgoraManager.getInstance(this).cleanup()
+ AgoraManager.getInstance().cleanup()
MyRoomSingleton.getInstance().onExitRoom()
}
@@ -3743,10 +3878,10 @@ class RoomActivity : BaseMvpActivity(),
fun jiaR() {
LogUtils.e(
"@@@",
- "上一个房间的roonid" + AgoraManager.getInstance(OkDownloadProvider.context).lastRoomId
+ "上一个房间的roonid" + AgoraManager.getInstance().lastRoomId
)
- MvpPre?.getRoomIn(AgoraManager.getInstance(OkDownloadProvider.context).lastRoomId, "")
- AgoraManager.getInstance(OkDownloadProvider.context).lastRoomId = ""
+ MvpPre?.getRoomIn(AgoraManager.getInstance().lastRoomId, "")
+ AgoraManager.getInstance().lastRoomId = ""
}
override fun userGuanzSuccess(s: String) {
@@ -3844,6 +3979,9 @@ class RoomActivity : BaseMvpActivity(),
}
GiftDisplayManager.getInstance().clearAll()
mBinding!!.giftContainer.removeAllViews()
+ CommonAppContext.getInstance().isMai = false
+ CommonAppContext.getInstance().playId = null
+
// 确保父类的 onDestroy 被调用
super.finish()
}
@@ -3880,8 +4018,8 @@ class RoomActivity : BaseMvpActivity(),
}
// 6. 清理 Agora 资源
-// if (AgoraManager.getInstance(this) != null) {
-// AgoraManager.getInstance(this).cleanup();
+// if (AgoraManager.getInstance() != null) {
+// AgoraManager.getInstance().cleanup();
// }
// 清理所有弹框
dismissAllDialogs()
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/ChatRoomFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/ChatRoomFragment.java
index 1fc43cc5..bdea20f6 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/ChatRoomFragment.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/ChatRoomFragment.java
@@ -90,6 +90,11 @@ public class ChatRoomFragment extends BaseMvpFragment messageQueue = new ArrayList<>();
+ // 将messageQueue移到类级别,并添加同步控制
+ private final List messageQueue = new ArrayList<>();
+ private final Object queueLock = new Object(); // 用于同步的锁对象
+ private final Handler messageHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(@NonNull Message msg) {
if (msg.what == MSG_HANDLE_ROOM_MESSAGE) {
- if (!messageQueue.isEmpty()) {
- // 批量处理消息
- processBatchMessages(messageQueue);
- messageQueue.clear();
- } else if (msg.obj instanceof RoomMessageEvent) {
- // 处理单条消息
- processRoomMessage((RoomMessageEvent) msg.obj);
+ synchronized (queueLock) {
+ if (!messageQueue.isEmpty()) {
+ // 批量处理消息
+ processBatchMessages(new ArrayList<>(messageQueue)); // 创建副本避免并发修改
+ messageQueue.clear();
+ } else if (msg.obj instanceof RoomMessageEvent) {
+ // 处理单条消息
+ processRoomMessage((RoomMessageEvent) msg.obj);
+ }
}
}
}
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java
index f86a6b20..4ef2a00c 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java
@@ -899,7 +899,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment musicSongBeans = new ArrayList<>();
- List music = AgoraManager.getInstance(getContext()).getMusicList();
+ List music = AgoraManager.getInstance().getMusicList();
if (music != null && music.size() > 0) {
for (int i = 0; i < music.size(); i++) {
MusicSongBean musicSongBean = new MusicSongBean();
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RequestFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RequestFragment.java
index 05e416ed..66ad4888 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RequestFragment.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RequestFragment.java
@@ -131,7 +131,7 @@ public class RequestFragment extends BaseMvpFragment music = new ArrayList<>();
music.add(item);
- AgoraManager.getInstance(getContext()).setMusicList(music);
+ AgoraManager.getInstance().setMusicList(music);
EventBus.getDefault().post(item);
- AgoraManager.getInstance(getContext()).nextSong();
+ AgoraManager.getInstance().nextSong();
} else {
- List music = AgoraManager.getInstance(getContext()).getMusicList();
+ List music = AgoraManager.getInstance().getMusicList();
music.add(item);
- AgoraManager.getInstance(getContext()).setMusicList(music);
+ AgoraManager.getInstance().setMusicList(music);
}
}
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomCabinFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomCabinFragment.java
index 086b4256..5f4c80ab 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomCabinFragment.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomCabinFragment.java
@@ -252,7 +252,7 @@ public class RoomCabinFragment extends BaseRoomFragment= Double.parseDouble(musicSongBean.getDuration())) {
- AgoraManager.getInstance(getActivity()).stopMuisc();
+ AgoraManager.getInstance().stopMuisc();
MvpPre.changeSong(roomInfoResp.getRoom_info().getRoom_id(), did);
}
}
@@ -647,17 +647,17 @@ public class RoomKtvFragment extends BaseMvpFragment= 0) {
+ flexboxLayout.removeView(rootContainer);
+ }
+ }
if (wheatLayoutManager1 != null) {
wheatLayoutManager1.clear();
@@ -1437,12 +1444,20 @@ public class SingSongFragment extends BaseRoomFragment implem
LogUtils.e("token",token);
LogUtils.e("roomId:",roomId);
// 初始化 Agora 并加入房间
- AgoraManager.getInstance(getView().getSelfActivity())
+ AgoraManager.getInstance()
.joinRoom(token, roomId, uid, enableMic,enableJs);
// 2. 加入房间
// rtcCore.joinRoom(token, roomId, uid, enableMic);
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/presenter/RoomPresenter.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/presenter/RoomPresenter.java
index 830de898..21fd43e5 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/presenter/RoomPresenter.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/presenter/RoomPresenter.java
@@ -58,10 +58,10 @@ public class RoomPresenter extends BasePresenter implements R
LogUtils.e("roomId:",roomId);
if (getView()!= null && getView().getSelfActivity()!=null){
- AgoraManager.getInstance(getView().getSelfActivity())
+ AgoraManager.getInstance()
.joinRoom(token, roomId, uid, enableMic,enableJs);
}else {
- AgoraManager.getInstance(mContext.getApplicationContext())
+ AgoraManager.getInstance()
.joinRoom(token, roomId, uid, enableMic,enableJs);
}
if (MvpRef==null){
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/presenter/VoiceCategoryPresenter.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/presenter/VoiceCategoryPresenter.java
index 03c84b34..aa671509 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/presenter/VoiceCategoryPresenter.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/presenter/VoiceCategoryPresenter.java
@@ -55,11 +55,11 @@ public class VoiceCategoryPresenter extends BasePresenter>() {}.getType();
// List restoredRoomModels = GsonUtils.getGSON().fromJson(SpUtils.getHomeBanner(), listType);
// MvpRef.get().setBanners(restoredRoomModels);
- api.getBanners(new BaseObserver>() {
+ api.getBanners(s,new BaseObserver>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
@@ -74,9 +74,8 @@ public class VoiceCategoryPresenter extends BasePresenter implements GiftWallConacts.View {
- SectionsPagerAdapter sectionsPagerAdapter;
+ SectionsGifPagerAdapter sectionsPagerAdapter;
@Override
protected void initData() {
@@ -35,7 +33,7 @@ public class GiftWallActivity extends BaseMvpActivity implements NobleTitleConacts.View {
+public class NobleTitleActivity extends BaseMvpActivity implements com.xscm.modulemain.activity.user.conacts.NobleTitleConacts.View {
private LinearLayout mContentView;
private List mNobilityPowerItemList = new ArrayList<>();
private String lid;
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/SettingActivity.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/SettingActivity.java
index e5c8a723..cdee8234 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/SettingActivity.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/SettingActivity.java
@@ -23,6 +23,7 @@ import com.xscm.modulemain.activity.user.presenter.SettingPresenter;
import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.modulemain.dialog.YouthModelDialog;
import com.xscm.moduleutil.base.CommonAppContext;
+import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.dialog.RealNameDialog;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.SpUtil;
@@ -50,6 +51,7 @@ public class SettingActivity extends BaseMvpActivity bannerModels);
}
public interface IMePre extends IPresenter {
@@ -33,6 +37,9 @@ public final class MeConacts {
void entranceCheckFirstRecharge();
void getMemberList(String userId, int page);
+
+
+ void wallet();
}
}
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/conacts/NobleTitleConacts.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/conacts/NobleTitleConacts.java
index a2f3d776..7e82805e 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/conacts/NobleTitleConacts.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/conacts/NobleTitleConacts.java
@@ -1,9 +1,14 @@
-package com.example.modulevocal.conacts;
+package com.xscm.modulemain.activity.user.conacts;
import android.app.Activity;
+
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
-import com.xscm.moduleutil.bean.*;
+import com.xscm.moduleutil.bean.AppPay;
+import com.xscm.moduleutil.bean.BindType;
+import com.xscm.moduleutil.bean.NobilitDeatils;
+import com.xscm.moduleutil.bean.NobilitList;
+import com.xscm.moduleutil.bean.NobilityPrice;
import java.util.List;
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/conacts/SettingConacts.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/conacts/SettingConacts.java
index 7d69ecae..cd314485 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/conacts/SettingConacts.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/conacts/SettingConacts.java
@@ -15,5 +15,7 @@ public class SettingConacts {
void clearLoginInfo();
void cancel();
+
+ void getModifyHideStatus(String hide_status);
}
}
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/PlaceholderFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/PlaceholderFragment.java
index 30a8318b..7139105e 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/PlaceholderFragment.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/PlaceholderFragment.java
@@ -1,4 +1,4 @@
-package com.example.modulevocal.activity.ui.main;
+package com.xscm.modulemain.activity.user.fragment;
import android.content.Context;
import android.os.Bundle;
@@ -6,14 +6,16 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
-import android.widget.TextView;
-import androidx.annotation.Nullable;
+
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
-import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
-import com.example.modulevocal.databinding.FragmentGiftWallBinding;
+
+import com.xscm.modulemain.activity.user.PageViewModel;
+import com.xscm.modulemain.adapter.GiftWallAdapter;
+import com.xscm.modulemain.databinding.FragmentGiftWallBinding;
import com.xscm.moduleutil.bean.GiftUserWallBean;
+
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/UserHomepageFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/UserHomepageFragment.java
index e6a31ab2..22d6e871 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/UserHomepageFragment.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/fragment/UserHomepageFragment.java
@@ -114,11 +114,24 @@ public class UserHomepageFragment extends BaseMvpFragment bannerModels) {
+ mBinding.banner.setBannerData(com.xscm.moduleutil.R.layout.index_image_banner, bannerModels);
+ }
- /**
- * 获取守护数
- */
-// @Override
-// public void setMemberList(GuardMemberBean guardMemberBean) {
-//// if (guardMemberBean != null) {
-//// mBinding.tvGuardNum.setText(guardMemberBean.getHead().getTotal_number());
-//// }
-// }
private void copyUserId(CharSequence content) {
ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(CLIPBOARD_SERVICE);
@@ -327,85 +391,6 @@ public class VocalRangeFragment extends BaseMvpFragment initItems() {
-// List items = new ArrayList<>();
-// // 成为大神
-// MeItemBean skill = new MeItemBean(true, true);
-// skill.setIcon(R.mipmap.me_icon_cwds);
-// skill.setName("成为大神");
-// skill.setType("skill");
-// items.add(skill);
-// // 我的订单
-//// MeItemBean order = new MeItemBean(true, false);
-//// order.setIcon(R.mipmap.me_icon_wddd);
-//// order.setName("我的订单");
-//// order.setType("order");
-//// items.add(order);
-//// // 评价订单
-//// MeItemBean pjOrder = new MeItemBean(true, false);
-//// pjOrder.setIcon(R.mipmap.me_icon_pjdd);
-//// pjOrder.setName("评价订单");
-//// pjOrder.setType("pjOrder");
-//// items.add(pjOrder);
-// // 我的等级
-// MeItemBean wdDengji = new MeItemBean(true, true);
-// wdDengji.setIcon(R.mipmap.me_icon_wddj);
-// wdDengji.setName("我的等级");
-// wdDengji.setType("wdDengji");
-// items.add(wdDengji);
-// // 我的公会
-// MeItemBean wdGonghui = new MeItemBean(true, true);
-// wdGonghui.setIcon(R.mipmap.me_icon_wdgh);
-// wdGonghui.setName("我的公会");
-// wdGonghui.setType("wdGonghui");
-// items.add(wdGonghui);
-//// // 邀请有礼
-//// MeItemBean yqYouli = new MeItemBean(true, true);
-//// yqYouli.setIcon(R.mipmap.me_icon_yqyl);
-//// yqYouli.setName("邀请有礼");
-//// yqYouli.setType("yqYouli");
-//// items.add(yqYouli);
-// // 实名认证
-// MeItemBean verified = new MeItemBean(false, true);
-// verified.setIcon(R.mipmap.me_icon_smrz);
-// verified.setName("实名认证");
-// verified.setType("verified");
-// items.add(verified);
-//
-// return items;
-// }
-
-// private List initItems2() {
-// List items = new ArrayList<>();
-// // 在线客服
-// MeItemBean customerService = new MeItemBean(true, true);
-// customerService.setType("customer_service");
-// customerService.setName("在线客服");
-// customerService.setIcon(R.mipmap.me_icon_service);
-// items.add(customerService);
-// // 帮助中心
-// MeItemBean helpCenter = new MeItemBean(true, true);
-// helpCenter.setType("help_center");
-// helpCenter.setName("帮助中心");
-// helpCenter.setIcon(R.mipmap.me_icon_help);
-// items.add(helpCenter);
-// // 设置
-// MeItemBean settings = new MeItemBean(false, true);
-// settings.setType("settings");
-// settings.setName("设置");
-// settings.setIcon(R.mipmap.me_icon_setting);
-// items.add(settings);
-//
-// return items;
-// }
-
- /**
- * 关闭首充入口
- */
-// @Subscribe(threadMode = ThreadMode.MAIN)
-// public void closeFirstCharge(CloseFirstChargeEvent closeFirstChargeEvent) {
-//// mBinding.ivFirstCharge.setVisibility(View.GONE);
-// }
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/EditUserPresenter.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/EditUserPresenter.java
index b9e2f78d..d1094047 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/EditUserPresenter.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/EditUserPresenter.java
@@ -12,15 +12,17 @@ import com.xscm.moduleutil.utils.cos.CosUploadManager;
import com.xscm.moduleutil.utils.oss.OSSOperUtils;
import java.io.File;
+import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
public class EditUserPresenter extends BasePresenter implements EditUserConactos.IMePre {
+ EditUserConactos.View mView;
public EditUserPresenter(EditUserConactos.View view, Context context) {
super(view, context);
+ mView = view;
}
-
@Override
public void topicList(String page, String page_limit) {
@@ -85,6 +87,9 @@ public class EditUserPresenter extends BasePresenter impl
@Override
public void onNext(UserInfo userInfo) {
+ if (MvpRef==null){
+ MvpRef=new WeakReference<>(mView);
+ }
MvpRef.get().getUserHomeSuccess(userInfo);
}
});
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/GiftWallPresenter.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/GiftWallPresenter.java
index e50b1ab1..ef2c884e 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/GiftWallPresenter.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/GiftWallPresenter.java
@@ -1,9 +1,12 @@
-package com.example.modulevocal.activity.ui.main;
+package com.xscm.modulemain.activity.user.presenter;
import android.content.Context;
+
+import com.xscm.modulemain.activity.user.conacts.GiftWallConacts;
import com.xscm.moduleutil.bean.GiftUserWallBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
+
import io.reactivex.disposables.Disposable;
/**
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/MePresenter.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/MePresenter.java
index 9356e1ac..e88ddc39 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/MePresenter.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/MePresenter.java
@@ -3,16 +3,23 @@ package com.xscm.modulemain.activity.user.presenter;
import android.content.Context;
import com.xscm.modulemain.activity.user.conacts.MeConacts;
+import com.xscm.moduleutil.bean.BannerModel;
import com.xscm.moduleutil.bean.UserInfo;
+import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
+import java.lang.ref.WeakReference;
+import java.util.List;
+
import io.reactivex.disposables.Disposable;
public class MePresenter extends BasePresenter implements MeConacts.IMePre {
+ MeConacts.View mView;
public MePresenter(MeConacts.View view, Context context) {
super(view, context);
+ mView = view;
}
@Override
@@ -164,28 +171,39 @@ public class MePresenter extends BasePresenter implements MeCona
}
- public void getConfig() {
-// api.appUpdate(new com.qpyy.libcommon.http.BaseObserver() {
-// @Override
-// public void onSubscribe(Disposable d) {
-// addDisposable(d);
-// }
-//
-// @Override
-// public void onNext(AppUpdateModel appUpdateModel) {
-// String channelId = "default";
-// try {
-// channelId = MetaDataUtils.getMetaDataInApp("TD_CHANNEL_ID");
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// MvpRef.get().hideSkill(appUpdateModel != null && appUpdateModel.getChannels() != null && appUpdateModel.getChannels().contains(channelId));
-// }
-//
-// @Override
-// public void onComplete() {
-//
-// }
-// });
+ @Override
+ public void wallet() {
+ api.wallet(new BaseObserver() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addDisposable(d);
+ }
+
+ @Override
+ public void onNext(WalletBean walletBean) {
+ MvpRef.get().wallet(walletBean);
+ }
+ });
+ }
+
+ public void getBanners(String s) {
+// Type listType = new TypeToken>() {}.getType();
+// List restoredRoomModels = GsonUtils.getGSON().fromJson(SpUtils.getHomeBanner(), listType);
+// MvpRef.get().setBanners(restoredRoomModels);
+ api.getBanners(s,new BaseObserver>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addDisposable(d);
+ }
+
+ @Override
+ public void onNext(List bannerModels) {
+ if (MvpRef==null){
+ MvpRef=new WeakReference<>(mView);
+ }
+ MvpRef.get().setBanners(bannerModels);
+ }
+
+ });
}
}
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/NobleTitlePresenter.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/NobleTitlePresenter.java
index 19e3313a..2b4b5e15 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/NobleTitlePresenter.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/NobleTitlePresenter.java
@@ -1,17 +1,23 @@
-package com.example.modulevocal.presenter;
+package com.xscm.modulemain.activity.user.presenter;
import android.content.Context;
-import com.example.modulevocal.conacts.MeConacts;
-import com.example.modulevocal.conacts.NobleTitleConacts;
-import com.xscm.moduleutil.bean.*;
+
+import com.xscm.modulemain.activity.user.conacts.NobleTitleConacts;
+import com.xscm.moduleutil.bean.AppPay;
+import com.xscm.moduleutil.bean.BindType;
+import com.xscm.moduleutil.bean.NobilitDeatils;
+import com.xscm.moduleutil.bean.NobilitList;
+import com.xscm.moduleutil.bean.NobilityPrice;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
-import io.reactivex.disposables.Disposable;
+
import org.jetbrains.annotations.NotNull;
import java.lang.ref.WeakReference;
import java.util.List;
+import io.reactivex.disposables.Disposable;
+
/**
* com.example.modulevocal.presenter
* qx
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/RechargePresenter.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/RechargePresenter.java
index 57770b68..d1871288 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/RechargePresenter.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/RechargePresenter.java
@@ -51,7 +51,7 @@ public class RechargePresenter extends BasePresenter impl
@Override
public void appPay(String user_id, String money, String coin, String type, String type_params, String type_id) {
- api.appPay(user_id, money, coin, type,type_params,type_id, new BaseObserver() {
+ api.appPay(user_id, money, coin, type,type_params,type_id,"", new BaseObserver() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/SettingPresenter.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/SettingPresenter.java
index 11475f6e..04d3db8b 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/SettingPresenter.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/presenter/SettingPresenter.java
@@ -6,13 +6,18 @@ import com.xscm.modulemain.activity.user.conacts.SettingConacts;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
+import org.jetbrains.annotations.NotNull;
+
+import java.lang.ref.WeakReference;
+
import io.reactivex.disposables.Disposable;
public class SettingPresenter extends BasePresenter implements SettingConacts.IMePre {
+ private SettingConacts.View mView;
public SettingPresenter(SettingConacts.View view, Context context) {
super(view, context);
+ mView = view;
}
-
@Override
public void clearLoginInfo() {
api.clearLoginInfo(new BaseObserver() {
@@ -23,6 +28,9 @@ public class SettingPresenter extends BasePresenter impleme
@Override
public void onNext(String s) {
+ if (MvpRef==null){
+ MvpRef=new WeakReference<>(mView);
+ }
MvpRef.get().clearLoginInfo(s);
}
});
@@ -39,8 +47,26 @@ public class SettingPresenter extends BasePresenter impleme
@Override
public void onNext(String s) {
+ if (MvpRef==null){
+ MvpRef=new WeakReference<>(mView);
+ }
MvpRef.get().cancel(s);
}
});
}
+
+ @Override
+ public void getModifyHideStatus(String hide_status) {
+ api.getModifyHideStatus(hide_status, new BaseObserver() {
+ @Override
+ public void onSubscribe(@NotNull Disposable d) {
+ addDisposable(d);
+ }
+
+ @Override
+ public void onNext(@NotNull String s) {
+
+ }
+ });
+ }
}
diff --git a/MainModule/src/main/java/com/xscm/modulemain/adapter/BlackAdapter.java b/MainModule/src/main/java/com/xscm/modulemain/adapter/BlackAdapter.java
index cdb35a77..8c37df17 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/adapter/BlackAdapter.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/adapter/BlackAdapter.java
@@ -45,7 +45,7 @@ public class BlackAdapter extends BaseQuickAdapter() {
- @Override
- public boolean onResourceReady(Drawable resource, Object model, Target target,
- DataSource dataSource, boolean isFirstResource) {
- // 检查视图是否仍属于当前数据项
- if (uniqueId.equals(emojiImageView.getTag())) {
- // 加载完成后执行
- new Handler().postDelayed(() -> {
- // 再次检查视图状态
- if (uniqueId.equals(emojiImageView.getTag())) {
- Glide.with(mContext)
- .load(emMessage.getText().getEmoji().getImage())
- .into(emojiImageView);
- }
- }, 1500);
+ if (!emMessage.getText().getEmoji().getAnimate_image().isEmpty()) {
+ // 使用 RequestListener 监听加载完成
+ Glide.with(mContext)
+ .load(emMessage.getText().getEmoji().getAnimate_image())
+ .listener(new RequestListener() {
+ @Override
+ public boolean onResourceReady(Drawable resource, Object model, Target target,
+ DataSource dataSource, boolean isFirstResource) {
+ // 检查视图是否仍属于当前数据项
+ if (uniqueId.equals(emojiImageView.getTag())) {
+ // 加载完成后执行
+ new Handler().postDelayed(() -> {
+ // 再次检查视图状态
+ if (uniqueId.equals(emojiImageView.getTag())) {
+ Glide.with(mContext)
+ .load(emMessage.getText().getEmoji().getImage())
+ .into(emojiImageView);
+ }
+ }, 1500);
+ }
+ return false;
}
- return false;
- }
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target,
- boolean isFirstResource) {
- return false;
- }
- })
- .into(emojiImageView);
+ @Override
+ public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target,
+ boolean isFirstResource) {
+
+ return false;
+ }
+ })
+ .into(emojiImageView);
+ }else {
+ Glide.with(mContext)
+ .load(emMessage.getText().getEmoji().getImage())
+ .into(emojiImageView);
+ }
} else {
helper.getView(com.xscm.moduleutil.R.id.tv_content).setVisibility(View.VISIBLE);
emojiImageView.setVisibility(View.GONE);
@@ -573,7 +592,7 @@ public class EaseChatAdapter extends BaseMultiItemQuickAdapter {
+ if (item.is_lock()==1){
+ ToastUtils.show("当前属于爵位专属,请先开通爵位");
+ return;
+ }
if (onEmotionClickListener != null) {
onEmotionClickListener.onEmotionClick(item);
}
diff --git a/MainModule/src/main/java/com/xscm/modulemain/adapter/ExpandColumnAdapter.java b/MainModule/src/main/java/com/xscm/modulemain/adapter/ExpandColumnAdapter.java
index 5258e8bc..368c4b8b 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/adapter/ExpandColumnAdapter.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/adapter/ExpandColumnAdapter.java
@@ -1,5 +1,6 @@
package com.xscm.modulemain.adapter;
+import android.graphics.Color;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -53,6 +54,7 @@ public class ExpandColumnAdapter extends BaseQuickAdapter {
if (selectedPosition != -1){
if (selectedPosition == 0){
- AgoraManager.getInstance(getActivity()).potexao(new File(getSavePath() + "xs.mp3").getPath());
+ AgoraManager.getInstance().potexao(new File(getSavePath() + "xs.mp3").getPath());
}else if (selectedPosition == 1){
- AgoraManager.getInstance(getActivity()).potexao(new File(getSavePath() + "hh.mp3").getPath());
+ AgoraManager.getInstance().potexao(new File(getSavePath() + "hh.mp3").getPath());
}else if (selectedPosition == 2){
- AgoraManager.getInstance(getActivity()).potexao(new File(getSavePath() + "gg.mp3").getPath());
+ AgoraManager.getInstance().potexao(new File(getSavePath() + "gg.mp3").getPath());
}else if (selectedPosition == 3){
- AgoraManager.getInstance(getActivity()).potexao(new File(getSavePath() + "zs.mp3").getPath());
+ AgoraManager.getInstance().potexao(new File(getSavePath() + "zs.mp3").getPath());
}else if (selectedPosition == 4){
- AgoraManager.getInstance(getActivity()).potexao(new File(getSavePath() + "mmd.mp3").getPath());
+ AgoraManager.getInstance().potexao(new File(getSavePath() + "mmd.mp3").getPath());
}
}
diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/TunerDialogFragment.java b/MainModule/src/main/java/com/xscm/modulemain/dialog/TunerDialogFragment.java
index 392c7703..53642fb8 100644
--- a/MainModule/src/main/java/com/xscm/modulemain/dialog/TunerDialogFragment.java
+++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/TunerDialogFragment.java
@@ -105,7 +105,7 @@ public class TunerDialogFragment extends BaseMvpDialogFragment
diff --git a/MainModule/src/main/res/layout/activity_main.xml b/MainModule/src/main/res/layout/activity_main.xml
index 0b4e3c53..fc9e93b4 100644
--- a/MainModule/src/main/res/layout/activity_main.xml
+++ b/MainModule/src/main/res/layout/activity_main.xml
@@ -229,34 +229,45 @@
-
-
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:visibility="gone"
+ tools:visibility="visible">
+
+
+
+ android:visibility="gone">
+
diff --git a/MainModule/src/main/res/layout/activity_setting.xml b/MainModule/src/main/res/layout/activity_setting.xml
index b816622a..17c0b1c0 100644
--- a/MainModule/src/main/res/layout/activity_setting.xml
+++ b/MainModule/src/main/res/layout/activity_setting.xml
@@ -111,6 +111,34 @@
android:layout_alignParentBottom="true"
android:background="@color/color_FFE5E5E5" />
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
diff --git a/MainModule/src/main/res/layout/fragment_vocal_range.xml b/MainModule/src/main/res/layout/fragment_vocal_range.xml
index 37f08467..4893a380 100644
--- a/MainModule/src/main/res/layout/fragment_vocal_range.xml
+++ b/MainModule/src/main/res/layout/fragment_vocal_range.xml
@@ -7,6 +7,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never"
+ android:background="@mipmap/home_bj"
android:paddingBottom="@dimen/dp_60">
+ app:layout_constraintTop_toTopOf="parent"
+ android:visibility="gone">
+ android:src="@drawable/image_yq"/>
+ android:src="@drawable/custom"/>
+ android:src="@mipmap/setting"/>
@@ -57,18 +56,18 @@
+ app:layout_constraintTop_toTopOf="parent"/>
-
+ app:layout_constraintTop_toTopOf="@+id/riv_user_head"
+ android:layout_marginStart="@dimen/dp_14"
+ tools:text="用户22333333"/>
-
+
-
+
-
+
-
-
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -175,7 +217,7 @@
+ android:layout_gravity="center|center_horizontal|center_vertical"
+ android:orientation="vertical">
+
+ android:textColor="#CCCDC8"
+ android:textSize="@dimen/sp_12"/>
-
@@ -215,8 +258,8 @@
android:layout_width="@dimen/dp_1"
android:layout_height="@dimen/dp_18"
android:layout_gravity="center_vertical"
- android:background="@color/white"
- android:visibility="gone" />
+ android:background="#444541"
+ />
+ android:orientation="vertical">
+
+
-
-
+ android:textColor="#CCCDC8"
+ android:textSize="@dimen/sp_12"/>
@@ -251,8 +294,8 @@
android:layout_width="@dimen/dp_1"
android:layout_height="@dimen/dp_18"
android:layout_gravity="center_vertical"
- android:background="@color/white"
- android:visibility="gone" />
+ android:background="#444541"
+ />
+
+
-
-
+ android:textColor="#CCCDC8"
+ android:textSize="@dimen/sp_12"/>
@@ -289,7 +332,7 @@
android:layout_height="@dimen/dp_18"
android:layout_gravity="center_vertical"
android:background="@color/white"
- android:visibility="gone" />
+ android:visibility="gone"/>
+ android:visibility="gone">
+ android:textSize="@dimen/sp_20"/>
+ android:textSize="@dimen/sp_12"/>
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:text="更多"
+ android:gravity="center"
+ android:drawableRight="@mipmap/arrow_right"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="@id/im_noblesse"
+ android:layout_marginEnd="@dimen/dp_15"
+ android:textColor="#EECE72"
+ android:textSize="@dimen/sp_14"/>
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_marginTop="@dimen/dp_12"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/rl"
+ app:pointsVisibility="false"/>
+
+
+ android:paddingStart="@dimen/dp_16"
+ android:paddingBottom="@dimen/dp_12"
+ android:paddingEnd="@dimen/dp_16"
+ >
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:src="@mipmap/my_dan"/>
+ android:textColor="#CCCDC8"
+ android:textSize="@dimen/sp_12"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -465,15 +799,102 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_17"
android:layout_marginTop="@dimen/dp_3"
- android:text="@string/guild"
- android:textColor="@color/color_FF333333"
- android:textSize="@dimen/sp_12" />
+ android:text="@string/setting_name"
+ android:textColor="#CCCDC8"
+ android:textSize="@dimen/sp_12"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:src="@mipmap/me_test"
+
+ />
+ android:text="@string/daily"
+ android:textColor="#CCCDC8"
+ android:textSize="@dimen/sp_12"/>
+
+
+
+
+
+
+
@@ -503,30 +950,30 @@
android:orientation="horizontal">
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:src="@mipmap/me_income"/>
+ android:text="个税客服"
+ android:textColor="#CCCDC8"
+ android:textSize="@dimen/sp_12"/>
-
+
+
+
+
-
+
+
+
+
+
+
+
-
-
-
diff --git a/MainModule/src/main/res/layout/item_emotion.xml b/MainModule/src/main/res/layout/item_emotion.xml
index 40de97b4..8c97ed19 100644
--- a/MainModule/src/main/res/layout/item_emotion.xml
+++ b/MainModule/src/main/res/layout/item_emotion.xml
@@ -1,34 +1,45 @@
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="@dimen/dp_60"
+ android:layout_height="@dimen/dp_85"
+ xmlns:tools="http://schemas.android.com/tools"
+ >
+ android:id="@+id/iv_emotion"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:scaleType="fitCenter"
+ tools:src="@mipmap/ic_launcher"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:layout_marginBottom="@dimen/dp_10"
+ app:layout_constraintTop_toTopOf="parent" />
+ android:id="@+id/tv_emotion_name"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:ellipsize="end"
+ android:maxLines="1"
+ android:gravity="center"
+ android:textColor="#BBB9C6"
+ android:textSize="12sp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/iv_emotion" />
+
+
diff --git a/MainModule/src/main/res/layout/room_top.xml b/MainModule/src/main/res/layout/room_top.xml
index 125db6bf..a7fd39af 100644
--- a/MainModule/src/main/res/layout/room_top.xml
+++ b/MainModule/src/main/res/layout/room_top.xml
@@ -108,7 +108,8 @@
android:gravity="center"
android:text="0"
android:textColor="@color/white"
- android:textSize="@dimen/sp_12" />
+ android:textSize="@dimen/sp_12"
+ android:visibility="gone"/>
+ android:textSize="@dimen/sp_12"
+ android:visibility="gone"/>
+
+