diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 00000000..4a53bee8 --- /dev/null +++ b/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml new file mode 100644 index 00000000..b268ef36 --- /dev/null +++ b/.idea/deploymentTargetSelector.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 00000000..16660f1d --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..94a25f7f --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/VolumeManager.java b/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/VolumeManager.java new file mode 100644 index 00000000..113e269a --- /dev/null +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/VolumeManager.java @@ -0,0 +1,77 @@ +package com.xscm.moduleutil.rtc; + +import java.util.HashMap; +import java.util.Map; + +/** + * com.xscm.moduleutil.rtc + * qx + * 2025/11/3 + * 声网声音管理类 + */ +public class VolumeManager { + private static VolumeManager instance; + private Map userMusicVolumeMap = new HashMap<>(); + private Map userPlayoutVolumeMap = new HashMap<>(); + private Map userPlayoutBzMap = new HashMap<>(); + private String currentUserId; + + private VolumeManager() {} + + public static VolumeManager getInstance() { + if (instance == null) { + synchronized (VolumeManager.class) { + if (instance == null) { + instance = new VolumeManager(); + } + } + } + return instance; + } + + public void setCurrentUserId(String userId) { + this.currentUserId = userId; + } + + public void saveCurrentVolumes(int musicVolume, int playoutVolume) { + if (currentUserId != null) { + userMusicVolumeMap.put(currentUserId, musicVolume); + userPlayoutVolumeMap.put(currentUserId, playoutVolume); + } + } + public void clearCurrentVolumes() { + if (currentUserId != null) { + userMusicVolumeMap.remove(currentUserId); + userPlayoutVolumeMap.remove(currentUserId); + } + userPlayoutBzMap.clear(); + } + + public void saveBz(String userId, boolean bz){ + userPlayoutBzMap.clear(); + userPlayoutBzMap.put(userId, bz); + } + + public boolean getBz(String userId){ + Boolean bz = userPlayoutBzMap.get(userId); + if (bz == null) { + bz = true; // 默认值原唱 false 伴奏 + } + return bz; + } + + public int[] getUserVolumes(String userId) { + Integer musicVolume = userMusicVolumeMap.get(userId); + Integer playoutVolume = userPlayoutVolumeMap.get(userId); + + if (musicVolume == null) { + musicVolume = 100; // 默认值 + } + if (playoutVolume == null) { + playoutVolume = 50; // 默认值 + } + + return new int[]{musicVolume, playoutVolume}; + } +} + diff --git a/moduleUtil/src/main/res/mipmap-hdpi/accompany_off.webp b/moduleUtil/src/main/res/mipmap-hdpi/accompany_off.webp new file mode 100644 index 00000000..9c75fd1d Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-hdpi/accompany_off.webp differ diff --git a/moduleUtil/src/main/res/mipmap-hdpi/accompany_on.webp b/moduleUtil/src/main/res/mipmap-hdpi/accompany_on.webp new file mode 100644 index 00000000..8d12720b Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-hdpi/accompany_on.webp differ diff --git a/moduleUtil/src/main/res/mipmap-hdpi/icon_liang.webp b/moduleUtil/src/main/res/mipmap-hdpi/icon_liang.webp new file mode 100644 index 00000000..f429f26d Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-hdpi/icon_liang.webp differ diff --git a/moduleUtil/src/main/res/mipmap-hdpi/muisc_reward.webp b/moduleUtil/src/main/res/mipmap-hdpi/muisc_reward.webp new file mode 100644 index 00000000..b24e1b2c Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-hdpi/muisc_reward.webp differ diff --git a/moduleUtil/src/main/res/mipmap-hdpi/muisc_switch.webp b/moduleUtil/src/main/res/mipmap-hdpi/muisc_switch.webp new file mode 100644 index 00000000..8885a78d Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-hdpi/muisc_switch.webp differ diff --git a/moduleUtil/src/main/res/mipmap-hdpi/muisc_tyt.webp b/moduleUtil/src/main/res/mipmap-hdpi/muisc_tyt.webp new file mode 100644 index 00000000..726606da Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-hdpi/muisc_tyt.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xhdpi/accompany_off.webp b/moduleUtil/src/main/res/mipmap-xhdpi/accompany_off.webp new file mode 100644 index 00000000..8065c9be Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xhdpi/accompany_off.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xhdpi/accompany_on.webp b/moduleUtil/src/main/res/mipmap-xhdpi/accompany_on.webp new file mode 100644 index 00000000..fe7e84d7 Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xhdpi/accompany_on.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xhdpi/icon_liang.webp b/moduleUtil/src/main/res/mipmap-xhdpi/icon_liang.webp new file mode 100644 index 00000000..9a6378a0 Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xhdpi/icon_liang.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xhdpi/muisc_reward.webp b/moduleUtil/src/main/res/mipmap-xhdpi/muisc_reward.webp new file mode 100644 index 00000000..58eeb34e Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xhdpi/muisc_reward.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xhdpi/muisc_switch.webp b/moduleUtil/src/main/res/mipmap-xhdpi/muisc_switch.webp new file mode 100644 index 00000000..80eb4425 Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xhdpi/muisc_switch.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xhdpi/muisc_tyt.webp b/moduleUtil/src/main/res/mipmap-xhdpi/muisc_tyt.webp new file mode 100644 index 00000000..47611afc Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xhdpi/muisc_tyt.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xxhdpi/accompany_off.webp b/moduleUtil/src/main/res/mipmap-xxhdpi/accompany_off.webp new file mode 100644 index 00000000..f90eea1d Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xxhdpi/accompany_off.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xxhdpi/accompany_on.webp b/moduleUtil/src/main/res/mipmap-xxhdpi/accompany_on.webp new file mode 100644 index 00000000..fdf2c359 Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xxhdpi/accompany_on.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xxhdpi/icon_liang.webp b/moduleUtil/src/main/res/mipmap-xxhdpi/icon_liang.webp new file mode 100644 index 00000000..3602e0dc Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xxhdpi/icon_liang.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xxhdpi/muisc_reward.webp b/moduleUtil/src/main/res/mipmap-xxhdpi/muisc_reward.webp new file mode 100644 index 00000000..c563f6d7 Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xxhdpi/muisc_reward.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xxhdpi/muisc_switch.webp b/moduleUtil/src/main/res/mipmap-xxhdpi/muisc_switch.webp new file mode 100644 index 00000000..46f8d797 Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xxhdpi/muisc_switch.webp differ diff --git a/moduleUtil/src/main/res/mipmap-xxhdpi/muisc_tyt.webp b/moduleUtil/src/main/res/mipmap-xxhdpi/muisc_tyt.webp new file mode 100644 index 00000000..b1bb8034 Binary files /dev/null and b/moduleUtil/src/main/res/mipmap-xxhdpi/muisc_tyt.webp differ diff --git a/moduletablayout/src/androidTest/java/com/example/moduletablayout/ExampleInstrumentedTest.java b/moduletablayout/src/androidTest/java/com/example/moduletablayout/ExampleInstrumentedTest.java new file mode 100644 index 00000000..b9144cc5 --- /dev/null +++ b/moduletablayout/src/androidTest/java/com/example/moduletablayout/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.example.moduletablayout; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.example.moduletablayout", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/moduletablayout/src/test/java/com/example/moduletablayout/ExampleUnitTest.java b/moduletablayout/src/test/java/com/example/moduletablayout/ExampleUnitTest.java new file mode 100644 index 00000000..2f7018d9 --- /dev/null +++ b/moduletablayout/src/test/java/com/example/moduletablayout/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.example.moduletablayout; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file