Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-01-29 11:16:07 +08:00
parent 9567910611
commit 1640732f5d
3 changed files with 74 additions and 80 deletions

View File

@@ -18,14 +18,12 @@ import 'package:PiliPlus/models/common/theme/theme_type.dart';
import 'package:PiliPlus/pages/main/controller.dart';
import 'package:PiliPlus/pages/mine/controller.dart';
import 'package:PiliPlus/pages/setting/models/model.dart';
import 'package:PiliPlus/pages/setting/pages/color_select.dart';
import 'package:PiliPlus/pages/setting/slide_color_picker.dart';
import 'package:PiliPlus/pages/setting/widgets/dual_slide_dialog.dart';
import 'package:PiliPlus/pages/setting/widgets/multi_select_dialog.dart';
import 'package:PiliPlus/pages/setting/widgets/select_dialog.dart';
import 'package:PiliPlus/pages/setting/widgets/slide_dialog.dart';
import 'package:PiliPlus/plugin/pl_player/utils/fullscreen.dart';
import 'package:PiliPlus/utils/extension/get_ext.dart';
import 'package:PiliPlus/utils/extension/num_ext.dart';
import 'package:PiliPlus/utils/extension/theme_ext.dart';
import 'package:PiliPlus/utils/global_data.dart';
@@ -562,7 +560,6 @@ List<SettingsModel> get styleSettings => [
Get.find<MineController>().themeType.value = result;
} catch (_) {}
GStorage.setting.put(SettingBoxKey.themeMode, result.index);
Get.putOrFind(ColorSelectController.new).themeType.value = result;
Get.changeThemeMode(result.toThemeMode);
setState();
}
@@ -692,20 +689,17 @@ List<SettingsModel> get styleSettings => [
),
NormalModel(
onTap: (context, setState) async {
final result = await Get.toNamed('/fontSizeSetting');
if (result != null) {
Get.putOrFind(ColorSelectController.new).currentTextScale.value =
result;
final res = await Get.toNamed('/fontSizeSetting');
if (res != null) {
setState();
}
},
title: '字体大小',
leading: const Icon(Icons.format_size_outlined),
getSubtitle: () =>
Get.putOrFind(ColorSelectController.new).currentTextScale.value == 1.0
? '默认'
: Get.putOrFind(
ColorSelectController.new,
).currentTextScale.value.toString(),
getSubtitle: () {
final scale = Pref.defaultTextScale;
return scale == 1.0 ? '默认' : scale.toString();
},
),
NormalModel(
onTap: (context, setState) => Get.toNamed(

View File

@@ -38,7 +38,7 @@ class Item {
}
class _ColorSelectPageState extends State<ColorSelectPage> {
final ctr = Get.put(ColorSelectController());
final ctr = Get.put(_ColorSelectController());
FlexSchemeVariant _dynamicSchemeVariant = Pref.schemeVariant;
@override
@@ -270,10 +270,9 @@ class _ColorSelectPageState extends State<ColorSelectPage> {
}
}
class ColorSelectController extends GetxController {
class _ColorSelectController extends GetxController {
final RxBool dynamicColor = Pref.dynamicColor.obs;
final RxInt currentColor = Pref.customColor.obs;
final RxDouble currentTextScale = Pref.defaultTextScale.obs;
final Rx<ThemeType> themeType = Pref.themeType.obs;
Box get setting => GStorage.setting;

View File

@@ -1500,84 +1500,85 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
}).toList(),
);
return Container(
height: 45,
return DecoratedBox(
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: 1,
color: themeData.dividerColor.withValues(alpha: 0.1),
),
),
),
child: Row(
children: [
if (tabs.isEmpty)
const Spacer()
else
child: SizedBox(
height: 45,
child: Row(
children: [
if (tabs.isEmpty)
const Spacer()
else
Flexible(
flex: tabs.length == 3 ? 2 : 1,
child: tabBar(),
),
Flexible(
flex: tabs.length == 3 ? 2 : 1,
child: tabBar(),
),
Flexible(
flex: 1,
child: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
SizedBox(
height: 32,
child: TextButton(
style: const ButtonStyle(
padding: WidgetStatePropertyAll(EdgeInsets.zero),
),
onPressed: videoDetailController.showShootDanmakuSheet,
child: Text(
'发弹幕',
style: TextStyle(
fontSize: 12,
color: themeData.colorScheme.onSurfaceVariant,
flex: 1,
child: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
SizedBox(
height: 32,
child: TextButton(
style: const ButtonStyle(
padding: WidgetStatePropertyAll(EdgeInsets.zero),
),
onPressed: videoDetailController.showShootDanmakuSheet,
child: Text(
'发弹幕',
style: TextStyle(
fontSize: 12,
color: themeData.colorScheme.onSurfaceVariant,
),
),
),
),
),
SizedBox(
width: 38,
height: 38,
child: Obx(
() {
final ctr = videoDetailController.plPlayerController;
final enableShowDanmaku = ctr.enableShowDanmaku.value;
return IconButton(
onPressed: () {
final newVal = !enableShowDanmaku;
ctr.enableShowDanmaku.value = newVal;
if (!ctr.tempPlayerConf) {
GStorage.setting.put(
SettingBoxKey.enableShowDanmaku,
newVal,
);
}
},
icon: Icon(
size: 22,
enableShowDanmaku
? CustomIcons.dm_on
: CustomIcons.dm_off,
color: enableShowDanmaku
? themeData.colorScheme.secondary
: themeData.colorScheme.outline,
),
);
},
SizedBox(
width: 38,
height: 38,
child: Obx(
() {
final ctr = videoDetailController.plPlayerController;
final enableShowDanmaku = ctr.enableShowDanmaku.value;
return IconButton(
onPressed: () {
final newVal = !enableShowDanmaku;
ctr.enableShowDanmaku.value = newVal;
if (!ctr.tempPlayerConf) {
GStorage.setting.put(
SettingBoxKey.enableShowDanmaku,
newVal,
);
}
},
icon: Icon(
size: 22,
enableShowDanmaku
? CustomIcons.dm_on
: CustomIcons.dm_off,
color: enableShowDanmaku
? themeData.colorScheme.secondary
: themeData.colorScheme.outline,
),
);
},
),
),
),
const SizedBox(width: 14),
],
const SizedBox(width: 14),
],
),
),
),
),
],
],
),
),
);
}