From da52cac2c67a5180228ee3a85d11fb95ec89d19f Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Thu, 23 Oct 2025 10:20:23 +0800 Subject: [PATCH] tweaks Signed-off-by: bggRGjQaUbCoE --- lib/models/common/search/search_type.dart | 9 ++- lib/pages/audio/view.dart | 20 +++--- lib/pages/search_panel/view.dart | 18 ++--- lib/pages/video/medialist/view.dart | 2 + .../pl_player/widgets/bottom_control.dart | 65 ++++++++++--------- lib/utils/image_utils.dart | 6 +- 6 files changed, 62 insertions(+), 58 deletions(-) diff --git a/lib/models/common/search/search_type.dart b/lib/models/common/search/search_type.dart index fffa3432..a5b06332 100644 --- a/lib/models/common/search/search_type.dart +++ b/lib/models/common/search/search_type.dart @@ -2,7 +2,7 @@ enum SearchType { // all('综合'), // 视频:video - video('视频', hasHeader: true), + video('视频'), // 番剧:media_bangumi, media_bangumi('番剧'), // 影视:media_ft @@ -16,13 +16,12 @@ enum SearchType { // 话题:topic // topic, // 用户:bili_user - bili_user('用户', hasHeader: true), + bili_user('用户'), // 专栏:article - article('专栏', hasHeader: true); + article('专栏'); // 相簿:photo // photo - final bool hasHeader; final String label; - const SearchType(this.label, {this.hasHeader = false}); + const SearchType(this.label); } diff --git a/lib/pages/audio/view.dart b/lib/pages/audio/view.dart index f9964d73..f64524bf 100644 --- a/lib/pages/audio/view.dart +++ b/lib/pages/audio/view.dart @@ -735,8 +735,8 @@ class _AudioPageState extends State { final baseBarColor = colorScheme.brightness.isDark ? const Color(0x33FFFFFF) : const Color(0x33999999); - return Obx(() { - final child = ProgressBar( + final child = Obx( + () => ProgressBar( progress: _controller.position.value, total: _controller.duration.value, baseBarColor: baseBarColor, @@ -749,15 +749,15 @@ class _AudioPageState extends State { onDragStart: _onDragStart, onDragUpdate: _onDragUpdate, onSeek: _onSeek, + ), + ); + if (Utils.isDesktop) { + return MouseRegion( + cursor: SystemMouseCursors.click, + child: child, ); - if (Utils.isDesktop) { - return MouseRegion( - cursor: SystemMouseCursors.click, - child: child, - ); - } - return child; - }); + } + return child; } Widget _buildDuration(ColorScheme colorScheme) { diff --git a/lib/pages/search_panel/view.dart b/lib/pages/search_panel/view.dart index 4697ed81..e4eafe66 100644 --- a/lib/pages/search_panel/view.dart +++ b/lib/pages/search_panel/view.dart @@ -42,8 +42,13 @@ abstract class CommonSearchPanelState< controller: controller.scrollController, physics: const AlwaysScrollableScrollPhysics(), slivers: [ - if (widget.searchType.hasHeader) buildHeader(theme), - Obx(() => _buildBody(theme, controller.loadingState.value)), + ?buildHeader(theme), + SliverPadding( + padding: EdgeInsets.only( + bottom: MediaQuery.viewPaddingOf(context).bottom + 100, + ), + sliver: Obx(() => _buildBody(theme, controller.loadingState.value)), + ), ], ), ); @@ -56,12 +61,7 @@ abstract class CommonSearchPanelState< Loading() => buildLoading, Success(:var response) => response?.isNotEmpty == true - ? SliverPadding( - padding: EdgeInsets.only( - bottom: MediaQuery.viewPaddingOf(context).bottom + 100, - ), - sliver: buildList(theme, response!), - ) + ? buildList(theme, response!) : HttpError(onReload: controller.onReload), Error(:var errMsg) => HttpError( errMsg: errMsg, @@ -70,7 +70,7 @@ abstract class CommonSearchPanelState< }; } - Widget buildHeader(ThemeData theme) => throw UnimplementedError(); + Widget? buildHeader(ThemeData theme) => null; Widget buildList(ThemeData theme, List list); } diff --git a/lib/pages/video/medialist/view.dart b/lib/pages/video/medialist/view.dart index 85dd43c6..b1a5d182 100644 --- a/lib/pages/video/medialist/view.dart +++ b/lib/pages/video/medialist/view.dart @@ -76,6 +76,7 @@ class _MediaListPanelState extends State backgroundColor: Colors.transparent, actions: [ iconButton( + iconSize: 20, tooltip: widget.desc ? '顺序播放' : '倒序播放', icon: widget.desc ? const Icon(MdiIcons.sortAscending) @@ -86,6 +87,7 @@ class _MediaListPanelState extends State }, ), iconButton( + iconSize: 20, tooltip: '关闭', icon: const Icon(Icons.close), onPressed: Get.back, diff --git a/lib/plugin/pl_player/widgets/bottom_control.dart b/lib/plugin/pl_player/widgets/bottom_control.dart index 1f7518ce..9ec6163d 100644 --- a/lib/plugin/pl_player/widgets/bottom_control.dart +++ b/lib/plugin/pl_player/widgets/bottom_control.dart @@ -86,6 +86,39 @@ class BottomControl extends StatelessWidget { ); } + Widget progressBar() { + final child = Obx(() { + final int value = controller.sliderPositionSeconds.value; + final int max = controller.durationSeconds.value.inSeconds; + if (value > max || max <= 0) { + return const SizedBox.shrink(); + } + return ProgressBar( + progress: Duration(seconds: value), + buffered: Duration(seconds: controller.bufferedSeconds.value), + total: Duration(seconds: max), + progressBarColor: primary, + baseBarColor: const Color(0x33FFFFFF), + bufferedBarColor: bufferedBarColor, + thumbColor: primary, + thumbGlowColor: thumbGlowColor, + barHeight: 3.5, + thumbRadius: 7, + thumbGlowRadius: 25, + onDragStart: onDragStart, + onDragUpdate: (e) => onDragUpdate(e, max), + onSeek: (e) => onSeek(e, max), + ); + }); + if (Utils.isDesktop) { + return MouseRegion( + cursor: SystemMouseCursors.click, + child: child, + ); + } + return child; + } + return Padding( padding: const EdgeInsets.fromLTRB(10, 0, 10, 12), child: Column( @@ -98,37 +131,7 @@ class BottomControl extends StatelessWidget { clipBehavior: Clip.none, alignment: Alignment.bottomCenter, children: [ - Obx(() { - final int value = controller.sliderPositionSeconds.value; - final int max = controller.durationSeconds.value.inSeconds; - final int buffer = controller.bufferedSeconds.value; - if (value > max || max <= 0) { - return const SizedBox.shrink(); - } - final child = ProgressBar( - progress: Duration(seconds: value), - buffered: Duration(seconds: buffer), - total: Duration(seconds: max), - progressBarColor: primary, - baseBarColor: const Color(0x33FFFFFF), - bufferedBarColor: bufferedBarColor, - thumbColor: primary, - thumbGlowColor: thumbGlowColor, - barHeight: 3.5, - thumbRadius: 7, - thumbGlowRadius: 25, - onDragStart: onDragStart, - onDragUpdate: (e) => onDragUpdate(e, max), - onSeek: (e) => onSeek(e, max), - ); - if (Utils.isDesktop) { - return MouseRegion( - cursor: SystemMouseCursors.click, - child: child, - ); - } - return child; - }), + progressBar(), if (controller.enableSponsorBlock && videoDetailController.segmentProgressList.isNotEmpty) Positioned( diff --git a/lib/utils/image_utils.dart b/lib/utils/image_utils.dart index 697160b1..602688d1 100644 --- a/lib/utils/image_utils.dart +++ b/lib/utils/image_utils.dart @@ -197,7 +197,7 @@ abstract class ImageUtils { cancelToken: cancelToken, ); - if (Utils.isMobile) { + if (Platform.isAndroid) { if (response.statusCode == 200) { await SaverGallery.saveFile( filePath: filePath, @@ -214,7 +214,7 @@ abstract class ImageUtils { del: true, ); } else { - if (Utils.isMobile) { + if (Platform.isAndroid) { await SaverGallery.saveFile( filePath: file.path, fileName: name, @@ -227,7 +227,7 @@ abstract class ImageUtils { } }); final result = await Future.wait(futures, eagerError: true); - if (!Utils.isMobile) { + if (!Platform.isAndroid) { for (var res in result) { if (res.statusCode == 200) { await saveFileImg(