feat: Fix documents not being displayed

This commit is contained in:
Anton Stubenbord
2024-01-18 21:49:12 +01:00
parent 2f72ef4317
commit 2a10b5cc55
9 changed files with 443 additions and 339 deletions

View File

@@ -1,2 +1,3 @@
- Dokumente können jetzt wieder in der App betrachtet werden!
- Beheben eines Problems mit mTLS
- Kleinere Fehlerbehebungen

View File

@@ -1,2 +1,3 @@
- Documents (PDFs) can again be viewed in-app!
- Fix issue with mTLS
- Some minor bug fixes

View File

@@ -167,7 +167,8 @@ class _DocumentEditPageState extends State<DocumentEditPage>
child: DocumentView(
showAppBar: false,
showControls: false,
documentBytes: context
title: state.document.title,
bytes: context
.read<PaperlessDocumentsApi>()
.downloadDocument(state.document.id),
),

View File

@@ -121,7 +121,7 @@ class _ScannerPageState extends State<ScannerPage>
? () => Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => DocumentView(
documentBytes: _assembleFileBytes(
bytes: _assembleFileBytes(
state.scans,
forcePdf: true,
).then((file) => file.bytes),

View File

@@ -1,155 +1,3 @@
// import 'dart:async';
// import 'dart:developer';
// 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 String? filePath;
// final Future<Uint8List>? bytes;
// final String? title;
// final bool showAppBar;
// final bool showControls;
// const DocumentView({
// super.key,
// this.bytes,
// this.showAppBar = true,
// this.showControls = true,
// this.title,
// this.filePath,
// }) : assert(bytes != null || filePath != null);
// @override
// State<DocumentView> createState() => _DocumentViewState();
// }
// class _DocumentViewState extends State<DocumentView> {
// late final PdfController _controller;
// int _currentPage = 1;
// int? _totalPages;
// @override
// void initState() {
// super.initState();
// Future<PdfDocument> 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!);
// // }
// _controller = PdfController(document: document);
// }
// @override
// void didChangeDependencies() {
// super.didChangeDependencies();
// log("Did change dependencies LOL");
// }
// @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(
// builders: PdfViewBuilders<DefaultBuilderOptions>(
// options: const DefaultBuilderOptions(),
// documentLoaderBuilder: (_) =>
// const Center(child: CircularProgressIndicator()),
// pageLoaderBuilder: (_) =>
// const Center(child: CircularProgressIndicator()),
// errorBuilder: (p0, error) {
// return Center(
// child: Text(error.toString()),
// );
// },
// ),
// controller: _controller,
// ),
// // PdfView(
// // controller: _controller,
// // onDocumentLoaded: (document) {
// // setState(() {
// // _totalPages = document.pagesCount;
// // });
// // },
// // onPageChanged: (page) {
// // setState(() {
// // _currentPage = page;
// // });
// // },
// // ),
// );
// }
// }
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
@@ -157,13 +5,13 @@ import 'package:paperless_mobile/core/extensions/flutter_extensions.dart';
import 'package:pdfx/pdfx.dart';
class DocumentView extends StatefulWidget {
final Future<Uint8List> documentBytes;
final Future<Uint8List> bytes;
final String? title;
final bool showAppBar;
final bool showControls;
const DocumentView({
Key? key,
required this.documentBytes,
required this.bytes,
this.showAppBar = true,
this.showControls = true,
this.title,
@@ -180,8 +28,7 @@ class _DocumentViewState extends State<DocumentView> {
@override
void initState() {
super.initState();
final document =
widget.documentBytes.then((value) => PdfDocument.openData(value));
final document = widget.bytes.then((value) => PdfDocument.openData(value));
_controller = PdfController(document: document);
}
@@ -257,16 +104,334 @@ class _DocumentViewState extends State<DocumentView> {
body: PdfView(
controller: _controller,
onDocumentLoaded: (document) {
setState(() {
_totalPages = document.pagesCount;
});
if (mounted) {
setState(() {
_totalPages = document.pagesCount;
});
}
},
onPageChanged: (page) {
setState(() {
_currentPage = page;
});
if (mounted) {
setState(() {
_currentPage = page;
});
}
},
),
);
}
}
// import 'dart:async';
// import 'dart:developer';
// 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 String? filePath;
// final Future<Uint8List>? bytes;
// final String? title;
// final bool showAppBar;
// final bool showControls;
// const DocumentView({
// super.key,
// this.bytes,
// this.showAppBar = true,
// this.showControls = true,
// this.title,
// this.filePath,
// }) : assert(bytes != null || filePath != null);
// @override
// State<DocumentView> createState() => _DocumentViewState();
// }
// class _DocumentViewState extends State<DocumentView> {
// late final PdfController _controller;
// int _currentPage = 1;
// int? _totalPages;
// @override
// void initState() {
// super.initState();
// Future<PdfDocument> document;
// 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();
// }
// @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(
// builders: PdfViewBuilders<DefaultBuilderOptions>(
// options: const DefaultBuilderOptions(),
// documentLoaderBuilder: (_) =>
// const Center(child: CircularProgressIndicator()),
// pageLoaderBuilder: (_) =>
// const Center(child: CircularProgressIndicator()),
// errorBuilder: (p0, error) {
// return Center(
// child: Text(error.toString()),
// );
// },
// ),
// onPageChanged: (page) {
// setState(() {
// _currentPage = page;
// });
// },
// controller: _controller,
// ),
// // PdfView(
// // controller: _controller,
// // onDocumentLoaded: (document) {
// // setState(() {
// // _totalPages = document.pagesCount;
// // });
// // },
// // onPageChanged: (page) {
// // setState(() {
// // _currentPage = page;
// // });
// // },
// // ),
// );
// }
// }
// import 'dart:math';
// 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';
// class DocumentView extends StatefulWidget {
// final Future<Uint8List> 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<DocumentView> createState() => _DocumentViewState();
// }
// class _DocumentViewState extends State<DocumentView> {
// 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
// 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<Uint8List>(
// 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 = <Rect>[];
// 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),
// );
// },
// ),
// );
// },
// ),
// ),
// );
// }
// }

View File

@@ -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<Uint8List> bytes;
const PdfrxDocumentView({super.key, required this.bytes});
@override
State<PdfrxDocumentView> createState() => _PdfrxDocumentViewState();
}
class _PdfrxDocumentViewState extends State<PdfrxDocumentView> {
@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 = <Rect>[];
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 = <Rect>[];
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),
);
},
),
);
},
);
}
}

View File

@@ -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<PaperlessDocumentsApi>().downloadDocument(id));
return DocumentView(
documentBytes: context.read<PaperlessDocumentsApi>().downloadDocument(id),
bytes: context.read<PaperlessDocumentsApi>().downloadDocument(id),
title: title,
);
// return DocumentView(
// documentBytes: context.read<PaperlessDocumentsApi>().downloadDocument(id),
// title: title,
// );
}
}

View File

@@ -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"

View File

@@ -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: