opt: http2https

This commit is contained in:
bggRGjQaUbCoE
2024-10-12 21:06:30 +08:00
parent cfcfa2da5b
commit 86a21d8fc4
5 changed files with 21 additions and 11 deletions

View File

@@ -1,6 +1,7 @@
import 'package:PiliPalaX/common/widgets/network_img_layer.dart'; import 'package:PiliPalaX/common/widgets/network_img_layer.dart';
import 'package:PiliPalaX/models/dynamics/article_content_model.dart'; import 'package:PiliPalaX/models/dynamics/article_content_model.dart';
import 'package:PiliPalaX/pages/preview/view.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:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_html/flutter_html.dart'; import 'package:flutter_html/flutter_html.dart';
@@ -55,7 +56,7 @@ class ArticleContent extends StatelessWidget {
alignment: Alignment.center, alignment: Alignment.center,
padding: const EdgeInsets.symmetric(vertical: 10), padding: const EdgeInsets.symmetric(vertical: 10),
child: CachedNetworkImage( child: CachedNetworkImage(
imageUrl: item.line?.pic?.url ?? '', imageUrl: item.line?.pic?.url?.http2https ?? '',
height: item.line?.pic?.height?.toDouble(), height: item.line?.pic?.height?.toDouble(),
), ),
); );

View File

@@ -68,7 +68,7 @@ class NetworkImgLayer extends StatelessWidget {
: StyleString.imgRadius.x, : StyleString.imgRadius.x,
), ),
child: CachedNetworkImage( child: CachedNetworkImage(
imageUrl: imageUrl, imageUrl: imageUrl.http2https,
width: width, width: width,
height: height:
ignoreHeight == null || ignoreHeight == false ? height : null, ignoreHeight == null || ignoreHeight == false ? height : null,

View File

@@ -2,6 +2,7 @@
import 'dart:io'; import 'dart:io';
import 'package:PiliPalaX/utils/extension.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -35,15 +36,18 @@ class _ImagePreviewState extends State<ImagePreview>
late DoubleClickAnimationListener _doubleClickAnimationListener; late DoubleClickAnimationListener _doubleClickAnimationListener;
List<double> doubleTapScales = <double>[1.0, 2.0]; List<double> doubleTapScales = <double>[1.0, 2.0];
bool _dismissDisabled = false; bool _dismissDisabled = false;
List<String>? imgList;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
imgList = widget.imgList?.map((url) => url.http2https).toList();
_previewController.initialPage.value = widget.initialPage!; _previewController.initialPage.value = widget.initialPage!;
_previewController.currentPage.value = widget.initialPage! + 1; _previewController.currentPage.value = widget.initialPage! + 1;
_previewController.imgList.value = widget.imgList!; _previewController.imgList.value = imgList!;
_previewController.currentImgUrl = widget.imgList![widget.initialPage!]; _previewController.currentImgUrl = imgList![widget.initialPage!];
// animationController = AnimationController( // animationController = AnimationController(
// vsync: this, duration: const Duration(milliseconds: 400)); // vsync: this, duration: const Duration(milliseconds: 400));
setStatusBar(); setStatusBar();
@@ -149,10 +153,10 @@ class _ImagePreviewState extends State<ImagePreview>
canScrollPage: (GestureDetails? gestureDetails) => canScrollPage: (GestureDetails? gestureDetails) =>
gestureDetails?.totalScale == null || gestureDetails?.totalScale == null ||
gestureDetails!.totalScale! <= 1.0, gestureDetails!.totalScale! <= 1.0,
itemCount: widget.imgList!.length, itemCount: imgList!.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return ExtendedImage.network( return ExtendedImage.network(
widget.imgList![index], imgList![index],
fit: BoxFit.contain, fit: BoxFit.contain,
mode: ExtendedImageMode.gesture, mode: ExtendedImageMode.gesture,
handleLoadingProgress: true, handleLoadingProgress: true,
@@ -262,7 +266,7 @@ class _ImagePreviewState extends State<ImagePreview>
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
widget.imgList!.length > 1 imgList!.length > 1
? Obx( ? Obx(
() => Text.rich( () => Text.rich(
textAlign: TextAlign.center, textAlign: TextAlign.center,
@@ -274,9 +278,7 @@ class _ImagePreviewState extends State<ImagePreview>
text: _previewController.currentPage text: _previewController.currentPage
.toString()), .toString()),
const TextSpan(text: ' / '), const TextSpan(text: ' / '),
TextSpan( TextSpan(text: imgList!.length.toString()),
text:
widget.imgList!.length.toString()),
]), ]),
), ),
) )

View File

@@ -1,4 +1,5 @@
// ignore: file_names // ignore: file_names
import 'package:PiliPalaX/utils/extension.dart';
import 'package:cached_network_image/cached_network_image.dart'; import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -50,7 +51,9 @@ class HotKeyword extends StatelessWidget {
SizedBox( SizedBox(
height: 15, height: 15,
child: CachedNetworkImage( child: CachedNetworkImage(
imageUrl: i.icon!, height: 15.0), imageUrl: (i.icon as String).http2https,
height: 15.0,
),
), ),
], ],
), ),

View File

@@ -41,3 +41,7 @@ extension ListExt<T> on List<T>? {
bool ne(List<T>? other) => !eq(other); bool ne(List<T>? other) => !eq(other);
} }
extension StringExt on String {
String get http2https => replaceFirst(RegExp("^http://"), "https://");
}