separate live dm

Closes #1217

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-09-18 16:25:50 +08:00
parent a6182b20c0
commit 64e893e36f
6 changed files with 32 additions and 18 deletions

View File

@@ -775,8 +775,8 @@ class _LiveRoomPageState extends State<LiveRoomPage>
children: [
Obx(
() {
final enableShowDanmaku =
plPlayerController.enableShowDanmaku.value;
final enableShowLiveDanmaku =
plPlayerController.enableShowLiveDanmaku.value;
return SizedBox(
width: 34,
height: 34,
@@ -785,16 +785,17 @@ class _LiveRoomPageState extends State<LiveRoomPage>
padding: EdgeInsets.zero,
),
onPressed: () {
final newVal = !enableShowDanmaku;
plPlayerController.enableShowDanmaku.value = newVal;
final newVal = !enableShowLiveDanmaku;
plPlayerController.enableShowLiveDanmaku.value =
newVal;
if (!plPlayerController.tempPlayerConf) {
GStorage.setting.put(
SettingBoxKey.enableShowDanmaku,
SettingBoxKey.enableShowLiveDanmaku,
newVal,
);
}
},
icon: enableShowDanmaku
icon: enableShowLiveDanmaku
? const Icon(
size: 22,
Icons.subtitles_outlined,
@@ -1019,7 +1020,7 @@ class _LiveDanmakuState extends State<LiveDanmaku> {
return Obx(
() {
return AnimatedOpacity(
opacity: plPlayerController.enableShowDanmaku.value ? 1 : 0,
opacity: plPlayerController.enableShowLiveDanmaku.value ? 1 : 0,
duration: const Duration(milliseconds: 100),
child: DanmakuScreen(
createdController: (DanmakuController e) {

View File

@@ -70,10 +70,10 @@ class BottomControl extends StatelessWidget {
const SizedBox(width: 3),
Obx(
() {
final enableShowDanmaku =
plPlayerController.enableShowDanmaku.value;
final enableShowLiveDanmaku =
plPlayerController.enableShowLiveDanmaku.value;
return ComBtn(
icon: enableShowDanmaku
icon: enableShowLiveDanmaku
? const Icon(
size: 18,
Icons.subtitles_outlined,
@@ -85,11 +85,11 @@ class BottomControl extends StatelessWidget {
color: Colors.white,
),
onTap: () {
final newVal = !enableShowDanmaku;
plPlayerController.enableShowDanmaku.value = newVal;
final newVal = !enableShowLiveDanmaku;
plPlayerController.enableShowLiveDanmaku.value = newVal;
if (!plPlayerController.tempPlayerConf) {
GStorage.setting.put(
SettingBoxKey.enableShowDanmaku,
SettingBoxKey.enableShowLiveDanmaku,
newVal,
);
}

View File

@@ -75,10 +75,18 @@ class PlayerFocus extends StatelessWidget {
return true;
case LogicalKeyboardKey.keyD:
final newVal = !plPlayerController.enableShowDanmaku.value;
plPlayerController.enableShowDanmaku.value = newVal;
if (!plPlayerController.tempPlayerConf) {
GStorage.setting.put(SettingBoxKey.enableShowDanmaku, newVal);
if (plPlayerController.isLive) {
final newVal = !plPlayerController.enableShowLiveDanmaku.value;
plPlayerController.enableShowLiveDanmaku.value = newVal;
if (!plPlayerController.tempPlayerConf) {
GStorage.setting.put(SettingBoxKey.enableShowLiveDanmaku, newVal);
}
} else {
final newVal = !plPlayerController.enableShowDanmaku.value;
plPlayerController.enableShowDanmaku.value = newVal;
if (!plPlayerController.tempPlayerConf) {
GStorage.setting.put(SettingBoxKey.enableShowDanmaku, newVal);
}
}
return true;

View File

@@ -254,7 +254,8 @@ class PlPlayerController {
bool get isLive => _isLive;
/// 弹幕开关
RxBool enableShowDanmaku = Pref.enableShowDanmaku.obs;
late final RxBool enableShowDanmaku = Pref.enableShowDanmaku.obs;
late final RxBool enableShowLiveDanmaku = Pref.enableShowLiveDanmaku.obs;
late final bool autoPiP = Pref.autoPiP;

View File

@@ -167,6 +167,7 @@ abstract class SettingBoxKey {
blockTrack = 'blockTrack';
static const String enableShowDanmaku = 'enableShowDanmaku',
enableShowLiveDanmaku = 'enableShowLiveDanmaku',
pipNoDanmaku = 'pipNoDanmaku',
showVipDanmaku = 'showVipDanmaku',
showSpecialDanmaku = 'showSpecialDanmaku',

View File

@@ -635,6 +635,9 @@ abstract class Pref {
static bool get enableShowDanmaku =>
_setting.get(SettingBoxKey.enableShowDanmaku, defaultValue: true);
static bool get enableShowLiveDanmaku =>
_setting.get(SettingBoxKey.enableShowLiveDanmaku, defaultValue: true);
static bool get enableQuickFav =>
_setting.get(SettingBoxKey.enableQuickFav, defaultValue: false);