mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-20 03:06:59 +08:00
@@ -4,8 +4,6 @@ import 'package:PiliPlus/plugin/pl_player/controller.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/utils/danmaku_options.dart';
|
||||
import 'package:PiliPlus/utils/extension/num_ext.dart';
|
||||
import 'package:PiliPlus/utils/page_utils.dart';
|
||||
import 'package:PiliPlus/utils/storage.dart';
|
||||
import 'package:PiliPlus/utils/storage_key.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
@@ -33,21 +31,11 @@ mixin HeaderMixin<T extends StatefulWidget> on State<T> {
|
||||
);
|
||||
}
|
||||
|
||||
Widget resetBtn(
|
||||
ThemeData theme,
|
||||
Object def,
|
||||
VoidCallback onPressed, {
|
||||
bool isDanmaku = true,
|
||||
}) {
|
||||
Widget resetBtn(ThemeData theme, Object def, VoidCallback onPressed) {
|
||||
return iconButton(
|
||||
tooltip: '默认值: $def',
|
||||
icon: const Icon(Icons.refresh),
|
||||
onPressed: () {
|
||||
onPressed();
|
||||
if (!isDanmaku) {
|
||||
plPlayerController.putSubtitleSettings();
|
||||
}
|
||||
},
|
||||
onPressed: onPressed,
|
||||
iconColor: theme.colorScheme.outline,
|
||||
size: 24,
|
||||
iconSize: 24,
|
||||
@@ -55,7 +43,7 @@ mixin HeaderMixin<T extends StatefulWidget> on State<T> {
|
||||
}
|
||||
|
||||
/// 弹幕功能
|
||||
Future<void> showSetDanmaku({bool isLive = false}) async {
|
||||
void showSetDanmaku({bool isLive = false}) {
|
||||
// 屏蔽类型
|
||||
const blockTypesList = [
|
||||
(value: 2, label: '滚动'),
|
||||
@@ -69,7 +57,7 @@ mixin HeaderMixin<T extends StatefulWidget> on State<T> {
|
||||
|
||||
final isFullScreen = this.isFullScreen;
|
||||
|
||||
await showBottomSheet(
|
||||
showBottomSheet(
|
||||
(context, setState) {
|
||||
final theme = Theme.of(context);
|
||||
|
||||
@@ -147,7 +135,7 @@ mixin HeaderMixin<T extends StatefulWidget> on State<T> {
|
||||
}
|
||||
|
||||
void updateDanmakuWeight(double val) {
|
||||
plPlayerController.danmakuWeight = val.toInt();
|
||||
DanmakuOptions.danmakuWeight = val.toInt();
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@@ -184,7 +172,7 @@ mixin HeaderMixin<T extends StatefulWidget> on State<T> {
|
||||
Row(
|
||||
mainAxisAlignment: .spaceBetween,
|
||||
children: [
|
||||
Text('智能云屏蔽 ${plPlayerController.danmakuWeight} 级'),
|
||||
Text('智能云屏蔽 ${DanmakuOptions.danmakuWeight} 级'),
|
||||
TextButton(
|
||||
style: TextButton.styleFrom(
|
||||
padding: EdgeInsets.zero,
|
||||
@@ -215,14 +203,10 @@ mixin HeaderMixin<T extends StatefulWidget> on State<T> {
|
||||
child: Slider(
|
||||
min: 0,
|
||||
max: 10,
|
||||
value: plPlayerController.danmakuWeight.toDouble(),
|
||||
value: DanmakuOptions.danmakuWeight.toDouble(),
|
||||
divisions: 10,
|
||||
label: '${plPlayerController.danmakuWeight}',
|
||||
label: DanmakuOptions.danmakuWeight.toString(),
|
||||
onChanged: updateDanmakuWeight,
|
||||
onChangeEnd: (val) => GStorage.setting.put(
|
||||
SettingBoxKey.danmakuWeight,
|
||||
val.toInt(),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -255,30 +239,30 @@ mixin HeaderMixin<T extends StatefulWidget> on State<T> {
|
||||
spacing: 10,
|
||||
children: [
|
||||
ActionRowLineItem(
|
||||
selectStatus: DanmakuOptions.massiveMode,
|
||||
selectStatus: DanmakuOptions.danmakuMassiveMode,
|
||||
onTap: () {
|
||||
DanmakuOptions.massiveMode =
|
||||
!DanmakuOptions.massiveMode;
|
||||
DanmakuOptions.danmakuMassiveMode =
|
||||
!DanmakuOptions.danmakuMassiveMode;
|
||||
setState(() {});
|
||||
setOptions();
|
||||
},
|
||||
text: '海量弹幕',
|
||||
),
|
||||
ActionRowLineItem(
|
||||
selectStatus: DanmakuOptions.static2Scroll,
|
||||
selectStatus: DanmakuOptions.danmakuStatic2Scroll,
|
||||
onTap: () {
|
||||
DanmakuOptions.static2Scroll =
|
||||
!DanmakuOptions.static2Scroll;
|
||||
DanmakuOptions.danmakuStatic2Scroll =
|
||||
!DanmakuOptions.danmakuStatic2Scroll;
|
||||
setState(() {});
|
||||
setOptions();
|
||||
},
|
||||
text: '固定转滚动',
|
||||
),
|
||||
ActionRowLineItem(
|
||||
selectStatus: DanmakuOptions.scrollFixedVelocity,
|
||||
selectStatus: DanmakuOptions.danmakuFixedV,
|
||||
onTap: () {
|
||||
DanmakuOptions.scrollFixedVelocity =
|
||||
!DanmakuOptions.scrollFixedVelocity;
|
||||
DanmakuOptions.danmakuFixedV =
|
||||
!DanmakuOptions.danmakuFixedV;
|
||||
setState(() {});
|
||||
setOptions();
|
||||
},
|
||||
@@ -534,9 +518,9 @@ mixin HeaderMixin<T extends StatefulWidget> on State<T> {
|
||||
),
|
||||
);
|
||||
},
|
||||
)?.whenComplete(
|
||||
() => DanmakuOptions.save(plPlayerController.danmakuOpacity.value),
|
||||
);
|
||||
|
||||
await DanmakuOptions.save();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user