mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
feat: use interactiveviewer gallery
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:PiliPalaX/http/init.dart';
|
||||
import 'package:device_info_plus/device_info_plus.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -92,17 +93,14 @@ class DownloadUtils {
|
||||
if (!await checkPermissionDependOnSdkInt(context)) {
|
||||
return;
|
||||
}
|
||||
Dio dio = Dio()
|
||||
..options = BaseOptions(
|
||||
connectTimeout: const Duration(milliseconds: 10000),
|
||||
receiveTimeout: const Duration(milliseconds: 10000),
|
||||
);
|
||||
for (int i = 0; i < imgList.length; i++) {
|
||||
SmartDialog.showLoading(
|
||||
msg:
|
||||
'正在下载原图${imgList.length > 1 ? '${i + 1}/${imgList.length}' : ''}');
|
||||
var response = await dio.get(imgList[i],
|
||||
options: Options(responseType: ResponseType.bytes));
|
||||
var response = await Request().get(
|
||||
imgList[i],
|
||||
options: Options(responseType: ResponseType.bytes),
|
||||
);
|
||||
String picName =
|
||||
"${imgType}_${DateTime.now().toString().replaceAll(' ', '_').replaceAll(':', '-').split('.').first}";
|
||||
final SaveResult result = await SaverGallery.saveImage(
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:PiliPalaX/pages/preview/view.dart';
|
||||
import 'package:PiliPalaX/common/widgets/interactiveviewer_gallery/hero_dialog_route.dart';
|
||||
import 'package:PiliPalaX/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:get/get_navigation/src/dialog/dialog_route.dart';
|
||||
|
||||
extension ImageExtension on num {
|
||||
int cacheSize(BuildContext context) {
|
||||
@@ -67,24 +67,16 @@ extension BuildContextExt on BuildContext {
|
||||
void imageView({
|
||||
int? initialPage,
|
||||
required List<String> imgList,
|
||||
ValueChanged<int>? onDismissed,
|
||||
}) {
|
||||
Navigator.of(this).push(
|
||||
GetDialogRoute(
|
||||
pageBuilder: (buildContext, animation, secondaryAnimation) {
|
||||
return ImagePreview(
|
||||
initialPage: initialPage ?? 0,
|
||||
imgList: imgList,
|
||||
);
|
||||
},
|
||||
transitionDuration: const Duration(milliseconds: 300),
|
||||
transitionBuilder: (context, animation, secondaryAnimation, child) {
|
||||
var tween = Tween(begin: 0.0, end: 1.0)
|
||||
.chain(CurveTween(curve: Curves.linear));
|
||||
return FadeTransition(
|
||||
opacity: animation.drive(tween),
|
||||
child: child,
|
||||
);
|
||||
},
|
||||
HeroDialogRoute(
|
||||
builder: (context) => InteractiveviewerGallery(
|
||||
sources: imgList,
|
||||
initIndex: initialPage ?? 0,
|
||||
onPageChanged: (int pageIndex) {},
|
||||
onDismissed: onDismissed,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ class Utils {
|
||||
Map followStatus = result['data'];
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (_) {
|
||||
builder: (context) {
|
||||
bool isSpecialFollowed = followStatus['special'] == 1;
|
||||
String text = isSpecialFollowed ? '移除特别关注' : '加入特别关注';
|
||||
return AlertDialog(
|
||||
|
||||
Reference in New Issue
Block a user