diff --git a/lib/common/widgets/article_content.dart b/lib/common/widgets/article_content.dart index 283a4869f..d98fb2b09 100644 --- a/lib/common/widgets/article_content.dart +++ b/lib/common/widgets/article_content.dart @@ -1,6 +1,7 @@ import 'package:PiliPalaX/common/widgets/network_img_layer.dart'; import 'package:PiliPalaX/models/dynamics/article_content_model.dart'; import 'package:PiliPalaX/pages/preview/view.dart'; +import 'package:PiliPalaX/utils/extension.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_html/flutter_html.dart'; @@ -55,7 +56,7 @@ class ArticleContent extends StatelessWidget { alignment: Alignment.center, padding: const EdgeInsets.symmetric(vertical: 10), child: CachedNetworkImage( - imageUrl: item.line?.pic?.url ?? '', + imageUrl: item.line?.pic?.url?.http2https ?? '', height: item.line?.pic?.height?.toDouble(), ), ); diff --git a/lib/common/widgets/network_img_layer.dart b/lib/common/widgets/network_img_layer.dart index a64153165..e587e2540 100644 --- a/lib/common/widgets/network_img_layer.dart +++ b/lib/common/widgets/network_img_layer.dart @@ -68,7 +68,7 @@ class NetworkImgLayer extends StatelessWidget { : StyleString.imgRadius.x, ), child: CachedNetworkImage( - imageUrl: imageUrl, + imageUrl: imageUrl.http2https, width: width, height: ignoreHeight == null || ignoreHeight == false ? height : null, diff --git a/lib/pages/preview/view.dart b/lib/pages/preview/view.dart index 57d30a615..24760246f 100644 --- a/lib/pages/preview/view.dart +++ b/lib/pages/preview/view.dart @@ -2,6 +2,7 @@ import 'dart:io'; +import 'package:PiliPalaX/utils/extension.dart'; import 'package:flutter/services.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; @@ -35,15 +36,18 @@ class _ImagePreviewState extends State late DoubleClickAnimationListener _doubleClickAnimationListener; List doubleTapScales = [1.0, 2.0]; bool _dismissDisabled = false; + List? imgList; @override void initState() { super.initState(); + imgList = widget.imgList?.map((url) => url.http2https).toList(); + _previewController.initialPage.value = widget.initialPage!; _previewController.currentPage.value = widget.initialPage! + 1; - _previewController.imgList.value = widget.imgList!; - _previewController.currentImgUrl = widget.imgList![widget.initialPage!]; + _previewController.imgList.value = imgList!; + _previewController.currentImgUrl = imgList![widget.initialPage!]; // animationController = AnimationController( // vsync: this, duration: const Duration(milliseconds: 400)); setStatusBar(); @@ -149,10 +153,10 @@ class _ImagePreviewState extends State canScrollPage: (GestureDetails? gestureDetails) => gestureDetails?.totalScale == null || gestureDetails!.totalScale! <= 1.0, - itemCount: widget.imgList!.length, + itemCount: imgList!.length, itemBuilder: (BuildContext context, int index) { return ExtendedImage.network( - widget.imgList![index], + imgList![index], fit: BoxFit.contain, mode: ExtendedImageMode.gesture, handleLoadingProgress: true, @@ -262,7 +266,7 @@ class _ImagePreviewState extends State child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - widget.imgList!.length > 1 + imgList!.length > 1 ? Obx( () => Text.rich( textAlign: TextAlign.center, @@ -274,9 +278,7 @@ class _ImagePreviewState extends State text: _previewController.currentPage .toString()), const TextSpan(text: ' / '), - TextSpan( - text: - widget.imgList!.length.toString()), + TextSpan(text: imgList!.length.toString()), ]), ), ) diff --git a/lib/pages/search/widgets/hot_keyword.dart b/lib/pages/search/widgets/hot_keyword.dart index a2b0452b8..9b6ba7292 100644 --- a/lib/pages/search/widgets/hot_keyword.dart +++ b/lib/pages/search/widgets/hot_keyword.dart @@ -1,4 +1,5 @@ // ignore: file_names +import 'package:PiliPalaX/utils/extension.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; @@ -50,7 +51,9 @@ class HotKeyword extends StatelessWidget { SizedBox( height: 15, child: CachedNetworkImage( - imageUrl: i.icon!, height: 15.0), + imageUrl: (i.icon as String).http2https, + height: 15.0, + ), ), ], ), diff --git a/lib/utils/extension.dart b/lib/utils/extension.dart index 041d733d9..d148292ee 100644 --- a/lib/utils/extension.dart +++ b/lib/utils/extension.dart @@ -41,3 +41,7 @@ extension ListExt on List? { bool ne(List? other) => !eq(other); } + +extension StringExt on String { + String get http2https => replaceFirst(RegExp("^http://"), "https://"); +}