diff --git a/lib/pages/mine/controller.dart b/lib/pages/mine/controller.dart index 03ea079f5..aac352630 100644 --- a/lib/pages/mine/controller.dart +++ b/lib/pages/mine/controller.dart @@ -32,7 +32,7 @@ class MineController extends CommonDataController // 用户状态 动态、关注、粉丝 final Rx userStat = const UserStat().obs; - Rx themeType = Pref.themeType.obs; + final Rx themeType = Pref.themeType.obs; ThemeType get nextThemeType => ThemeType.values[(themeType.value.index + 1) % ThemeType.values.length]; diff --git a/lib/pages/save_panel/view.dart b/lib/pages/save_panel/view.dart index fd2af540a..2a80e4526 100644 --- a/lib/pages/save_panel/view.dart +++ b/lib/pages/save_panel/view.dart @@ -90,7 +90,7 @@ class _SavePanelState extends State { final currentRoute = Get.currentRoute; late final hasRoot = reply.hasRoot(); - if (currentRoute.startsWith('/video')) { + if (currentRoute == '/videoV') { final rootId = hasRoot ? reply.root : reply.id; uri = diff --git a/lib/pages/video/reply_new/view.dart b/lib/pages/video/reply_new/view.dart index 30efcdbcb..fb7eb485e 100644 --- a/lib/pages/video/reply_new/view.dart +++ b/lib/pages/video/reply_new/view.dart @@ -78,7 +78,7 @@ class _ReplyPageState extends CommonRichTextPubPageState { } late final darkVideoPage = - Get.currentRoute.startsWith('/video') && Pref.darkVideoPage; + Get.currentRoute == '/videoV' && Pref.darkVideoPage; late ThemeData themeData; @override diff --git a/lib/pages/video/view.dart b/lib/pages/video/view.dart index 33ee64b06..660816ed5 100644 --- a/lib/pages/video/view.dart +++ b/lib/pages/video/view.dart @@ -330,13 +330,6 @@ class _VideoDetailPageVState extends State tag: videoDetailController.heroTag, ); - if (!Get.previousRoute.startsWith('/video')) { - if (Platform.isAndroid && !videoDetailController.setSystemBrightness) { - ScreenBrightnessPlatform.instance.resetApplicationScreenBrightness(); - } - PlPlayerController.setPlayCallBack(null); - } - if (!videoDetailController.isFileSource) { if (videoDetailController.isUgc) { ugcIntroController diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index c168e12e9..47ab0d843 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -57,6 +57,7 @@ import 'package:media_kit/media_kit.dart'; import 'package:media_kit_video/media_kit_video.dart'; import 'package:native_device_orientation/native_device_orientation.dart'; import 'package:path/path.dart' as path; +import 'package:screen_brightness_platform_interface/screen_brightness_platform_interface.dart'; import 'package:wakelock_plus/wakelock_plus.dart'; import 'package:window_manager/window_manager.dart'; @@ -281,10 +282,6 @@ class PlPlayerController with BlockConfigMixin { return _isVideoPage(routing.current); } - static bool get _isPreviousVideoPage { - return _isVideoPage(Get.previousRoute); - } - static bool _isVideoPage(String routeName) { return routeName == '/videoV' || routeName == '/liveRoom'; } @@ -301,12 +298,6 @@ class PlPlayerController with BlockConfigMixin { } } - void _disableAutoEnterPipIfNeeded() { - if (!_isPreviousVideoPage) { - _disableAutoEnterPip(); - } - } - void _disableAutoEnterPip() { if (_shouldSetPip) { Utils.channel.invokeMethod('setPipAutoEnterEnabled', { @@ -1636,10 +1627,6 @@ class PlPlayerController with BlockConfigMixin { if (!_isCloseAll && _playerCount > 1) { _playerCount -= 1; _heartDuration = 0; - // called after pop - if (!_isCurrVideoPage) { - pause(); - } return; } @@ -1798,11 +1785,22 @@ class PlPlayerController with BlockConfigMixin { void onPopInvokedWithResult(bool didPop, Object? result) { if (didPop) { - if (Platform.isAndroid) { - _disableAutoEnterPipIfNeeded(); + if (playerStatus.isPlaying) { + pause(); } + + setPlayCallBack(null); + + if (Platform.isAndroid && _playerCount <= 1) { + _disableAutoEnterPip(); + if (!setSystemBrightness) { + ScreenBrightnessPlatform.instance.resetApplicationScreenBrightness(); + } + } + return; } + if (controlsLock.value) { onLockControl(false); return;