From da0287ef38f91a5ea7b81c9b37daa16807bd034b Mon Sep 17 00:00:00 2001 From: asif Date: Fri, 29 Aug 2025 20:40:22 +0530 Subject: [PATCH] fixed some print, async context warnings in fund_transfer_amount_screen.dart --- .../screens/fund_transfer_amount_screen.dart | 113 ++++++++++++++---- 1 file changed, 87 insertions(+), 26 deletions(-) diff --git a/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart b/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart index f99d6a7..ee12d86 100644 --- a/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart +++ b/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart @@ -1,4 +1,3 @@ -// ignore_for_file: avoid_print, use_build_context_synchronously, duplicate_ignore import 'dart:async'; import 'dart:convert'; import 'package:dio/dio.dart'; @@ -18,6 +17,8 @@ import 'package:kmobile/features/fund_transfer/screens/transaction_pin_screen.da import '../../../l10n/app_localizations.dart'; import 'package:kmobile/api/services/payment_service.dart'; import 'package:kmobile/data/models/transfer.dart'; +import 'package:kmobile/api/services/payment_service.dart'; +import 'package:kmobile/data/models/transfer.dart'; enum TransactionMode { neft, rtgs, imps } @@ -26,6 +27,7 @@ class FundTransferAmountScreen extends StatefulWidget { final Beneficiary creditBeneficiary; final String remitterName; final bool isOwnBank; + final bool isOwnBank; const FundTransferAmountScreen({ super.key, @@ -33,6 +35,7 @@ class FundTransferAmountScreen extends StatefulWidget { required this.creditBeneficiary, required this.remitterName, this.isOwnBank = false, + this.isOwnBank = false, }); @override @@ -99,7 +102,68 @@ class _FundTransferAmountScreenState extends State { ); return; // Stop further execution } + if (widget.isOwnBank) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => TransactionPinScreen( + onPinCompleted: (pinScreenContext, tpin) async { + final transfer = Transfer( + fromAccount: widget.debitAccountNo, + toAccount: widget.creditBeneficiary.accountNo, + toAccountType: 'Savings', // Assuming 'SB' for savings + amount: _amountController.text, + tpin: tpin, + ); + final paymentService = getIt(); + final paymentResponseFuture = + paymentService.processQuickPayWithinBank(transfer); + + Navigator.of(pinScreenContext).pushReplacement( + MaterialPageRoute( + builder: (_) => PaymentAnimationScreen( + paymentResponse: paymentResponseFuture), + ), + ); + }, + ), + ), + ); + } else { + if (_selectedMode == TransactionMode.rtgs && amount < 200000) { + showDialog( + context: context, + builder: (ctx) => AlertDialog( + title: Text(AppLocalizations.of(context).invalidRtgs), + content: Text(AppLocalizations.of(context).invalidRtgsPopUp), + actions: [ + TextButton( + onPressed: () => Navigator.of(ctx).pop(), + child: Text(AppLocalizations.of(context).ok), + ), + ], + ), + ); + return; // Stop further execution + } + + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => TransactionPinScreen( + onPinCompleted: (pinScreenContext, tpin) async { + if (_selectedMode == TransactionMode.neft) { + final neftTx = NeftTransaction( + fromAccount: widget.debitAccountNo, + toAccount: widget.creditBeneficiary.accountNo, + amount: _amountController.text, + ifscCode: widget.creditBeneficiary.ifscCode, + remitterName: widget.remitterName, + beneficiaryName: widget.creditBeneficiary.name, + tpin: tpin, + ); + final neftService = getIt(); Navigator.push( context, MaterialPageRoute( @@ -117,8 +181,15 @@ class _FundTransferAmountScreenState extends State { ); final neftService = getIt(); + final completer = Completer(); final completer = Completer(); + Navigator.of(pinScreenContext).pushReplacement( + MaterialPageRoute( + builder: (_) => PaymentAnimationScreen( + paymentResponse: completer.future), + ), + ); Navigator.of(pinScreenContext).pushReplacement( MaterialPageRoute( builder: (_) => PaymentAnimationScreen( @@ -140,14 +211,11 @@ class _FundTransferAmountScreenState extends State { ); completer.complete(paymentResponse); } on DioException catch (e) { - print(e); String errorMessage; if (e.response != null && e.response!.data != null) { - print('error has data'); try { // final error = jsonDecode(e.response!.toString())['error']; final error = e.response?.data['error']; - print('actual error message $error'); errorMessage = { "INCORRECT_TPIN": "Please Enter the correct TPIN", "INSUFFICIENT_FUNDS": @@ -155,33 +223,24 @@ class _FundTransferAmountScreenState extends State { }[error] ?? "Something Went Wrong"; } catch (_) { - print('error extracting errorMessage'); errorMessage = "Something Went Wrong"; } } else { - print('has has no data'); errorMessage = "Something Went Wrong"; } - print('PaymentResponse generating'); final paymentResponse = PaymentResponse( isSuccess: false, errorMessage: errorMessage, ); - print('PaymentResponse generated'); - print(paymentResponse); completer.complete(paymentResponse); - print("NEFT transaction failed with DioException."); // Add } catch (e) { - print('generic exception'); - print(e.toString()); + if (!pinScreenContext.mounted) return; final paymentResponse = PaymentResponse( isSuccess: false, errorMessage: AppLocalizations.of(pinScreenContext) .somethingWentWrong, ); completer.complete(paymentResponse); - print( - "NEFT transaction failed with generic exception."); // Add } } //IMPS transaction @@ -198,6 +257,12 @@ class _FundTransferAmountScreenState extends State { final impsService = getIt(); final completer = Completer(); + Navigator.of(pinScreenContext).pushReplacement( + MaterialPageRoute( + builder: (_) => PaymentAnimationScreen( + paymentResponse: completer.future), + ), + ); Navigator.of(pinScreenContext).pushReplacement( MaterialPageRoute( builder: (_) => PaymentAnimationScreen( @@ -219,9 +284,6 @@ class _FundTransferAmountScreenState extends State { ); completer.complete(paymentResponse); } on DioException catch (e) { - print('dio exception'); - print(e.toString()); - final error = jsonDecode(e.response.toString())['error']; var errorMessage = { "INCORRECT_TPIN": "Please Enter the correct TPIN", @@ -236,8 +298,6 @@ class _FundTransferAmountScreenState extends State { ); completer.complete(paymentResponse); } catch (e) { - print('generic exception'); - print(e.toString()); final paymentResponse = PaymentResponse( isSuccess: false, errorMessage: "Something went Wrong", @@ -259,6 +319,12 @@ class _FundTransferAmountScreenState extends State { final rtgsService = getIt(); final completer = Completer(); + Navigator.of(pinScreenContext).pushReplacement( + MaterialPageRoute( + builder: (_) => PaymentAnimationScreen( + paymentResponse: completer.future), + ), + ); Navigator.of(pinScreenContext).pushReplacement( MaterialPageRoute( builder: (_) => PaymentAnimationScreen( @@ -280,9 +346,6 @@ class _FundTransferAmountScreenState extends State { ); completer.complete(paymentResponse); } on DioException catch (e) { - print('dio exception'); - print(e.toString()); - final error = jsonDecode(e.response.toString())['error']; var errorMessage = { "INCORRECT_TPIN": "Please Enter the correct TPIN", @@ -298,8 +361,6 @@ class _FundTransferAmountScreenState extends State { ); completer.complete(paymentResponse); } catch (e) { - print('generic exception'); - print(e.toString()); final paymentResponse = PaymentResponse( isSuccess: false, errorMessage: "Something Went Wrong", @@ -396,9 +457,9 @@ class _FundTransferAmountScreenState extends State { borderColor: Colors.transparent, selectedBorderColor: Colors.transparent, splashColor: - Theme.of(context).primaryColor.withOpacity(0.1), + Theme.of(context).primaryColor.withValues(alpha: 0.1), highlightColor: - Theme.of(context).primaryColor.withOpacity(0.05), + Theme.of(context).primaryColor.withValues(alpha: 0.1), children: [ Padding( padding: const EdgeInsets.symmetric(