From 101e49fe7468524219ee316c9d162ba5ebcc2ebe Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Tue, 29 Apr 2025 14:13:36 +0800 Subject: [PATCH] mod: handle medialist url Signed-off-by: bggRGjQaUbCoE --- lib/pages/fav_detail/view.dart | 13 +++++-------- lib/utils/app_scheme.dart | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/lib/pages/fav_detail/view.dart b/lib/pages/fav_detail/view.dart index dcbf3b2f..37f83674 100644 --- a/lib/pages/fav_detail/view.dart +++ b/lib/pages/fav_detail/view.dart @@ -41,11 +41,8 @@ class _FavDetailPageState extends State { } void listener() { - if (_favDetailController.scrollController.offset > 160) { - _favDetailController.titleCtr.value = true; - } else if (_favDetailController.scrollController.offset <= 160) { - _favDetailController.titleCtr.value = false; - } + _favDetailController.titleCtr.value = + _favDetailController.scrollController.offset >= 120; } @override @@ -95,7 +92,7 @@ class _FavDetailPageState extends State { icon: const Icon(Icons.close_outlined), ) : null, - expandedHeight: 200 - MediaQuery.of(context).padding.top, + expandedHeight: kTextTabBarHeight + 130, pinned: true, title: _favDetailController.enableMultiSelect.value ? Text( @@ -316,7 +313,7 @@ class _FavDetailPageState extends State { const SizedBox(width: 6), ], flexibleSpace: FlexibleSpaceBar( - background: Container( + background: Padding( padding: EdgeInsets.only( top: kTextTabBarHeight + MediaQuery.of(context).padding.top + @@ -333,7 +330,7 @@ class _FavDetailPageState extends State { Hero( tag: _favDetailController.heroTag, child: NetworkImgLayer( - width: 180, + width: 110 * StyleString.aspectRatio, height: 110, src: _favDetailController.item.value.cover, ), diff --git a/lib/utils/app_scheme.dart b/lib/utils/app_scheme.dart index 0734815d..05862045 100644 --- a/lib/utils/app_scheme.dart +++ b/lib/utils/app_scheme.dart @@ -665,6 +665,21 @@ class PiliScheme { } launchURL(); return false; + case 'medialist': + String? mediaId = RegExp(r'/ml(\d+)').firstMatch(path)?.group(1); + if (mediaId != null) { + PageUtils.toDupNamed( + '/favDetail', + parameters: { + 'mediaId': mediaId, + 'heroTag': Utils.makeHeroTag(mediaId), + }, + off: off, + ); + return true; + } + launchURL(); + return false; default: Map map = IdUtils.matchAvorBv(input: area?.split('?').first); if (map.isNotEmpty) {