mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-07-16 22:30:16 +08:00
@@ -644,7 +644,7 @@ class VideoDetailController extends GetxController
|
||||
await Get.key.currentState!.push(
|
||||
PublishRoute(
|
||||
pageBuilder: (buildContext, animation, secondaryAnimation) {
|
||||
return SendDanmakuPanel(
|
||||
final child = SendDanmakuPanel(
|
||||
cid: cid.value,
|
||||
bvid: bvid,
|
||||
progress: plPlayerController.position.inMilliseconds,
|
||||
@@ -654,10 +654,13 @@ class VideoDetailController extends GetxController
|
||||
savedDanmaku = null;
|
||||
plPlayerController.danmakuController?.addDanmaku(danmakuModel);
|
||||
},
|
||||
darkVideoPage: plPlayerController.darkVideoPage,
|
||||
dmConfig: dmConfig,
|
||||
onSaveDmConfig: (dmConfig) => this.dmConfig = dmConfig,
|
||||
);
|
||||
if (plPlayerController.darkVideoPage) {
|
||||
return Theme(data: ThemeUtils.darkTheme, child: child);
|
||||
}
|
||||
return child;
|
||||
},
|
||||
),
|
||||
);
|
||||
@@ -1022,22 +1025,16 @@ class VideoDetailController extends GetxController
|
||||
);
|
||||
}
|
||||
if (plPlayerController.isFullScreen.value || showVideoSheet) {
|
||||
final child = PostPanel(
|
||||
enableSlide: false,
|
||||
videoDetailController: this,
|
||||
plPlayerController: plPlayerController,
|
||||
);
|
||||
PageUtils.showVideoBottomSheet(
|
||||
context,
|
||||
child: plPlayerController.darkVideoPage
|
||||
? Theme(
|
||||
data: ThemeUtils.darkTheme,
|
||||
child: PostPanel(
|
||||
enableSlide: false,
|
||||
videoDetailController: this,
|
||||
plPlayerController: plPlayerController,
|
||||
),
|
||||
)
|
||||
: PostPanel(
|
||||
enableSlide: false,
|
||||
videoDetailController: this,
|
||||
plPlayerController: plPlayerController,
|
||||
),
|
||||
? Theme(data: ThemeUtils.darkTheme, child: child)
|
||||
: child,
|
||||
);
|
||||
} else {
|
||||
childKey.currentState?.showBottomSheet(
|
||||
@@ -1349,26 +1346,18 @@ class VideoDetailController extends GetxController
|
||||
).videoDetail.value.title;
|
||||
} catch (_) {}
|
||||
if (plPlayerController.isFullScreen.value || showVideoSheet) {
|
||||
final child = NoteListPage(
|
||||
oid: aid,
|
||||
enableSlide: false,
|
||||
heroTag: heroTag,
|
||||
isStein: graphVersion != null,
|
||||
title: title,
|
||||
);
|
||||
PageUtils.showVideoBottomSheet(
|
||||
context,
|
||||
child: plPlayerController.darkVideoPage
|
||||
? Theme(
|
||||
data: ThemeUtils.darkTheme,
|
||||
child: NoteListPage(
|
||||
oid: aid,
|
||||
enableSlide: false,
|
||||
heroTag: heroTag,
|
||||
isStein: graphVersion != null,
|
||||
title: title,
|
||||
),
|
||||
)
|
||||
: NoteListPage(
|
||||
oid: aid,
|
||||
enableSlide: false,
|
||||
heroTag: heroTag,
|
||||
isStein: graphVersion != null,
|
||||
title: title,
|
||||
),
|
||||
? Theme(data: ThemeUtils.darkTheme, child: child)
|
||||
: child,
|
||||
);
|
||||
} else {
|
||||
childKey.currentState?.showBottomSheet(
|
||||
|
||||
@@ -10,7 +10,6 @@ import 'package:PiliPlus/pages/danmaku/danmaku_model.dart';
|
||||
import 'package:PiliPlus/pages/setting/slide_color_picker.dart';
|
||||
import 'package:PiliPlus/plugin/pl_player/controller.dart';
|
||||
import 'package:PiliPlus/utils/storage_pref.dart';
|
||||
import 'package:PiliPlus/utils/theme_utils.dart';
|
||||
import 'package:canvas_danmaku/models/danmaku_content_item.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart' show LengthLimitingTextInputFormatter;
|
||||
@@ -24,7 +23,6 @@ class SendDanmakuPanel extends CommonTextPubPage {
|
||||
final dynamic progress;
|
||||
|
||||
final ValueChanged<DanmakuContentItem<DanmakuExtra>> onSuccess;
|
||||
final bool darkVideoPage;
|
||||
|
||||
// config
|
||||
final ({int? mode, int? fontSize, Color? color})? dmConfig;
|
||||
@@ -38,7 +36,6 @@ class SendDanmakuPanel extends CommonTextPubPage {
|
||||
this.bvid,
|
||||
this.progress,
|
||||
required this.onSuccess,
|
||||
required this.darkVideoPage,
|
||||
this.dmConfig,
|
||||
this.onSaveDmConfig,
|
||||
});
|
||||
@@ -138,14 +135,14 @@ class _SendDanmakuPanelState extends CommonTextPubPageState<SendDanmakuPanel> {
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
super.didChangeDependencies();
|
||||
themeData = widget.darkVideoPage ? ThemeUtils.darkTheme : Theme.of(context);
|
||||
themeData = Theme.of(context);
|
||||
}
|
||||
|
||||
late ThemeData themeData;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Widget child = ViewSafeArea(
|
||||
return ViewSafeArea(
|
||||
child: Align(
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: Container(
|
||||
@@ -164,7 +161,6 @@ class _SendDanmakuPanelState extends CommonTextPubPageState<SendDanmakuPanel> {
|
||||
),
|
||||
),
|
||||
);
|
||||
return widget.darkVideoPage ? Theme(data: themeData, child: child) : child;
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -1983,14 +1983,12 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
},
|
||||
);
|
||||
if (isFullScreen || videoDetailController.showVideoSheet) {
|
||||
final child = listSheetContent(enableSlide: false);
|
||||
PageUtils.showVideoBottomSheet(
|
||||
context,
|
||||
child: videoDetailController.plPlayerController.darkVideoPage
|
||||
? Theme(
|
||||
data: themeData,
|
||||
child: listSheetContent(enableSlide: false),
|
||||
)
|
||||
: listSheetContent(enableSlide: false),
|
||||
? Theme(data: themeData, child: child)
|
||||
: child,
|
||||
);
|
||||
} else {
|
||||
videoDetailController.childKey.currentState?.showBottomSheet(
|
||||
@@ -2062,22 +2060,16 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
|
||||
void showViewPoints() {
|
||||
if (isFullScreen || videoDetailController.showVideoSheet) {
|
||||
final child = ViewPointsPage(
|
||||
enableSlide: false,
|
||||
videoDetailController: videoDetailController,
|
||||
plPlayerController: plPlayerController,
|
||||
);
|
||||
PageUtils.showVideoBottomSheet(
|
||||
context,
|
||||
child: videoDetailController.plPlayerController.darkVideoPage
|
||||
? Theme(
|
||||
data: themeData,
|
||||
child: ViewPointsPage(
|
||||
enableSlide: false,
|
||||
videoDetailController: videoDetailController,
|
||||
plPlayerController: plPlayerController,
|
||||
),
|
||||
)
|
||||
: ViewPointsPage(
|
||||
enableSlide: false,
|
||||
videoDetailController: videoDetailController,
|
||||
plPlayerController: plPlayerController,
|
||||
),
|
||||
? Theme(data: themeData, child: child)
|
||||
: child,
|
||||
);
|
||||
} else {
|
||||
videoDetailController.childKey.currentState?.showBottomSheet(
|
||||
|
||||
@@ -4,6 +4,7 @@ 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/theme_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
@@ -12,6 +13,13 @@ mixin HeaderMixin<T extends StatefulWidget> on State<T> {
|
||||
|
||||
bool get isFullScreen => plPlayerController.isFullScreen.value;
|
||||
|
||||
ThemeData? get theme {
|
||||
if (plPlayerController.darkVideoPage) {
|
||||
return ThemeUtils.darkTheme;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Future<void>? showBottomSheet(
|
||||
StatefulWidgetBuilder builder, {
|
||||
ValueGetter<EdgeInsets>? padding,
|
||||
@@ -21,12 +29,16 @@ mixin HeaderMixin<T extends StatefulWidget> on State<T> {
|
||||
maxWidth: 512,
|
||||
padding: padding,
|
||||
child: StatefulBuilder(
|
||||
builder: (context, setState) => plPlayerController.darkVideoPage
|
||||
? Theme(
|
||||
data: Theme.of(this.context),
|
||||
child: builder(this.context, setState),
|
||||
)
|
||||
: builder(context, setState),
|
||||
builder: (context, setState) {
|
||||
final theme = this.theme;
|
||||
if (theme != null) {
|
||||
return Theme(
|
||||
data: theme,
|
||||
child: builder(this.context, setState),
|
||||
);
|
||||
}
|
||||
return builder(context, setState);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user