fixed some print, async context warnings in
fund_transfer_amount_screen.dart
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
// ignore_for_file: avoid_print, use_build_context_synchronously, duplicate_ignore
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:dio/dio.dart';
|
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 '../../../l10n/app_localizations.dart';
|
||||||
import 'package:kmobile/api/services/payment_service.dart';
|
import 'package:kmobile/api/services/payment_service.dart';
|
||||||
import 'package:kmobile/data/models/transfer.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 }
|
enum TransactionMode { neft, rtgs, imps }
|
||||||
|
|
||||||
@@ -26,6 +27,7 @@ class FundTransferAmountScreen extends StatefulWidget {
|
|||||||
final Beneficiary creditBeneficiary;
|
final Beneficiary creditBeneficiary;
|
||||||
final String remitterName;
|
final String remitterName;
|
||||||
final bool isOwnBank;
|
final bool isOwnBank;
|
||||||
|
final bool isOwnBank;
|
||||||
|
|
||||||
const FundTransferAmountScreen({
|
const FundTransferAmountScreen({
|
||||||
super.key,
|
super.key,
|
||||||
@@ -33,6 +35,7 @@ class FundTransferAmountScreen extends StatefulWidget {
|
|||||||
required this.creditBeneficiary,
|
required this.creditBeneficiary,
|
||||||
required this.remitterName,
|
required this.remitterName,
|
||||||
this.isOwnBank = false,
|
this.isOwnBank = false,
|
||||||
|
this.isOwnBank = false,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -99,7 +102,68 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
);
|
);
|
||||||
return; // Stop further execution
|
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<PaymentService>();
|
||||||
|
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<NeftService>();
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
@@ -117,8 +181,15 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
);
|
);
|
||||||
final neftService = getIt<NeftService>();
|
final neftService = getIt<NeftService>();
|
||||||
|
|
||||||
|
final completer = Completer<PaymentResponse>();
|
||||||
final completer = Completer<PaymentResponse>();
|
final completer = Completer<PaymentResponse>();
|
||||||
|
|
||||||
|
Navigator.of(pinScreenContext).pushReplacement(
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (_) => PaymentAnimationScreen(
|
||||||
|
paymentResponse: completer.future),
|
||||||
|
),
|
||||||
|
);
|
||||||
Navigator.of(pinScreenContext).pushReplacement(
|
Navigator.of(pinScreenContext).pushReplacement(
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (_) => PaymentAnimationScreen(
|
builder: (_) => PaymentAnimationScreen(
|
||||||
@@ -140,14 +211,11 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
);
|
);
|
||||||
completer.complete(paymentResponse);
|
completer.complete(paymentResponse);
|
||||||
} on DioException catch (e) {
|
} on DioException catch (e) {
|
||||||
print(e);
|
|
||||||
String errorMessage;
|
String errorMessage;
|
||||||
if (e.response != null && e.response!.data != null) {
|
if (e.response != null && e.response!.data != null) {
|
||||||
print('error has data');
|
|
||||||
try {
|
try {
|
||||||
// final error = jsonDecode(e.response!.toString())['error'];
|
// final error = jsonDecode(e.response!.toString())['error'];
|
||||||
final error = e.response?.data['error'];
|
final error = e.response?.data['error'];
|
||||||
print('actual error message $error');
|
|
||||||
errorMessage = {
|
errorMessage = {
|
||||||
"INCORRECT_TPIN": "Please Enter the correct TPIN",
|
"INCORRECT_TPIN": "Please Enter the correct TPIN",
|
||||||
"INSUFFICIENT_FUNDS":
|
"INSUFFICIENT_FUNDS":
|
||||||
@@ -155,33 +223,24 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
}[error] ??
|
}[error] ??
|
||||||
"Something Went Wrong";
|
"Something Went Wrong";
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
print('error extracting errorMessage');
|
|
||||||
errorMessage = "Something Went Wrong";
|
errorMessage = "Something Went Wrong";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print('has has no data');
|
|
||||||
errorMessage = "Something Went Wrong";
|
errorMessage = "Something Went Wrong";
|
||||||
}
|
}
|
||||||
print('PaymentResponse generating');
|
|
||||||
final paymentResponse = PaymentResponse(
|
final paymentResponse = PaymentResponse(
|
||||||
isSuccess: false,
|
isSuccess: false,
|
||||||
errorMessage: errorMessage,
|
errorMessage: errorMessage,
|
||||||
);
|
);
|
||||||
print('PaymentResponse generated');
|
|
||||||
print(paymentResponse);
|
|
||||||
completer.complete(paymentResponse);
|
completer.complete(paymentResponse);
|
||||||
print("NEFT transaction failed with DioException."); // Add
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print('generic exception');
|
if (!pinScreenContext.mounted) return;
|
||||||
print(e.toString());
|
|
||||||
final paymentResponse = PaymentResponse(
|
final paymentResponse = PaymentResponse(
|
||||||
isSuccess: false,
|
isSuccess: false,
|
||||||
errorMessage: AppLocalizations.of(pinScreenContext)
|
errorMessage: AppLocalizations.of(pinScreenContext)
|
||||||
.somethingWentWrong,
|
.somethingWentWrong,
|
||||||
);
|
);
|
||||||
completer.complete(paymentResponse);
|
completer.complete(paymentResponse);
|
||||||
print(
|
|
||||||
"NEFT transaction failed with generic exception."); // Add
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//IMPS transaction
|
//IMPS transaction
|
||||||
@@ -198,6 +257,12 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
final impsService = getIt<ImpsService>();
|
final impsService = getIt<ImpsService>();
|
||||||
final completer = Completer<PaymentResponse>();
|
final completer = Completer<PaymentResponse>();
|
||||||
|
|
||||||
|
Navigator.of(pinScreenContext).pushReplacement(
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (_) => PaymentAnimationScreen(
|
||||||
|
paymentResponse: completer.future),
|
||||||
|
),
|
||||||
|
);
|
||||||
Navigator.of(pinScreenContext).pushReplacement(
|
Navigator.of(pinScreenContext).pushReplacement(
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (_) => PaymentAnimationScreen(
|
builder: (_) => PaymentAnimationScreen(
|
||||||
@@ -219,9 +284,6 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
);
|
);
|
||||||
completer.complete(paymentResponse);
|
completer.complete(paymentResponse);
|
||||||
} on DioException catch (e) {
|
} on DioException catch (e) {
|
||||||
print('dio exception');
|
|
||||||
print(e.toString());
|
|
||||||
|
|
||||||
final error = jsonDecode(e.response.toString())['error'];
|
final error = jsonDecode(e.response.toString())['error'];
|
||||||
var errorMessage = {
|
var errorMessage = {
|
||||||
"INCORRECT_TPIN": "Please Enter the correct TPIN",
|
"INCORRECT_TPIN": "Please Enter the correct TPIN",
|
||||||
@@ -236,8 +298,6 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
);
|
);
|
||||||
completer.complete(paymentResponse);
|
completer.complete(paymentResponse);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print('generic exception');
|
|
||||||
print(e.toString());
|
|
||||||
final paymentResponse = PaymentResponse(
|
final paymentResponse = PaymentResponse(
|
||||||
isSuccess: false,
|
isSuccess: false,
|
||||||
errorMessage: "Something went Wrong",
|
errorMessage: "Something went Wrong",
|
||||||
@@ -259,6 +319,12 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
final rtgsService = getIt<RtgsService>();
|
final rtgsService = getIt<RtgsService>();
|
||||||
final completer = Completer<PaymentResponse>();
|
final completer = Completer<PaymentResponse>();
|
||||||
|
|
||||||
|
Navigator.of(pinScreenContext).pushReplacement(
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (_) => PaymentAnimationScreen(
|
||||||
|
paymentResponse: completer.future),
|
||||||
|
),
|
||||||
|
);
|
||||||
Navigator.of(pinScreenContext).pushReplacement(
|
Navigator.of(pinScreenContext).pushReplacement(
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (_) => PaymentAnimationScreen(
|
builder: (_) => PaymentAnimationScreen(
|
||||||
@@ -280,9 +346,6 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
);
|
);
|
||||||
completer.complete(paymentResponse);
|
completer.complete(paymentResponse);
|
||||||
} on DioException catch (e) {
|
} on DioException catch (e) {
|
||||||
print('dio exception');
|
|
||||||
print(e.toString());
|
|
||||||
|
|
||||||
final error = jsonDecode(e.response.toString())['error'];
|
final error = jsonDecode(e.response.toString())['error'];
|
||||||
var errorMessage = {
|
var errorMessage = {
|
||||||
"INCORRECT_TPIN": "Please Enter the correct TPIN",
|
"INCORRECT_TPIN": "Please Enter the correct TPIN",
|
||||||
@@ -298,8 +361,6 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
);
|
);
|
||||||
completer.complete(paymentResponse);
|
completer.complete(paymentResponse);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print('generic exception');
|
|
||||||
print(e.toString());
|
|
||||||
final paymentResponse = PaymentResponse(
|
final paymentResponse = PaymentResponse(
|
||||||
isSuccess: false,
|
isSuccess: false,
|
||||||
errorMessage: "Something Went Wrong",
|
errorMessage: "Something Went Wrong",
|
||||||
@@ -396,9 +457,9 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
|
|||||||
borderColor: Colors.transparent,
|
borderColor: Colors.transparent,
|
||||||
selectedBorderColor: Colors.transparent,
|
selectedBorderColor: Colors.transparent,
|
||||||
splashColor:
|
splashColor:
|
||||||
Theme.of(context).primaryColor.withOpacity(0.1),
|
Theme.of(context).primaryColor.withValues(alpha: 0.1),
|
||||||
highlightColor:
|
highlightColor:
|
||||||
Theme.of(context).primaryColor.withOpacity(0.05),
|
Theme.of(context).primaryColor.withValues(alpha: 0.1),
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.symmetric(
|
||||||
|
Reference in New Issue
Block a user