opt: video header clock timer

This commit is contained in:
bggRGjQaUbCoE
2024-10-09 09:18:05 +08:00
parent 2d7b728ce8
commit 03b2a3ced3

View File

@@ -63,7 +63,7 @@ class _HeaderControlState extends State<HeaderControl> {
// late StreamSubscription<bool> fullScreenStatusListener; // late StreamSubscription<bool> fullScreenStatusListener;
late bool horizontalScreen; late bool horizontalScreen;
RxString now = ''.obs; RxString now = ''.obs;
late Timer clock; Timer? clock;
late String defaultCDNService; late String defaultCDNService;
bool get isFullScreen => widget.controller!.isFullScreen.value; bool get isFullScreen => widget.controller!.isFullScreen.value;
@@ -82,7 +82,6 @@ class _HeaderControlState extends State<HeaderControl> {
setting.get(SettingBoxKey.horizontalScreen, defaultValue: false); setting.get(SettingBoxKey.horizontalScreen, defaultValue: false);
defaultCDNService = setting.get(SettingBoxKey.CDNService, defaultCDNService = setting.get(SettingBoxKey.CDNService,
defaultValue: CDNService.backupUrl.code); defaultValue: CDNService.backupUrl.code);
startClock();
} }
// void listenFullScreenStatus() { // void listenFullScreenStatus() {
@@ -102,10 +101,22 @@ class _HeaderControlState extends State<HeaderControl> {
void dispose() { void dispose() {
widget.floating?.dispose(); widget.floating?.dispose();
// fullScreenStatusListener.cancel(); // fullScreenStatusListener.cancel();
clock.cancel(); clock?.cancel();
super.dispose(); super.dispose();
} }
@override
void didChangeDependencies() {
super.didChangeDependencies();
if (MediaQuery.of(context).orientation == Orientation.landscape &&
(isFullScreen || !horizontalScreen)) {
startClock();
} else {
clock?.cancel();
clock = null;
}
}
/// 设置面板 /// 设置面板
void showSettingSheet() { void showSettingSheet() {
showModalBottomSheet( showModalBottomSheet(
@@ -1307,7 +1318,7 @@ class _HeaderControlState extends State<HeaderControl> {
} }
startClock() { startClock() {
clock = Timer.periodic(const Duration(seconds: 1), (Timer t) { clock ??= Timer.periodic(const Duration(seconds: 1), (Timer t) {
if (!mounted) { if (!mounted) {
return; return;
} }