From c47862bd6080e40d2c32305b554c007b093a8aef Mon Sep 17 00:00:00 2001 From: asif Date: Fri, 19 Sep 2025 13:02:47 +0530 Subject: [PATCH] iOS Build #2 --- .../screens/account_statement_screen.dart | 16 ++++++++++++++++ lib/main.dart | 14 +++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/lib/features/accounts/screens/account_statement_screen.dart b/lib/features/accounts/screens/account_statement_screen.dart index 769db58..d2b08cc 100644 --- a/lib/features/accounts/screens/account_statement_screen.dart +++ b/lib/features/accounts/screens/account_statement_screen.dart @@ -11,6 +11,8 @@ import 'transaction_details_screen.dart'; import 'package:pdf/widgets.dart' as pw; import 'package:permission_handler/permission_handler.dart'; import 'package:device_info_plus/device_info_plus.dart'; + import 'package:path_provider/path_provider.dart'; + import 'package:share_plus/share_plus.dart'; class AccountStatementScreen extends StatefulWidget { final String accountNo; @@ -489,6 +491,20 @@ class _AccountStatementScreen extends State { } } // Add for IOS + else if (Platform.isIOS) { + // On iOS, we save to a temporary directory and then open the share sheet. + final tempDir = await getTemporaryDirectory(); + final file = await File('${tempDir.path}/$fileName').create(); + await file.writeAsBytes(pdfBytes); + + // Use share_plus to open the iOS share dialog + await Share.shareXFiles( + [XFile(file.path)], + text: 'Account Statement', + ); +} + + } catch (e) { if (mounted) { ScaffoldMessenger.of(context).showSnackBar( diff --git a/lib/main.dart b/lib/main.dart index ad4c61c..a62f353 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -17,13 +17,13 @@ void main() async { ]); // Check for device compromise - final compromisedMessage = await SecurityService.deviceCompromisedMessage; - if (compromisedMessage != null) { - runApp(MaterialApp( - home: SecurityErrorScreen(message: compromisedMessage), - )); - return; - } + // final compromisedMessage = await SecurityService.deviceCompromisedMessage; + // if (compromisedMessage != null) { + // runApp(MaterialApp( + // home: SecurityErrorScreen(message: compromisedMessage), + // )); + // return; + // } // Initialize dependencies await setupDependencies();