From 687e720956b4c2ae75a7e19db255825554fb8e9b Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sun, 26 Jan 2025 14:50:52 +0800 Subject: [PATCH] :lipstick: Optimize news --- api/Reader/Trigger Scan News.bru | 2 +- lib/screens/news/news_detail.dart | 12 ++++++++++-- lib/screens/news/news_list.dart | 12 +++++++++--- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/api/Reader/Trigger Scan News.bru b/api/Reader/Trigger Scan News.bru index 9c02e7d..9ce569a 100644 --- a/api/Reader/Trigger Scan News.bru +++ b/api/Reader/Trigger Scan News.bru @@ -12,7 +12,7 @@ post { body:json { { - "sources": ["shadiao"], + "sources": ["taiwan-yahoo"], "eager": true } } diff --git a/lib/screens/news/news_detail.dart b/lib/screens/news/news_detail.dart index f9f3d60..cdec6ef 100644 --- a/lib/screens/news/news_detail.dart +++ b/lib/screens/news/news_detail.dart @@ -101,7 +101,9 @@ class _NewsDetailScreenState extends State { final width = double.tryParse(node.attributes['width'] ?? 'null'); final height = double.tryParse(node.attributes['height'] ?? 'null'); final ratio = width != null && height != null ? width / height : 1.0; - if (!src.startsWith('http')) { + if (src.startsWith('//')) { + src = 'https:$src'; + } else if (!src.startsWith('http')) { final baseUri = Uri.parse(_article!.url); final baseUrl = '${baseUri.scheme}://${baseUri.host}'; src = '$baseUrl/$src'; @@ -120,7 +122,13 @@ class _NewsDetailScreenState extends State { height: height ?? double.infinity, child: ClipRRect( borderRadius: BorderRadius.all(Radius.circular(8)), - child: AutoResizeUniversalImage(src, fit: BoxFit.cover), + child: Container( + color: Theme.of(context).colorScheme.surfaceContainer, + child: AutoResizeUniversalImage( + src, + fit: width != null && height != null ? BoxFit.cover : BoxFit.contain, + ), + ), ), ), ), diff --git a/lib/screens/news/news_list.dart b/lib/screens/news/news_list.dart index e7094e9..54b2815 100644 --- a/lib/screens/news/news_list.dart +++ b/lib/screens/news/news_list.dart @@ -178,11 +178,17 @@ class _NewsArticleListWidgetState extends State<_NewsArticleListWidget> { children: [ if (article.thumbnail.isNotEmpty && !article.thumbnail.endsWith('.svg')) ClipRRect( - borderRadius: BorderRadius.all(Radius.circular(8)), + borderRadius: BorderRadius.only( + topRight: Radius.circular(8), + topLeft: Radius.circular(8), + ), child: AspectRatio( aspectRatio: 16 / 9, - child: AutoResizeUniversalImage( - article.thumbnail.startsWith('http') ? article.thumbnail : '$baseUrl/${article.thumbnail}', + child: Container( + color: Theme.of(context).colorScheme.surfaceContainer, + child: AutoResizeUniversalImage( + article.thumbnail.startsWith('http') ? article.thumbnail : '$baseUrl/${article.thumbnail}', + ), ), ), ),