From 2bb3312a39e8c6f21cd9f30ff6eb3d67a31cae75 Mon Sep 17 00:00:00 2001 From: jantunesmessias Date: Fri, 14 Feb 2025 12:40:35 -0300 Subject: [PATCH] impl pdfViewer release --- devtools_options.yaml | 3 +- flutter_01.png | Bin 0 -> 74416 bytes .../documents/document_viewer_screen.dart | 53 +++----- lib/features/documents/index.dart | 1 - lib/shared/widgets/viewer/viewer.dart | 114 +++++++++++++++--- lib/shared/widgets/widgets.dart | 7 +- pubspec.yaml | 4 +- 7 files changed, 124 insertions(+), 58 deletions(-) create mode 100644 flutter_01.png diff --git a/devtools_options.yaml b/devtools_options.yaml index 2bc8e05f..a18a3e2e 100644 --- a/devtools_options.yaml +++ b/devtools_options.yaml @@ -1,4 +1,5 @@ description: This file stores settings for Dart & Flutter DevTools. documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states extensions: - - provider: true \ No newline at end of file + - provider: true + - patrol: true \ No newline at end of file diff --git a/flutter_01.png b/flutter_01.png new file mode 100644 index 0000000000000000000000000000000000000000..99ac4d5a8b9de87a451fda87f92a3cf3c0db6c7b GIT binary patch literal 74416 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 literal 0 HcmV?d00001 diff --git a/lib/features/documents/document_viewer_screen.dart b/lib/features/documents/document_viewer_screen.dart index 526b02cc..da3ce95e 100644 --- a/lib/features/documents/document_viewer_screen.dart +++ b/lib/features/documents/document_viewer_screen.dart @@ -15,55 +15,30 @@ class DocumentViewScreen extends StatefulScreen { } class _DocumentViewScreenState extends ScreenState { - final PDFViewerKey _viewerKey = PDFViewerKey(); - - void onShare() async { - final response = await http.get(widget.uri); - if (response.statusCode == 200) { - final XFile xfile = XFile.fromData(response.bodyBytes, - name: '${widget.doc.description}.pdf', mimeType: 'application/pdf'); - await Share.shareXFiles([xfile], text: 'Confira este PDF!'); - } else { - print('Erro ao baixar o arquivo: ${response.statusCode}'); - } - } - @override Widget build(BuildContext context) { action() => context.read().add(UnselectDocumentEvent()); final String title = widget.doc.description; final theme = FlutterFlowTheme.of(context); - return Scaffold( - backgroundColor: theme.primaryBackground, - appBar: buildAppBar(title, context, action), - body: buildBody(context), + return PopScope( + canPop: false, + onPopInvokedWithResult: (didPop, result) => action(), + child: Scaffold( + backgroundColor: theme.primaryBackground, + appBar: buildAppBar(title, context, action), + body: buildBody(context), + ), ); } Widget buildBody(BuildContext context) { - return Stack( - children: [ - Padding( - padding: EdgeInsets.all(10), - child: FREViewerPDF( - search: _viewerKey, - src: widget.uri.toString(), - ), - ), - Positioned( - bottom: 10, - right: 10, - child: IconButton( - icon: Icon( - Icons.share, - color: Colors.black, - ), - color: Colors.black, - onPressed: onShare, - ), - ), - ], + // final PDFViewerKey _viewerKey = PDFViewerKey(); + + return PDFViewer( + // search: _viewerKey, + title: widget.doc.description, + url: widget.uri.toString(), ); } } diff --git a/lib/features/documents/index.dart b/lib/features/documents/index.dart index c5441c4d..49d30dfc 100644 --- a/lib/features/documents/index.dart +++ b/lib/features/documents/index.dart @@ -12,7 +12,6 @@ import 'package:hub/shared/mixins/pegeable_mixin.dart'; import 'package:hub/shared/utils/index.dart'; import 'package:hub/shared/widgets/widgets.dart'; import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart'; -import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart'; import 'package:share_plus/share_plus.dart'; part 'document_manager_screen.dart'; diff --git a/lib/shared/widgets/viewer/viewer.dart b/lib/shared/widgets/viewer/viewer.dart index 018c8d34..94861cd1 100644 --- a/lib/shared/widgets/viewer/viewer.dart +++ b/lib/shared/widgets/viewer/viewer.dart @@ -1,13 +1,14 @@ part of '../widgets.dart'; -typedef PDFViewerKey = GlobalKey; +// typedef PDFViewerKey = GlobalKey; abstract interface class Viewer extends StatelessComponent { + final String src; + const Viewer({ super.key, required this.src, }); - final String src; @override Widget build(BuildContext context) { @@ -17,25 +18,110 @@ abstract interface class Viewer extends StatelessComponent { Widget buildViewer(BuildContext context); } -class FREViewerPDF extends StatelessComponent { - final String src; - final PDFViewerKey search; +class PDFViewer extends StatefulWidget { + final String url; + final String title; - const FREViewerPDF({ + const PDFViewer({ super.key, - required this.search, - required this.src, + required this.url, + required this.title, }); @override - Widget build(BuildContext context) { - return buildViewer(context); + State createState() => PDFViewerState(); +} + +class PDFViewerState extends State { + late PdfController _pdfController; + + Future _initializePdf() async { + final file = await downloadPdf(widget.url); + final Future document = PdfDocument.openFile(file.path); + return PdfController(document: document); } - Widget buildViewer(BuildContext context) { - return SfPdfViewer.network( - src, - key: search, + Future downloadPdf(String url) async { + final response = await http.get(Uri.parse(url)); + if (response.statusCode == 200) { + final bytes = response.bodyBytes; + final dir = await getTemporaryDirectory(); + final file = File('${dir.path}/downloaded.pdf'); + await file.writeAsBytes(bytes); + return file; + } else { + throw Exception('Falha ao baixar o PDF'); + } + } + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + _buildPDFViewer(), + buildShareButton(), + ], ); } + + Positioned buildShareButton() { + return Positioned( + bottom: 10, + right: 10, + child: IconButton( + icon: Icon( + Icons.share, + color: Colors.black, + ), + color: Colors.black, + onPressed: onShare, + ), + ); + } + + void onShare() async { + final Uri uri = Uri.parse(widget.url); + final response = await http.get(uri); + if (response.statusCode == 200) { + final XFile xfile = XFile.fromData(response.bodyBytes, + name: '${widget.title}.pdf', mimeType: 'application/pdf'); + await Share.shareXFiles([xfile], text: 'Confira este PDF!'); + } else { + print('Erro ao baixar o arquivo: ${response.statusCode}'); + } + } + + Widget buildLoadingIndicator(BuildContext context) { + return Container( + padding: const EdgeInsets.symmetric(vertical: 15), + child: Center( + child: CircularProgressIndicator( + valueColor: AlwaysStoppedAnimation( + FlutterFlowTheme.of(context).primary, + ), + ), + ), + ); + } + + Widget _buildPDFViewer() => Padding( + padding: EdgeInsets.all(10), + child: FutureBuilder( + future: _initializePdf(), + builder: (context, snapshot) { + if (!snapshot.hasData) return buildLoadingIndicator(context); + return PdfView( + controller: snapshot.data!, + scrollDirection: Axis.vertical, + ); + }), + ); + + // Widget get progressIndicator => LoadingUtil.buildLoadingIndicator(context); + + @override + void dispose() { + _pdfController.dispose(); + super.dispose(); + } } diff --git a/lib/shared/widgets/widgets.dart b/lib/shared/widgets/widgets.dart index f56fce44..ba41d526 100644 --- a/lib/shared/widgets/widgets.dart +++ b/lib/shared/widgets/widgets.dart @@ -1,14 +1,19 @@ import 'dart:developer'; +import 'dart:io'; import 'package:auto_size_text/auto_size_text.dart'; import 'package:easy_debounce/easy_debounce.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; +import 'package:http/http.dart' as http; import 'package:hub/features/documents/index.dart'; import 'package:hub/flutter_flow/index.dart'; import 'package:hub/shared/mixins/pegeable_mixin.dart'; +import 'package:hub/shared/utils/index.dart'; import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart'; -import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:pdfx/pdfx.dart'; +import 'package:share_plus/share_plus.dart'; part 'page.dart'; part 'component.dart'; diff --git a/pubspec.yaml b/pubspec.yaml index d6098524..799c3b86 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -13,8 +13,8 @@ dependencies: sdk: flutter flutter_localizations: sdk: flutter + pdfx: ^2.8.0 auto_size_text: ^3.0.0 - syncfusion_flutter_pdfviewer: ^28.2.4 barcode_widget: ^2.0.4 cached_network_image: ^3.4.0 firebase_core: ^3.4.0 @@ -25,7 +25,7 @@ dependencies: app_links: ^6.3.2 # crop_your_image: 1.1.0 csv: 6.0.0 - device_info_plus: ^11.2.2 + device_info_plus: ^10.1.2 #11.2.2 firebase_messaging: ^15.1.0 dropdown_button2: 2.3.9 easy_debounce: 2.0.3