diff --git a/android/fastlane/metadata/android/de-DE/changelogs/4053.txt b/android/fastlane/metadata/android/de-DE/changelogs/4053.txt index a89053b1..799d2bc1 100644 --- a/android/fastlane/metadata/android/de-DE/changelogs/4053.txt +++ b/android/fastlane/metadata/android/de-DE/changelogs/4053.txt @@ -1,2 +1,3 @@ +- Dokumente können jetzt wieder in der App betrachtet werden! - Beheben eines Problems mit mTLS - Kleinere Fehlerbehebungen \ No newline at end of file diff --git a/android/fastlane/metadata/android/en-US/changelogs/4053.txt b/android/fastlane/metadata/android/en-US/changelogs/4053.txt index 623c6816..46b03d28 100644 --- a/android/fastlane/metadata/android/en-US/changelogs/4053.txt +++ b/android/fastlane/metadata/android/en-US/changelogs/4053.txt @@ -1,2 +1,3 @@ +- Documents (PDFs) can again be viewed in-app! - Fix issue with mTLS - Some minor bug fixes \ No newline at end of file diff --git a/lib/features/document_edit/view/document_edit_page.dart b/lib/features/document_edit/view/document_edit_page.dart index 59d7218f..f7c39295 100644 --- a/lib/features/document_edit/view/document_edit_page.dart +++ b/lib/features/document_edit/view/document_edit_page.dart @@ -167,7 +167,8 @@ class _DocumentEditPageState extends State child: DocumentView( showAppBar: false, showControls: false, - documentBytes: context + title: state.document.title, + bytes: context .read() .downloadDocument(state.document.id), ), diff --git a/lib/features/document_scan/view/scanner_page.dart b/lib/features/document_scan/view/scanner_page.dart index 6d63430b..c0b5c0f8 100644 --- a/lib/features/document_scan/view/scanner_page.dart +++ b/lib/features/document_scan/view/scanner_page.dart @@ -121,7 +121,7 @@ class _ScannerPageState extends State ? () => Navigator.of(context).push( MaterialPageRoute( builder: (context) => DocumentView( - documentBytes: _assembleFileBytes( + bytes: _assembleFileBytes( state.scans, forcePdf: true, ).then((file) => file.bytes), diff --git a/lib/features/documents/view/pages/document_view.dart b/lib/features/documents/view/pages/document_view.dart index 71161208..d1defaf7 100644 --- a/lib/features/documents/view/pages/document_view.dart +++ b/lib/features/documents/view/pages/document_view.dart @@ -1,3 +1,126 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'package:paperless_mobile/core/extensions/flutter_extensions.dart'; +import 'package:pdfx/pdfx.dart'; + +class DocumentView extends StatefulWidget { + final Future bytes; + final String? title; + final bool showAppBar; + final bool showControls; + const DocumentView({ + Key? key, + required this.bytes, + this.showAppBar = true, + this.showControls = true, + this.title, + }) : super(key: key); + + @override + State createState() => _DocumentViewState(); +} + +class _DocumentViewState extends State { + late final PdfController _controller; + int _currentPage = 1; + int? _totalPages; + @override + void initState() { + super.initState(); + final document = widget.bytes.then((value) => PdfDocument.openData(value)); + _controller = PdfController(document: document); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final pageTransitionDuration = MediaQuery.disableAnimationsOf(context) + ? 0.milliseconds + : 100.milliseconds; + final canGoToNextPage = _totalPages != null && _currentPage < _totalPages!; + final canGoToPreviousPage = + _controller.pagesCount != null && _currentPage > 1; + return Scaffold( + appBar: widget.showAppBar + ? AppBar( + title: widget.title != null ? Text(widget.title!) : null, + ) + : null, + bottomNavigationBar: widget.showControls + ? BottomAppBar( + child: Row( + children: [ + Flexible( + child: Row( + children: [ + IconButton.filled( + onPressed: canGoToPreviousPage + ? () async { + await _controller.previousPage( + duration: pageTransitionDuration, + curve: Curves.easeOut, + ); + } + : null, + icon: const Icon(Icons.arrow_left), + ), + const SizedBox(width: 16), + IconButton.filled( + onPressed: canGoToNextPage + ? () async { + await _controller.nextPage( + duration: pageTransitionDuration, + curve: Curves.easeOut, + ); + } + : null, + icon: const Icon(Icons.arrow_right), + ), + ], + ), + ), + PdfPageNumber( + controller: _controller, + builder: (context, loadingState, page, pagesCount) { + if (loadingState != PdfLoadingState.success) { + return const Text("-/-"); + } + return Text( + "$page/$pagesCount", + style: Theme.of(context).textTheme.titleMedium, + ).padded(); + }, + ), + ], + ), + ) + : null, + body: PdfView( + controller: _controller, + onDocumentLoaded: (document) { + if (mounted) { + setState(() { + _totalPages = document.pagesCount; + }); + } + }, + onPageChanged: (page) { + if (mounted) { + setState(() { + _currentPage = page; + }); + } + }, + ), + ); + } +} // import 'dart:async'; // import 'dart:developer'; @@ -34,19 +157,17 @@ // void initState() { // super.initState(); // Future document; -// document = PdfDocument.openAsset("assets/example/sample.pdf"); -// // if (widget.bytes != null) { -// // document = widget.bytes!.then((value) => PdfDocument.openData(value)); -// // } else { -// // document = PdfDocument.openFile(widget.filePath!); -// // } +// if (widget.bytes != null) { +// document = widget.bytes!.then((value) => PdfDocument.openData(value)); +// } else { +// document = PdfDocument.openFile(widget.filePath!); +// } // _controller = PdfController(document: document); // } // @override // void didChangeDependencies() { // super.didChangeDependencies(); -// log("Did change dependencies LOL"); // } // @override @@ -102,18 +223,18 @@ // ], // ), // ), -// // PdfPageNumber( -// // controller: _controller, -// // builder: (context, loadingState, page, pagesCount) { -// // if (loadingState != PdfLoadingState.success) { -// // return const Text("-/-"); -// // } -// // return Text( -// // "$page/$pagesCount", -// // style: Theme.of(context).textTheme.titleMedium, -// // ).padded(); -// // }, -// // ), +// PdfPageNumber( +// controller: _controller, +// builder: (context, loadingState, page, pagesCount) { +// if (loadingState != PdfLoadingState.success) { +// return const Text("-/-"); +// } +// return Text( +// "$page/$pagesCount", +// style: Theme.of(context).textTheme.titleMedium, +// ).padded(); +// }, +// ), // ], // ), // ) @@ -131,6 +252,11 @@ // ); // }, // ), +// onPageChanged: (page) { +// setState(() { +// _currentPage = page; +// }); +// }, // controller: _controller, // ), // // PdfView( @@ -150,123 +276,162 @@ // } // } -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_animate/flutter_animate.dart'; -import 'package:paperless_mobile/core/extensions/flutter_extensions.dart'; -import 'package:pdfx/pdfx.dart'; +// import 'dart:math'; -class DocumentView extends StatefulWidget { - final Future documentBytes; - final String? title; - final bool showAppBar; - final bool showControls; - const DocumentView({ - Key? key, - required this.documentBytes, - this.showAppBar = true, - this.showControls = true, - this.title, - }) : super(key: key); +// import 'package:flutter/foundation.dart'; +// import 'package:flutter/material.dart'; +// import 'package:flutter_animate/flutter_animate.dart'; +// import 'package:paperless_mobile/core/extensions/flutter_extensions.dart'; +// import 'package:pdfrx/pdfrx.dart'; - @override - State createState() => _DocumentViewState(); -} +// class DocumentView extends StatefulWidget { +// final Future bytes; +// final String? title; +// final bool showAppBar; +// final bool showControls; +// const DocumentView({ +// Key? key, +// required this.bytes, +// this.showAppBar = true, +// this.showControls = true, +// this.title, +// }) : super(key: key); -class _DocumentViewState extends State { - late final PdfController _controller; - int _currentPage = 1; - int? _totalPages; - @override - void initState() { - super.initState(); - final document = - widget.documentBytes.then((value) => PdfDocument.openData(value)); - _controller = PdfController(document: document); - } +// @override +// State createState() => _DocumentViewState(); +// } - @override - void dispose() { - _controller.dispose(); - super.dispose(); - } +// class _DocumentViewState extends State { +// late final PdfViewerController _controller; +// int _currentPage = 1; +// int? _totalPages; +// @override +// void initState() { +// super.initState(); +// _controller = PdfViewerController() +// ..addListener(() { +// if (_controller.isLoaded) { +// setState(() { +// _totalPages = _controller.pages.length; +// }); +// } +// }); +// } - @override - Widget build(BuildContext context) { - final pageTransitionDuration = MediaQuery.disableAnimationsOf(context) - ? 0.milliseconds - : 100.milliseconds; - final canGoToNextPage = _totalPages != null && _currentPage < _totalPages!; - final canGoToPreviousPage = - _controller.pagesCount != null && _currentPage > 1; - return Scaffold( - appBar: widget.showAppBar - ? AppBar( - title: widget.title != null ? Text(widget.title!) : null, - ) - : null, - bottomNavigationBar: widget.showControls - ? BottomAppBar( - child: Row( - children: [ - Flexible( - child: Row( - children: [ - IconButton.filled( - onPressed: canGoToPreviousPage - ? () async { - await _controller.previousPage( - duration: pageTransitionDuration, - curve: Curves.easeOut, - ); - } - : null, - icon: const Icon(Icons.arrow_left), - ), - const SizedBox(width: 16), - IconButton.filled( - onPressed: canGoToNextPage - ? () async { - await _controller.nextPage( - duration: pageTransitionDuration, - curve: Curves.easeOut, - ); - } - : null, - icon: const Icon(Icons.arrow_right), - ), - ], - ), - ), - PdfPageNumber( - controller: _controller, - builder: (context, loadingState, page, pagesCount) { - if (loadingState != PdfLoadingState.success) { - return const Text("-/-"); - } - return Text( - "$page/$pagesCount", - style: Theme.of(context).textTheme.titleMedium, - ).padded(); - }, - ), - ], - ), - ) - : null, - body: PdfView( - controller: _controller, - onDocumentLoaded: (document) { - setState(() { - _totalPages = document.pagesCount; - }); - }, - onPageChanged: (page) { - setState(() { - _currentPage = page; - }); - }, - ), - ); - } -} +// @override +// void dispose() { +// _controller.dispose(); +// super.dispose(); +// } + +// @override +// Widget build(BuildContext context) { +// final pageTransitionDuration = MediaQuery.disableAnimationsOf(context) +// ? 0.milliseconds +// : 100.milliseconds; +// final canGoToNextPage = _controller.isLoaded && _currentPage < _totalPages!; +// final canGoToPreviousPage = _controller.isLoaded && _currentPage > 1; +// return SafeArea( +// child: Scaffold( +// appBar: widget.showAppBar +// ? AppBar( +// title: widget.title != null ? Text(widget.title!) : null, +// ) +// : null, +// bottomNavigationBar: widget.showControls +// ? BottomAppBar( +// child: Row( +// children: [ +// Flexible( +// child: Row( +// children: [ +// IconButton.filled( +// onPressed: canGoToPreviousPage +// ? () async { +// await _controller.goToPage( +// pageNumber: _currentPage - 1, +// duration: pageTransitionDuration, +// ); +// } +// : null, +// icon: const Icon(Icons.arrow_left), +// ), +// const SizedBox(width: 16), +// IconButton.filled( +// onPressed: canGoToNextPage +// ? () async { +// await _controller.goToPage( +// pageNumber: _currentPage + 1, +// duration: pageTransitionDuration, +// ); +// } +// : null, +// icon: const Icon(Icons.arrow_right), +// ), +// ], +// ), +// ), +// Builder( +// builder: (context) { +// if (_totalPages == null) { +// return const SizedBox.shrink(); +// } +// return Text( +// "$_currentPage/$_totalPages", +// style: Theme.of(context).textTheme.titleMedium, +// ).padded(); +// }, +// ), +// ], +// ), +// ) +// : null, +// body: FutureBuilder( +// future: widget.bytes, +// builder: (context, snapshot) { +// if (!snapshot.hasData) { +// return const Center(child: CircularProgressIndicator()); +// } +// return PdfViewer.data( +// snapshot.data!, +// controller: _controller, +// displayParams: PdfViewerParams( +// minScale: 1, +// boundaryMargin: EdgeInsets.all(24), +// pageAnchor: PdfPageAnchor.center, +// backgroundColor: Theme.of(context).colorScheme.background, +// loadingBannerBuilder: (context, bytesDownloaded, totalBytes) { +// return Center( +// child: CircularProgressIndicator(), +// ); +// }, +// layoutPages: (pages, params) { +// final height = +// pages.fold(0.0, (prev, page) => max(prev, page.height)) + +// params.margin * 2; +// final pageLayouts = []; +// double x = params.margin; +// for (var page in pages) { +// pageLayouts.add( +// Rect.fromLTWH( +// x, +// (height - page.height) / 2, // center vertically +// page.width, +// page.height, +// ), +// ); +// x += page.width + params.margin; +// } +// return PdfPageLayout( +// pageLayouts: pageLayouts, +// documentSize: Size(x, height), +// ); +// }, +// ), +// ); +// }, +// ), +// ), +// ); +// } +// } diff --git a/lib/features/documents/view/pages/pdfrx_document_view.dart b/lib/features/documents/view/pages/pdfrx_document_view.dart deleted file mode 100644 index d6f57644..00000000 --- a/lib/features/documents/view/pages/pdfrx_document_view.dart +++ /dev/null @@ -1,85 +0,0 @@ -import 'dart:async'; -import 'dart:math'; -import 'dart:typed_data'; - -import 'package:flutter/material.dart'; -import 'package:pdfrx/pdfrx.dart'; - -class PdfrxDocumentView extends StatefulWidget { - final Future bytes; - - const PdfrxDocumentView({super.key, required this.bytes}); - - @override - State createState() => _PdfrxDocumentViewState(); -} - -class _PdfrxDocumentViewState extends State { - @override - Widget build(BuildContext context) { - return PdfViewer.asset( - // snapshot.data!, - 'assets/example/sample.pdf', - displayParams: PdfViewerParams( - layoutPages: (pages, params) { - final height = - pages.fold(0.0, (prev, page) => max(prev, page.height)) + - params.margin * 2; - final pageLayouts = []; - double x = params.margin; - for (var page in pages) { - pageLayouts.add( - Rect.fromLTWH( - x, - (height - page.height) / 2, // center vertically - page.width, - page.height, - ), - ); - x += page.width + params.margin; - } - return PdfPageLayout( - pageLayouts: pageLayouts, - documentSize: Size(x, height), - ); - }, - ), - ); - return FutureBuilder( - future: widget.bytes, - builder: (context, snapshot) { - if (!snapshot.hasData) { - return const Center(child: CircularProgressIndicator()); - } - return PdfViewer.asset( - // snapshot.data!, - 'assets/example/sample.pdf', - displayParams: PdfViewerParams( - layoutPages: (pages, params) { - final height = - pages.fold(0.0, (prev, page) => max(prev, page.height)) + - params.margin * 2; - final pageLayouts = []; - double x = params.margin; - for (var page in pages) { - pageLayouts.add( - Rect.fromLTWH( - x, - (height - page.height) / 2, // center vertically - page.width, - page.height, - ), - ); - x += page.width + params.margin; - } - return PdfPageLayout( - pageLayouts: pageLayouts, - documentSize: Size(x, height), - ); - }, - ), - ); - }, - ); - } -} diff --git a/lib/routing/routes/documents_route.dart b/lib/routing/routes/documents_route.dart index 54fa80ad..dd798464 100644 --- a/lib/routing/routes/documents_route.dart +++ b/lib/routing/routes/documents_route.dart @@ -14,7 +14,6 @@ import 'package:paperless_mobile/features/document_edit/cubit/document_edit_cubi import 'package:paperless_mobile/features/document_edit/view/document_edit_page.dart'; import 'package:paperless_mobile/features/documents/view/pages/document_view.dart'; import 'package:paperless_mobile/features/documents/view/pages/documents_page.dart'; -import 'package:paperless_mobile/features/documents/view/pages/pdfrx_document_view.dart'; import 'package:paperless_mobile/generated/l10n/app_localizations.dart'; import 'package:paperless_mobile/routing/navigation_keys.dart'; import 'package:paperless_mobile/theme.dart'; @@ -112,12 +111,14 @@ class DocumentPreviewRoute extends GoRouteData { @override Widget build(BuildContext context, GoRouterState state) { - return PdfrxDocumentView( - bytes: context.read().downloadDocument(id)); return DocumentView( - documentBytes: context.read().downloadDocument(id), + bytes: context.read().downloadDocument(id), title: title, ); + // return DocumentView( + // documentBytes: context.read().downloadDocument(id), + // title: title, + // ); } } diff --git a/pubspec.lock b/pubspec.lock index 459487e5..fde8a509 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -141,10 +141,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "67d591d602906ef9201caf93452495ad1812bea2074f04e25dbd7c133785821b" + sha256: "581bacf68f89ec8792f5e5a0b2c4decd1c948e97ce659dc783688c8a88fbec21" url: "https://pub.dev" source: hosted - version: "2.4.7" + version: "2.4.8" build_runner_core: dependency: transitive description: @@ -221,10 +221,10 @@ packages: dependency: transitive description: name: code_builder - sha256: feee43a5c05e7b3199bb375a86430b8ada1b04104f2923d0e03cc01ca87b6d84 + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 url: "https://pub.dev" source: hosted - version: "4.9.0" + version: "4.10.0" collection: dependency: "direct main" description: @@ -475,10 +475,10 @@ packages: dependency: "direct main" description: name: flutter_animate - sha256: "1dbc1aabfb8ec1e9d9feed2b675c21fb6b0a11f99be53ec3bc0f1901af6a8eb7" + sha256: "2f3535790fff1ad21bca4f16b7435fa4af6a3c4b43e88e273a8683ed4ec26b26" url: "https://pub.dev" source: hosted - version: "4.3.0" + version: "4.4.0" flutter_bloc: dependency: "direct main" description: @@ -552,10 +552,10 @@ packages: dependency: transitive description: name: flutter_keyboard_visibility - sha256: "4983655c26ab5b959252ee204c2fffa4afeb4413cd030455194ec0caa3b8e7cb" + sha256: "98664be7be0e3ffca00de50f7f6a287ab62c763fc8c762e0a21584584a3ff4f8" url: "https://pub.dev" source: hosted - version: "5.4.1" + version: "6.0.0" flutter_keyboard_visibility_linux: dependency: transitive description: @@ -722,10 +722,10 @@ packages: dependency: "direct main" description: name: flutter_typeahead - sha256: "1f6b248bb4f3ebb4cf1ee0354aa23c77be457fb2d26d6847ecc33a917f65e58e" + sha256: ef2dd5a505d2d95a5b4c571c81ad2d6e7955f583dddec49064fec57acffd7a96 url: "https://pub.dev" source: hosted - version: "5.0.1" + version: "5.0.2" flutter_web_plugins: dependency: transitive description: flutter @@ -844,10 +844,10 @@ packages: dependency: "direct main" description: name: http - sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139 + sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.2.0" http_methods: dependency: transitive description: @@ -892,10 +892,10 @@ packages: dependency: "direct main" description: name: image - sha256: "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271" + sha256: "004a2e90ce080f8627b5a04aecb4cdfac87d2c3f3b520aa291260be5a32c033d" url: "https://pub.dev" source: hosted - version: "4.1.3" + version: "4.1.4" integration_test: dependency: "direct dev" description: flutter @@ -913,10 +913,10 @@ packages: dependency: "direct main" description: name: introduction_screen - sha256: "72d25ceb71471773783f72783608e17585af93d4bc6474df577fcfe9e7842852" + sha256: ffbae2e9e1e21e1d8d6a898385f11513c23f6e83436f78c26664f7f002a58caa url: "https://pub.dev" source: hosted - version: "3.1.12" + version: "3.1.6" io: dependency: transitive description: @@ -934,7 +934,7 @@ packages: source: hosted version: "6.2.2" js: - dependency: transitive + dependency: "direct overridden" description: name: js sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 @@ -977,10 +977,10 @@ packages: dependency: "direct main" description: name: local_auth - sha256: "7e6c63082e399b61e4af71266b012e767a5d4525dd6e9ba41e174fd42d76e115" + sha256: "27679ed8e0d7daab2357db6bb7076359e083a56b295c0c59723845301da6aed9" url: "https://pub.dev" source: hosted - version: "2.1.7" + version: "2.1.8" local_auth_android: dependency: transitive description: @@ -993,18 +993,18 @@ packages: dependency: transitive description: name: local_auth_ios - sha256: "8293faf72ef0ac4710f209edd03916c2d4c1eeab0483bdcf9b2e659c2f7d737b" + sha256: eb283b530029b334698918f1e282d4483737cbca972ff21b9193be3d6de8e2b8 url: "https://pub.dev" source: hosted - version: "1.1.5" + version: "1.1.6" local_auth_platform_interface: dependency: transitive description: name: local_auth_platform_interface - sha256: "3215f9a97aa532aca91ea7591e9ee6a553bdc66ff9b11f19d14b6dffc4fdf45b" + sha256: "1b842ff177a7068442eae093b64abe3592f816afd2a533c0ebcdbe40f9d2075a" url: "https://pub.dev" source: hosted - version: "1.0.9" + version: "1.0.10" local_auth_windows: dependency: transitive description: @@ -1033,10 +1033,10 @@ packages: dependency: "direct main" description: name: markdown - sha256: acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd + sha256: "4e304b422905967f1f7e35a03cd2a3f8f34306b3e1b0cc7a8677d7a306471a0e" url: "https://pub.dev" source: hosted - version: "7.1.1" + version: "7.2.0" matcher: dependency: transitive description: @@ -1207,10 +1207,10 @@ packages: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" path_provider_linux: dependency: transitive description: @@ -1223,10 +1223,10 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: @@ -1243,20 +1243,12 @@ packages: url: "https://pub.dev" source: hosted version: "3.10.7" - pdfrx: - dependency: "direct main" - description: - name: pdfrx - sha256: "7b34f58ec0f8959cd99a6ff3de8fd1a54824823462c7a118fa55bcb42ca45422" - url: "https://pub.dev" - source: hosted - version: "0.4.6" pdfx: dependency: "direct main" description: path: "packages/pdfx" - ref: "4be9de9ffed5398fd7d5f44bbb07dcd3d3f1711b" - resolved-ref: "4be9de9ffed5398fd7d5f44bbb07dcd3d3f1711b" + ref: d637108a2a6e3e97a70304f00f1eda9511fb4f92 + resolved-ref: d637108a2a6e3e97a70304f00f1eda9511fb4f92 url: "https://github.com/ScerIO/packages.flutter" source: git version: "2.5.0" @@ -1264,50 +1256,50 @@ packages: dependency: "direct main" description: name: permission_handler - sha256: "860c6b871c94c78e202dc69546d4d8fd84bd59faeb36f8fb9888668a53ff4f78" + sha256: "45ff3fbcb99040fde55c528d5e3e6ca29171298a85436274d49c6201002087d6" url: "https://pub.dev" source: hosted - version: "11.1.0" + version: "11.2.0" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: "2f1bec180ee2f5665c22faada971a8f024761f632e93ddc23310487df52dcfa6" + sha256: "758284a0976772f9c744d6384fc5dc4834aa61e3f7aa40492927f244767374eb" url: "https://pub.dev" source: hosted - version: "12.0.1" + version: "12.0.3" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - sha256: "1a816084338ada8d574b1cb48390e6e8b19305d5120fe3a37c98825bacc78306" + sha256: c6bf440f80acd2a873d3d91a699e4cc770f86e7e6b576dda98759e8b92b39830 url: "https://pub.dev" source: hosted - version: "9.2.0" + version: "9.3.0" permission_handler_html: dependency: transitive description: name: permission_handler_html - sha256: "11b762a8c123dced6461933a88ea1edbbe036078c3f9f41b08886e678e7864df" + sha256: "54bf176b90f6eddd4ece307e2c06cf977fb3973719c35a93b85cc7093eb6070d" url: "https://pub.dev" source: hosted - version: "0.1.0+2" + version: "0.1.1" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface - sha256: d87349312f7eaf6ce0adaf668daf700ac5b06af84338bd8b8574dfbd93ffe1a1 + sha256: "5c43148f2bfb6d14c5a8162c0a712afe891f2d847f35fcff29c406b37da43c3c" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.0" permission_handler_windows: dependency: transitive description: name: permission_handler_windows - sha256: "1e8640c1e39121128da6b816d236e714d2cf17fac5a105dd6acdd3403a628004" + sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.2.1" petitparser: dependency: transitive description: @@ -1344,18 +1336,42 @@ packages: dependency: transitive description: name: pointer_interceptor - sha256: adf7a637f97c077041d36801b43be08559fd4322d2127b3f20bb7be1b9eebc22 + sha256: bd18321519718678d5fa98ad3a3359cbc7a31f018554eab80b73d08a7f0c165a url: "https://pub.dev" source: hosted - version: "0.9.3+7" + version: "0.10.1" + pointer_interceptor_ios: + dependency: transitive + description: + name: pointer_interceptor_ios + sha256: "2e73c39452830adc4695757130676a39412a3b7f3c34e3f752791b5384770877" + url: "https://pub.dev" + source: hosted + version: "0.10.0+2" + pointer_interceptor_platform_interface: + dependency: transitive + description: + name: pointer_interceptor_platform_interface + sha256: "0597b0560e14354baeb23f8375cd612e8bd4841bf8306ecb71fcd0bb78552506" + url: "https://pub.dev" + source: hosted + version: "0.10.0+1" + pointer_interceptor_web: + dependency: transitive + description: + name: pointer_interceptor_web + sha256: "9386e064097fd16419e935c23f08f35b58e6aaec155dd39bd6a003b88f9c14b4" + url: "https://pub.dev" + source: hosted + version: "0.10.1+2" pointycastle: dependency: transitive description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" url: "https://pub.dev" source: hosted - version: "3.7.3" + version: "3.7.4" pool: dependency: transitive description: @@ -1480,10 +1496,10 @@ packages: dependency: transitive description: name: shared_preferences_foundation - sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" + sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" url: "https://pub.dev" source: hosted - version: "2.3.4" + version: "2.3.5" shared_preferences_linux: dependency: transitive description: @@ -1496,10 +1512,10 @@ packages: dependency: transitive description: name: shared_preferences_platform_interface - sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a + sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_web: dependency: transitive description: @@ -1725,10 +1741,10 @@ packages: dependency: transitive description: name: time - sha256: "83427e11d9072e038364a5e4da559e85869b227cf699a541be0da74f14140124" + sha256: ad8e018a6c9db36cb917a031853a1aae49467a93e0d464683e029537d848c221 url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" timezone: dependency: transitive description: @@ -1781,26 +1797,26 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: e9aa5ea75c84cf46b3db4eea212523591211c3cf2e13099ee4ec147f54201c86 + sha256: d25bb0ca00432a5e1ee40e69c36c85863addf7cc45e433769d61bed3fe81fd96 url: "https://pub.dev" source: hosted - version: "6.2.2" + version: "6.2.3" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: c0766a55ab42cefaa728cabc951e82919ab41a3a4fee0aaa96176ca82da8cc51 + sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f" url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.2.2" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "46b81e3109cbb2d6b81702ad3077540789a3e74e22795eb9f0b7d494dbaa72ea" + sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" url: "https://pub.dev" source: hosted - version: "6.2.2" + version: "6.2.4" url_launcher_linux: dependency: transitive description: @@ -1821,10 +1837,10 @@ packages: dependency: transitive description: name: url_launcher_platform_interface - sha256: "4aca1e060978e19b2998ee28503f40b5ba6226819c2b5e3e4d1821e8ccd92198" + sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.1" url_launcher_web: dependency: transitive description: @@ -1845,34 +1861,34 @@ packages: dependency: "direct main" description: name: uuid - sha256: "22c94e5ad1e75f9934b766b53c742572ee2677c56bc871d850a57dad0f82127f" + sha256: cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8 url: "https://pub.dev" source: hosted - version: "4.2.2" + version: "4.3.3" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: "0f0c746dd2d6254a0057218ff980fc7f5670fd0fcf5e4db38a490d31eed4ad43" + sha256: "18f6690295af52d081f6808f2f7c69f0eed6d7e23a71539d75f4aeb8f0062172" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.9+2" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "0edf6d630d1bfd5589114138ed8fada3234deacc37966bec033d3047c29248b7" + sha256: "531d20465c10dfac7f5cd90b60bbe4dd9921f1ec4ca54c83ebb176dbacb7bb2d" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.9+2" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: d24333727332d9bd20990f1483af4e09abdb9b1fc7c3db940b56ab5c42790c26 + sha256: "03012b0a33775c5530576b70240308080e1d5050f0faf000118c20e6463bc0ad" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.9+2" vector_math: dependency: transitive description: @@ -1933,10 +1949,10 @@ packages: dependency: "direct main" description: name: webview_flutter - sha256: "60e23976834e995c404c0b21d3b9db37ecd77d3303ef74f8b8d7a7b19947fc04" + sha256: "71e1bfaef41016c8d5954291df5e9f8c6172f1f6ff3af01b5656456ddb11f94c" url: "https://pub.dev" source: hosted - version: "4.4.3" + version: "4.4.4" webview_flutter_android: dependency: transitive description: @@ -1949,18 +1965,18 @@ packages: dependency: transitive description: name: webview_flutter_platform_interface - sha256: dbe745ee459a16b6fec296f7565a8ef430d0d681001d8ae521898b9361854943 + sha256: "80b40ae4fb959957eef9fa8970b6c9accda9f49fc45c2b75154696a8e8996cfe" url: "https://pub.dev" source: hosted - version: "2.9.0" + version: "2.9.1" webview_flutter_wkwebview: dependency: transitive description: name: webview_flutter_wkwebview - sha256: "02d8f3ebbc842704b2b662377b3ee11c0f8f1bbaa8eab6398262f40049819160" + sha256: "4d062ad505390ecef1c4bfb6001cd857a51e00912cc9dfb66edb1886a9ebd80c" url: "https://pub.dev" source: hosted - version: "3.10.1" + version: "3.10.2" win32: dependency: transitive description: @@ -2002,5 +2018,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.2.3 <4.0.0" + dart: ">=3.2.0 <4.0.0" flutter: ">=3.16.0" diff --git a/pubspec.yaml b/pubspec.yaml index c7a76048..56b848c0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -104,13 +104,17 @@ dependencies: pdfx: git: url: 'https://github.com/ScerIO/packages.flutter' - ref: '4be9de9ffed5398fd7d5f44bbb07dcd3d3f1711b' + ref: 'd637108a2a6e3e97a70304f00f1eda9511fb4f92' path: packages/pdfx markdown: ^7.1.1 - pdfrx: ^0.4.6 + # pdfrx: + # git: + # url: https://github.com/astubenbord/pdfrx + # ref: master dependency_overrides: intl: ^0.18.1 + js: ^0.6.3 dev_dependencies: integration_test: