diff --git a/lib/util/render.dart b/lib/util/render.dart index 3aee9ac..e0cdc32 100644 --- a/lib/util/render.dart +++ b/lib/util/render.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:html/parser.dart'; @@ -7,7 +9,7 @@ import 'package:voyagehandbook/api/classes.dart'; import 'package:voyagehandbook/util/styles.dart'; import 'package:voyagehandbook/util/widgets/warning.dart'; import 'package:html_unescape/html_unescape_small.dart'; -import 'package:zoom_pinch_overlay/zoom_pinch_overlay.dart'; +import 'package:widget_zoom/widget_zoom.dart'; /* Voyage Handbook - The open-source WikiVoyage reader @@ -275,6 +277,32 @@ class PageRenderer { height: 10, ), ); + } else if (element.id == "thumbinner") { + var imgs = element.getElementsByTagName("img"); + if (imgs.isEmpty) break; + var img = imgs[0]; + var cap = element.getElementsByClassName("thumbcaption")[0]; + out.add(const SizedBox( + height: 10, + )); + out.add( + SizedBox( + width: width * 0.8, + height: height * 0.3, + child: WidgetZoom( + zoomWidget: + CachedNetworkImage(imageUrl: img.attributes["src"]!), + heroAnimationTag: 'tag', + ), + ), + ); + out.add(const SizedBox( + height: 3, + )); + out.add(Text(cap.text)); + out.add(const SizedBox( + height: 10, + )); } break; default: @@ -312,8 +340,9 @@ class PageRenderer { // TODO: open wikimedia page? width: width * 0.8, height: height * 0.3, - child: ZoomOverlay( - child: CachedNetworkImage( + child: WidgetZoom( + heroAnimationTag: 'img${Random().nextInt(999)}', + zoomWidget: CachedNetworkImage( imageUrl: img.attributes["src"]!.replaceAll("//", "https://"), progressIndicatorBuilder: (context, url, downloadProgress) => LinearProgressIndicator(value: downloadProgress.progress), diff --git a/pubspec.lock b/pubspec.lock index 94400b9..e38d556 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -909,6 +909,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" + widget_zoom: + dependency: "direct main" + description: + name: widget_zoom + sha256: f7c7352b5ea1f08e9419edddd938852239ad4c94ee70d29b5b5f142b04cb8eca + url: "https://pub.dev" + source: hosted + version: "0.0.1" win32: dependency: transitive description: @@ -941,14 +949,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.1" - zoom_pinch_overlay: - dependency: "direct main" - description: - name: zoom_pinch_overlay - sha256: cad0aef0127953e3a2ad65aa51660e9c86fa11906e286297f9a70aab69163f64 - url: "https://pub.dev" - source: hosted - version: "1.4.1+3" sdks: dart: ">=2.19.4 <3.0.0" flutter: ">=3.4.0-17.0.pre" diff --git a/pubspec.yaml b/pubspec.yaml index 2374100..67cb7fe 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -45,7 +45,7 @@ dependencies: url_launcher: ^6.1.10 cached_network_image: ^3.2.3 html_unescape: ^2.0.0 - zoom_pinch_overlay: ^1.4.1+3 + widget_zoom: ^0.0.1 dev_dependencies: flutter_test: