From 3f1b8ee2fa98915c9c9ea8d40bd16ab2fe49baf4 Mon Sep 17 00:00:00 2001 From: lzl <1239365383@qq.com> Date: Tue, 30 Dec 2025 19:05:23 +0800 Subject: [PATCH] =?UTF-8?q?82=20=E6=B7=BB=E5=8A=A0=E7=AD=BE=E5=88=B0?= =?UTF-8?q?=E5=BB=B6=E8=BF=9F1=E5=88=86=E9=92=9F=E5=BC=B9=E5=87=BA?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xscm/moduleutil/rtc/AgoraManager.java | 27 +++++++++++--- .../xscm/moduleutil/utils/CustomMsgCode.kt | 2 ++ .../java/com/xscm/modulemain/Application.kt | 35 +++++++++++++++++++ .../activity/main/activity/MainActivity.java | 2 ++ .../activity/room/fragment/VoiceFragment.java | 27 +++++++------- app/build.gradle | 2 +- 6 files changed, 77 insertions(+), 18 deletions(-) diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java b/BaseModule/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java index 7cd44cc5..b8f7cfe8 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/rtc/AgoraManager.java @@ -19,6 +19,7 @@ import android.media.projection.MediaProjection; import android.os.Handler; import android.os.Looper; import android.os.SystemClock; +import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; import android.view.Display; @@ -124,7 +125,7 @@ public class AgoraManager { private Disposable disposableC; // UI 刷新最小间隔(ms) - private static final long SOUND_UI_INTERVAL = 200; + private static final long SOUND_UI_INTERVAL = 120; private final Handler uiHandler = new Handler(Looper.getMainLooper()); private long lastDispatchTime = 0; @@ -563,9 +564,12 @@ public class AgoraManager { // 1️⃣ 构建局部 Map(声网线程私有) Map localMap = new HashMap<>(); for (AudioVolumeInfo info : speakers) { - String userId = info.uid > 0 - ? String.valueOf(info.uid) - : String.valueOf(SpUtil.getUserId()); + String userId = ""; + if (info.uid == 0) { + userId = SpUtil.getUserId()+""; + }else { + userId = String.valueOf(info.uid); + } localMap.put(userId, info.volume); } @@ -1011,6 +1015,7 @@ public class AgoraManager { // } // } public void addSoundLevelListener(SoundLevelUpdateListener listener) { + LogUtils.e("AgoraManager", "addSoundLevelListener: " + listener +"============"+soundLevelUpdateListeners.size()); if (soundLevelUpdateListeners != null) { soundLevelUpdateListeners.add(listener); } @@ -1022,10 +1027,24 @@ public class AgoraManager { } } + public void removeSoundLevelListenerAll() { + if (soundLevelUpdateListeners != null) + soundLevelUpdateListeners.clear(); + } + +/** + * This method searches for music based on a given keyword and page number. + * It initializes the music content center if it's not already created. + * + * @param keyword The keyword to search for music + * @param page The page number of the search results + */ public void searchMusic(String keyword, int page) { + // Check if musicContentCenter is initialized, if not create it if (musicContentCenter == null) { musicContentCenter = IAgoraMusicContentCenter.create(rtcEngine); } + // Perform the music search with the keyword, page number and page size (20) musicContentCenter.searchMusic(keyword, page, 20); } diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/utils/CustomMsgCode.kt b/BaseModule/src/main/java/com/xscm/moduleutil/utils/CustomMsgCode.kt index 1ac523e2..0f76c377 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/utils/CustomMsgCode.kt +++ b/BaseModule/src/main/java/com/xscm/moduleutil/utils/CustomMsgCode.kt @@ -5,4 +5,6 @@ object CustomMsgCode { val CODE_TASK_APPRENTICE_JOIN_ROOM = 132 val CODE_TASK_APPRENTICE_JOIN_ROOM_MSG = "您的师傅邀请您进入房间,您是否同意?" val CODE_TASK_APPRENTICE_JOIN_ROOM_MSG_REFUSE = "您的徒弟拒绝了您的邀请。" + + val CODE_USER_SIGN_IN = "签到" } \ No newline at end of file diff --git a/MainModule/src/main/java/com/xscm/modulemain/Application.kt b/MainModule/src/main/java/com/xscm/modulemain/Application.kt index 729348d1..aa2be20b 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/Application.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/Application.kt @@ -16,12 +16,14 @@ import com.scwang.smartrefresh.layout.header.ClassicsHeader import com.xscm.modulemain.activity.login.activity.ImproveInfoActivity import com.xscm.modulemain.activity.room.activity.RoomActivity import com.xscm.modulemain.dialog.InviteDialog +import com.xscm.modulemain.dialog.SignInDialog import com.xscm.modulemain.manager.RoomManager import com.xscm.modulemain.utils.TimerManager import com.xscm.modulemain.widget.WheatLayoutSingManager import com.xscm.moduleutil.base.CommonAppContext import com.xscm.moduleutil.bean.IndexRecommendRoom import com.xscm.moduleutil.bean.RoomMessageEvent +import com.xscm.moduleutil.bean.TasksSignStatus import com.xscm.moduleutil.dialog.ConfirmDialog import com.xscm.moduleutil.http.BaseObserver import com.xscm.moduleutil.http.RetrofitClient @@ -108,6 +110,39 @@ open class Application : CommonAppContext() { initImMsg() } + + fun userSignIn(){ + if (isKeepScreenOn) + return + TimerManager.scheduleTimer(CustomMsgCode.CODE_USER_SIGN_IN,60,TimeUnit.SECONDS, onTimeUp = { + RetrofitClient.getInstance().tasksSignStatus(object : BaseObserver() { + override fun onSubscribe(d: Disposable) { + + } + + override fun onNext(t: TasksSignStatus) { + if (t.status == 1) { + + } else { + var activity:Activity? = null + if (ActivityUtils.getTopActivity() != null){ + activity = ActivityUtils.getTopActivity() + } + if (activity == null) + return + + if (!activity.isFinishing && !activity.isDestroyed) { + val signInDialog = SignInDialog(getContext()) + signInDialog.setOnCloseListener { + null + } + signInDialog.show() + } + } + } + }) + }) + } /** * 自定义 LeakCanary 配置(解决误报、优化检测规则) */ diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/main/activity/MainActivity.java b/MainModule/src/main/java/com/xscm/modulemain/activity/main/activity/MainActivity.java index 1a821244..36324133 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/main/activity/MainActivity.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/main/activity/MainActivity.java @@ -206,6 +206,8 @@ public class MainActivity extends BaseMvpActivity() { - @Override - public Unit invoke() { - MvpPre.activitiesPermission(); - return null; - } - }); - signInDialog.show(); - } + MvpPre.activitiesPermission(); +// if (tasksSignStatus.getStatus()==1){ +// MvpPre.activitiesPermission(); +// }else { +// SignInDialog signInDialog = new SignInDialog(getContext()); +// signInDialog.setOnCloseListener(new Function0() { +// @Override +// public Unit invoke() { +// MvpPre.activitiesPermission(); +// return null; +// } +// }); +// signInDialog.show(); +// } } private void setDialog(){ diff --git a/app/build.gradle b/app/build.gradle index ceb62b40..fec825a6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -129,7 +129,7 @@ android { debug { debuggable true - minifyEnabled true + minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.debug