From 7f5258b5b730bf0e2d680f46c578ede83c459a8c Mon Sep 17 00:00:00 2001 From: Nilanjan Chakrabarti Date: Tue, 12 Aug 2025 13:19:24 +0530 Subject: [PATCH] Minor Changes of const and bank logos --- assets/images/BankofBaroda_logo.png | Bin 0 -> 5458 bytes assets/images/axisbank_logo.png | Bin 0 -> 2077 bytes assets/images/canaraBank_logo.png | Bin 0 -> 5003 bytes assets/images/kotak_logo.png | Bin 0 -> 5086 bytes lib/data/models/beneficiary_recieve.dart | 45 ---- lib/di/injection.dart | 2 +- .../accounts/screens/account_info_screen.dart | 8 +- lib/features/auth/screens/login_screen.dart | 242 +----------------- lib/features/auth/screens/mpin_screen.dart | 1 + lib/features/auth/screens/welcome_screen.dart | 58 ----- .../screens/add_beneficiary_screen.dart | 1 + .../screens/beneficiary_result_page.dart | 4 +- .../screens/manage_beneficiaries_screen.dart | 32 ++- .../card/screens/card_management_screen.dart | 2 +- .../card_pin_change_details_screen.dart | 30 +-- .../card/screens/card_pin_set_screen.dart | 14 +- .../screens/cheque_management_screen.dart | 2 +- .../screens/customer_info_screen.dart | 4 +- .../dashboard/screens/dashboard_screen.dart | 2 + .../enquiry/screens/enquiry_screen.dart | 8 +- .../screens/fund_transfer_amount_screen.dart | 2 + .../fund_transfer_beneficiary_screen.dart | 90 ------- .../screens/fund_transfer_screen.dart | 6 +- .../screens/payment_animation.dart | 219 +--------------- .../screens/tpin_otp_screen.dart | 3 +- .../screens/tpin_prompt_screen.dart | 3 +- .../screens/tpin_set_screen.dart | 9 +- .../screens/transaction_success_screen.dart | 2 +- .../profile/preferences/language_dialog.dart | 3 + .../quick_pay_outside_bank_screen.dart | 47 ++-- .../screens/quick_pay_within_bank_screen.dart | 81 ------ .../service/screens/service_screen.dart | 2 +- pubspec.lock | 80 +++--- pubspec.yaml | 4 + 34 files changed, 166 insertions(+), 840 deletions(-) create mode 100644 assets/images/BankofBaroda_logo.png create mode 100644 assets/images/axisbank_logo.png create mode 100644 assets/images/canaraBank_logo.png create mode 100644 assets/images/kotak_logo.png delete mode 100644 lib/data/models/beneficiary_recieve.dart diff --git a/assets/images/BankofBaroda_logo.png b/assets/images/BankofBaroda_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d39eb6f65da16b376cb8d9f59446a346321dce5b GIT binary patch literal 5458 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 Hu0mjf>$ddg literal 0 HcmV?d00001 diff --git a/assets/images/canaraBank_logo.png b/assets/images/canaraBank_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ef6287c63e32b5d557ba84125d89c5af2fb05ce2 GIT binary patch literal 5003 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 json) { - return BeneficiaryRecieve( - accountNo: json['account_no'] ?? '', - accountType: json['account_type'] ?? '', - name: json['name'] ?? '', - ifscCode: json['ifsc_code'] ?? '', - bankName: json['bank_name'] ?? '', - branchName: json['branch_name'] ?? '', - ); - } - - Map toJson() { - return { - 'account_no': accountNo, - 'account_type': accountType, - 'name': name, - 'ifsc_code' : ifscCode, - 'bank_name' : bankName, - 'branch_name' : branchName - }; - } - - @override - String toString() { - return 'ListBeneficiary(accountNo: $accountNo, accountType: $accountType, ifscCode: $ifscCode, name: $name, bankName: $bankName, branchName: $branchName)'; - } -} \ No newline at end of file diff --git a/lib/di/injection.dart b/lib/di/injection.dart index 4a0ac66..ff57cd1 100644 --- a/lib/di/injection.dart +++ b/lib/di/injection.dart @@ -60,7 +60,7 @@ Dio _createDioClient() { BaseOptions( baseUrl: 'http://lb-test-mobile-banking-app-192209417.ap-south-1.elb.amazonaws.com:8080', - // 'http://localhost:8081', + //'http://localhost:8081', connectTimeout: const Duration(seconds: 5), receiveTimeout: const Duration(seconds: 10), headers: { diff --git a/lib/features/accounts/screens/account_info_screen.dart b/lib/features/accounts/screens/account_info_screen.dart index 920b0e3..fe82277 100644 --- a/lib/features/accounts/screens/account_info_screen.dart +++ b/lib/features/accounts/screens/account_info_screen.dart @@ -87,13 +87,7 @@ class _AccountInfoScreen extends State { ); }).toList(), ), - - /*InfoRow( - title: AppLocalizations.of(context).accountNumber, - value: users[selectedIndex].accountNo ?? 'N/A'), - // InfoRow(title: 'Nominee Customer No', value: user.nomineeCustomerNo), - // InfoRow(title: 'SMS Service', value: user.smsService), - // InfoRow(title: 'Missed Call Service', value: user.missedCallService),*/ + InfoRow( title: AppLocalizations.of(context).customerNumber, value: selectedUser.cifNumber ?? 'N/A', diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart index 769a666..e59c981 100644 --- a/lib/features/auth/screens/login_screen.dart +++ b/lib/features/auth/screens/login_screen.dart @@ -64,6 +64,7 @@ class LoginScreenState extends State final storage = getIt(); final mpin = await storage.read('mpin'); if (mpin == null) { + // ignore: use_build_context_synchronously Navigator.of(context).pushReplacement( MaterialPageRoute( builder: (_) => MPinScreen( @@ -82,6 +83,7 @@ class LoginScreenState extends State ), ); } else { + // ignore: use_build_context_synchronously Navigator.of(context).pushReplacement( MaterialPageRoute(builder: (_) => const NavigationScaffold()), ); @@ -133,14 +135,14 @@ class LoginScreenState extends State decoration: InputDecoration( labelText: AppLocalizations.of(context).customerNumber, // prefixIcon: Icon(Icons.person), - border: OutlineInputBorder(), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -211,22 +213,22 @@ class LoginScreenState extends State ? const CircularProgressIndicator() : Text( AppLocalizations.of(context).login, - style: TextStyle(fontSize: 16), + style: const TextStyle(fontSize: 16), ), ), ), const SizedBox(height: 15), Padding( - padding: EdgeInsets.symmetric(vertical: 16), + padding: const EdgeInsets.symmetric(vertical: 16), child: Row( children: [ - Expanded(child: Divider()), + const Expanded(child: Divider()), Padding( - padding: EdgeInsets.symmetric(horizontal: 8), + padding: const EdgeInsets.symmetric(horizontal: 8), child: Text(AppLocalizations.of(context).or), ), - Expanded(child: Divider()), + const Expanded(child: Divider()), ], ), ), @@ -257,227 +259,3 @@ class LoginScreenState extends State ); } } - -/*import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:kmobile/di/injection.dart'; -import 'package:kmobile/features/auth/screens/mpin_screen.dart'; -import 'package:kmobile/security/secure_storage.dart'; -import '../../../app.dart'; -import '../controllers/auth_cubit.dart'; -import '../controllers/auth_state.dart'; - -class LoginScreen extends StatefulWidget { - const LoginScreen({super.key}); - - @override - LoginScreenState createState() => LoginScreenState(); -} - -class LoginScreenState extends State { - final _formKey = GlobalKey(); - final _customerNumberController = TextEditingController(); - final _passwordController = TextEditingController(); - bool _obscurePassword = true; - - @override - void dispose() { - _customerNumberController.dispose(); - _passwordController.dispose(); - super.dispose(); - } - - void _submitForm() { - if (_formKey.currentState!.validate()) { - context.read().login( - _customerNumberController.text.trim(), - _passwordController.text, - ); - } - } - - @override - Widget build(BuildContext context) { - return Scaffold( - // appBar: AppBar(title: const Text('Login')), - body: BlocConsumer( - listener: (context, state) async { - if (state is Authenticated) { - final storage = getIt(); - final mpin = await storage.read('mpin'); - if (mpin == null) { - Navigator.of(context).pushReplacement( - MaterialPageRoute( - builder: (_) => MPinScreen( - mode: MPinMode.set, - onCompleted: (_) { - Navigator.of(context, rootNavigator: true) - .pushReplacement( - MaterialPageRoute( - builder: (_) => const NavigationScaffold()), - ); - }, - ), - ), - ); - } else { - Navigator.of(context).pushReplacement( - MaterialPageRoute(builder: (_) => const NavigationScaffold()), - ); - } - } else if (state is AuthError) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(state.message)), - ); - } - }, - builder: (context, state) { - return Padding( - padding: const EdgeInsets.all(24.0), - child: Form( - key: _formKey, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset('assets/images/logo.png', width: 150, height: 150, - errorBuilder: (context, error, stackTrace) { - return const Icon(Icons.account_balance, - size: 100, color: Colors.blue); - }), - const SizedBox(height: 16), - // Title - const Text( - 'KCCB', - style: TextStyle( - fontSize: 32, - fontWeight: FontWeight.bold, - color: Colors.blue), - ), - const SizedBox(height: 48), - - TextFormField( - controller: _customerNumberController, - decoration: const InputDecoration( - labelText: 'Customer Number', - // prefixIcon: Icon(Icons.person), - border: OutlineInputBorder(), - isDense: true, - filled: true, - fillColor: Colors.white, - enabledBorder: OutlineInputBorder( - borderSide: BorderSide(color: Colors.black), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide(color: Colors.black, width: 2), - ), - ), - keyboardType: TextInputType.number, - textInputAction: TextInputAction.next, - validator: (value) { - if (value == null || value.isEmpty) { - return 'Please enter your username'; - } - return null; - }, - ), - const SizedBox(height: 24), - - TextFormField( - controller: _passwordController, - decoration: InputDecoration( - labelText: 'Password', - // prefixIcon: const Icon(Icons.lock), - border: const OutlineInputBorder(), - isDense: true, - filled: true, - fillColor: Colors.white, - enabledBorder: const OutlineInputBorder( - borderSide: BorderSide(color: Colors.black), - ), - focusedBorder: const OutlineInputBorder( - borderSide: BorderSide(color: Colors.black, width: 2), - ), - suffixIcon: IconButton( - icon: Icon( - _obscurePassword - ? Icons.visibility - : Icons.visibility_off, - ), - onPressed: () { - setState(() { - _obscurePassword = !_obscurePassword; - }); - }, - ), - ), - textInputAction: TextInputAction.done, - obscureText: _obscurePassword, - validator: (value) { - if (value == null || value.isEmpty) { - return 'Please enter your password'; - } - return null; - }, - ), - const SizedBox(height: 24), - - SizedBox( - width: 250, - child: ElevatedButton( - onPressed: state is AuthLoading ? null : _submitForm, - style: ElevatedButton.styleFrom( - shape: const StadiumBorder(), - padding: const EdgeInsets.symmetric(vertical: 16), - backgroundColor: Colors.white, - foregroundColor: Colors.blueAccent, - side: const BorderSide(color: Colors.black, width: 1), - elevation: 0), - child: state is AuthLoading - ? const CircularProgressIndicator() - : const Text( - 'Login', - style: TextStyle(fontSize: 16), - ), - ), - ), - const SizedBox(height: 15), - - const Padding( - padding: EdgeInsets.symmetric(vertical: 16), - child: Row( - children: [ - Expanded(child: Divider()), - Padding( - padding: EdgeInsets.symmetric(horizontal: 8), - child: Text('OR'), - ), - Expanded(child: Divider()), - ], - ), - ), - const SizedBox(height: 25), - - // Register Button - SizedBox( - width: 250, - child: ElevatedButton( - //disable until registration is implemented - onPressed: null, - style: OutlinedButton.styleFrom( - shape: const StadiumBorder(), - padding: const EdgeInsets.symmetric(vertical: 16), - backgroundColor: Colors.lightBlue[100], - foregroundColor: Colors.black), - child: const Text('Register'), - ), - ), - ], - ), - ), - ); - }, - ), - ); - } -} -*/ diff --git a/lib/features/auth/screens/mpin_screen.dart b/lib/features/auth/screens/mpin_screen.dart index d794519..326d8f7 100644 --- a/lib/features/auth/screens/mpin_screen.dart +++ b/lib/features/auth/screens/mpin_screen.dart @@ -46,6 +46,7 @@ class _MPinScreenState extends State { final auth = LocalAuthentication(); if (await auth.canCheckBiometrics) { final didAuth = await auth.authenticate( + // ignore: use_build_context_synchronously localizedReason: AppLocalizations.of(context).authenticateToAccess, options: const AuthenticationOptions(biometricOnly: true), ); diff --git a/lib/features/auth/screens/welcome_screen.dart b/lib/features/auth/screens/welcome_screen.dart index 83341e7..cf57fda 100644 --- a/lib/features/auth/screens/welcome_screen.dart +++ b/lib/features/auth/screens/welcome_screen.dart @@ -81,61 +81,3 @@ class _WelcomeScreenState extends State { ); } } - -/*import 'package:flutter/material.dart'; - -class WelcomeScreen extends StatelessWidget { - final VoidCallback onContinue; - - const WelcomeScreen({super.key, required this.onContinue}); - - @override - Widget build(BuildContext context) { - return Scaffold( - backgroundColor: Colors.white, - body: Center( - child: Padding( - padding: const EdgeInsets.all(32.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Spacer(), - const Text( - 'Welcome to', - style: TextStyle(fontSize: 28, color: Colors.black87), - ), - const SizedBox(height: 10), - const Text( - 'KCCB', - style: TextStyle( - fontSize: 42, - fontWeight: FontWeight.bold, - color: Colors.indigo, - ), - ), - const SizedBox(height: 40), - Image.asset( - 'assets/images/logo.png', - width: 150, - height: 150, - ), - const Spacer(), - ElevatedButton( - onPressed: onContinue, - style: ElevatedButton.styleFrom( - backgroundColor: Colors.indigo, - foregroundColor: Colors.white, - padding: - const EdgeInsets.symmetric(horizontal: 28, vertical: 20), - ), - child: const Text('Proceed to Login'), - ), - const SizedBox(height: 24), - ], - ), - ), - ), - ); - } -} -*/ diff --git a/lib/features/beneficiaries/screens/add_beneficiary_screen.dart b/lib/features/beneficiaries/screens/add_beneficiary_screen.dart index f6a8b58..8d0ab3f 100644 --- a/lib/features/beneficiaries/screens/add_beneficiary_screen.dart +++ b/lib/features/beneficiaries/screens/add_beneficiary_screen.dart @@ -148,6 +148,7 @@ class _AddBeneficiaryScreen extends State { context: pinScreenContext, barrierDismissible: false, builder: (BuildContext ctx) { + // ignore: deprecated_member_use return WillPopScope( onWillPop: () async => false, child: const Center( diff --git a/lib/features/beneficiaries/screens/beneficiary_result_page.dart b/lib/features/beneficiaries/screens/beneficiary_result_page.dart index 5640f77..a58b3b6 100644 --- a/lib/features/beneficiaries/screens/beneficiary_result_page.dart +++ b/lib/features/beneficiaries/screens/beneficiary_result_page.dart @@ -35,8 +35,8 @@ class _BeneficiaryResultPageState extends State { @override Widget build(BuildContext context) { - final successAnimation = 'assets/animations/done.json'; - final errorAnimation = 'assets/animations/error.json'; + const successAnimation = 'assets/animations/done.json'; + const errorAnimation = 'assets/animations/error.json'; return Scaffold( backgroundColor: widget.isSuccess ? Colors.green[50] : Colors.red[50], diff --git a/lib/features/beneficiaries/screens/manage_beneficiaries_screen.dart b/lib/features/beneficiaries/screens/manage_beneficiaries_screen.dart index ba4a6cd..090b9ce 100644 --- a/lib/features/beneficiaries/screens/manage_beneficiaries_screen.dart +++ b/lib/features/beneficiaries/screens/manage_beneficiaries_screen.dart @@ -61,7 +61,7 @@ class _ManageBeneficiariesScreen extends State { } Widget _getBankLogo(String? bankName) { - if (bankName != null && bankName.toLowerCase().contains('state bank')) { + if (bankName != null && bankName.toLowerCase().contains('state bank of')) { return Image.asset( 'assets/images/sbi_logo.png', width: 40, @@ -95,7 +95,35 @@ class _ManageBeneficiariesScreen extends State { width: 40, height: 40, ); - } + } + if (bankName != null && bankName.toLowerCase().contains('axis')) { + return Image.asset( + 'assets/images/axisBank_logo.png', + width: 40, + height: 40, + ); + } + if (bankName != null && bankName.toLowerCase().contains('baroda')) { + return Image.asset( + 'assets/images/bankofBaroda_logo.png', + width: 40, + height: 40, + ); + } + if (bankName != null && bankName.toLowerCase().contains('canara bank')) { + return Image.asset( + 'assets/images/canaraBank_logo.png', + width: 40, + height: 40, + ); + } + if (bankName != null && bankName.toLowerCase().contains('kotak')) { + return Image.asset( + 'assets/images/kotak_logo.png', + width: 40, + height: 40, + ); + } else { return const Icon( Icons.account_balance, diff --git a/lib/features/card/screens/card_management_screen.dart b/lib/features/card/screens/card_management_screen.dart index 44bca9e..1223047 100644 --- a/lib/features/card/screens/card_management_screen.dart +++ b/lib/features/card/screens/card_management_screen.dart @@ -20,7 +20,7 @@ class _CardManagementScreen extends State { automaticallyImplyLeading: false, title: Text( AppLocalizations.of(context).cardManagement, - style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500), + style: const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), centerTitle: false, actions: [ diff --git a/lib/features/card/screens/card_pin_change_details_screen.dart b/lib/features/card/screens/card_pin_change_details_screen.dart index e5eaa3f..14ef931 100644 --- a/lib/features/card/screens/card_pin_change_details_screen.dart +++ b/lib/features/card/screens/card_pin_change_details_screen.dart @@ -54,7 +54,7 @@ class _CardPinChangeDetailsScreen extends State { ), title: Text( AppLocalizations.of(context).cardDetails, - style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500), + style: const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), centerTitle: false, actions: [ @@ -84,14 +84,14 @@ class _CardPinChangeDetailsScreen extends State { controller: _cardController, decoration: InputDecoration( labelText: AppLocalizations.of(context).cardNumber, - border: OutlineInputBorder(), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -109,14 +109,14 @@ class _CardPinChangeDetailsScreen extends State { controller: _cvvController, decoration: InputDecoration( labelText: AppLocalizations.of(context).cvv, - border: OutlineInputBorder(), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -136,15 +136,15 @@ class _CardPinChangeDetailsScreen extends State { onTap: _pickExpiryDate, decoration: InputDecoration( labelText: AppLocalizations.of(context).expiryDate, - suffixIcon: Icon(Icons.calendar_today), - border: OutlineInputBorder(), + suffixIcon: const Icon(Icons.calendar_today), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -160,15 +160,15 @@ class _CardPinChangeDetailsScreen extends State { controller: _phoneController, decoration: InputDecoration( labelText: AppLocalizations.of(context).phone, - prefixIcon: Icon(Icons.phone), - border: OutlineInputBorder(), + prefixIcon: const Icon(Icons.phone), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), diff --git a/lib/features/card/screens/card_pin_set_screen.dart b/lib/features/card/screens/card_pin_set_screen.dart index 3c92c32..d5a875b 100644 --- a/lib/features/card/screens/card_pin_set_screen.dart +++ b/lib/features/card/screens/card_pin_set_screen.dart @@ -54,7 +54,7 @@ class _CardPinSetScreen extends State { ), title: Text( AppLocalizations.of(context).cardPin, - style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500), + style: const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), centerTitle: false, actions: [ @@ -84,14 +84,14 @@ class _CardPinSetScreen extends State { obscureText: true, decoration: InputDecoration( labelText: AppLocalizations.of(context).enterNewPin, - border: OutlineInputBorder(), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -113,14 +113,14 @@ class _CardPinSetScreen extends State { obscureText: true, decoration: InputDecoration( labelText: AppLocalizations.of(context).enterAgain, - border: OutlineInputBorder(), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), diff --git a/lib/features/cheque/screens/cheque_management_screen.dart b/lib/features/cheque/screens/cheque_management_screen.dart index 89b5c3a..be3b092 100644 --- a/lib/features/cheque/screens/cheque_management_screen.dart +++ b/lib/features/cheque/screens/cheque_management_screen.dart @@ -24,7 +24,7 @@ class _ChequeManagementScreen extends State { ), title: Text( AppLocalizations.of(context).chequeManagement, - style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500), + style: const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), centerTitle: false, actions: [ diff --git a/lib/features/customer_info/screens/customer_info_screen.dart b/lib/features/customer_info/screens/customer_info_screen.dart index dbdacd5..cab576c 100644 --- a/lib/features/customer_info/screens/customer_info_screen.dart +++ b/lib/features/customer_info/screens/customer_info_screen.dart @@ -26,7 +26,7 @@ class _CustomerInfoScreenState extends State { ), title: Text( AppLocalizations.of(context).kMobile, - style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500), + style: const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), actions: [ Padding( @@ -78,7 +78,7 @@ class _CustomerInfoScreenState extends State { '${AppLocalizations.of(context).cif}: ${user.cifNumber ?? 'N/A'}', style: const TextStyle(fontSize: 16, color: Colors.grey), ), - SizedBox(height: 30), + const SizedBox(height: 30), InfoField( label: AppLocalizations.of(context).activeAccounts, value: user.activeAccounts?.toString() ?? '6', diff --git a/lib/features/dashboard/screens/dashboard_screen.dart b/lib/features/dashboard/screens/dashboard_screen.dart index 4591182..c8bdce7 100644 --- a/lib/features/dashboard/screens/dashboard_screen.dart +++ b/lib/features/dashboard/screens/dashboard_screen.dart @@ -1,3 +1,5 @@ +// ignore_for_file: use_build_context_synchronously + import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; diff --git a/lib/features/enquiry/screens/enquiry_screen.dart b/lib/features/enquiry/screens/enquiry_screen.dart index 2304f43..c472ca5 100644 --- a/lib/features/enquiry/screens/enquiry_screen.dart +++ b/lib/features/enquiry/screens/enquiry_screen.dart @@ -1,3 +1,5 @@ +// ignore_for_file: use_build_context_synchronously + import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:material_symbols_icons/material_symbols_icons.dart'; @@ -61,7 +63,7 @@ class _EnquiryScreen extends State { ), title: Text( AppLocalizations.of(context).enquiry, - style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500), + style: const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), centerTitle: false, actions: [ @@ -89,7 +91,7 @@ class _EnquiryScreen extends State { const SizedBox(height: 20), Text( AppLocalizations.of(context).writeToUs, - style: TextStyle(color: Colors.grey), + style: const TextStyle(color: Colors.grey), ), const SizedBox(height: 4), Text( @@ -97,7 +99,7 @@ class _EnquiryScreen extends State { style: TextStyle(color: Theme.of(context).primaryColor), ), - SizedBox(height: 20), + const SizedBox(height: 20), Text( AppLocalizations.of(context).keyContacts, style: TextStyle( 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 4367356..b1e7fb4 100644 --- a/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart +++ b/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart @@ -1,3 +1,5 @@ +// ignore_for_file: avoid_print + import 'dart:async'; import 'dart:convert'; diff --git a/lib/features/fund_transfer/screens/fund_transfer_beneficiary_screen.dart b/lib/features/fund_transfer/screens/fund_transfer_beneficiary_screen.dart index 9d18a05..1e90814 100644 --- a/lib/features/fund_transfer/screens/fund_transfer_beneficiary_screen.dart +++ b/lib/features/fund_transfer/screens/fund_transfer_beneficiary_screen.dart @@ -1,93 +1,3 @@ -/*import 'package:flutter/material.dart'; -import 'package:flutter_svg/svg.dart'; -// import 'package:kmobile/features/beneficiaries/screens/add_beneficiary_screen.dart'; -import 'package:kmobile/features/fund_transfer/screens/fund_transfer_screen.dart'; -import 'package:material_symbols_icons/material_symbols_icons.dart'; -import '../../../l10n/app_localizations.dart'; - -class FundTransferBeneficiaryScreen extends StatefulWidget { - const FundTransferBeneficiaryScreen({super.key}); - - @override - State createState() => - _FundTransferBeneficiaryScreen(); -} - -class _FundTransferBeneficiaryScreen - extends State { - final List> beneficiaries = [ - {'bank': 'State Bank Of India', 'name': 'Trina Bakshi'}, - {'bank': 'State Bank Of India', 'name': 'Sheetal Rao'}, - {'bank': 'Punjab National Bank', 'name': 'Manoj Kumar'}, - {'bank': 'State Bank Of India', 'name': 'Rohit Mehra'}, - ]; - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - leading: IconButton( - icon: const Icon(Symbols.arrow_back_ios_new), - onPressed: () { - Navigator.pop(context); - }, - ), - title: Text( - AppLocalizations.of(context).fundTransferBeneficiary, - style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500), - ), - centerTitle: false, - actions: [ - Padding( - padding: const EdgeInsets.only(right: 10.0), - child: CircleAvatar( - backgroundColor: Colors.grey[200], - radius: 20, - child: SvgPicture.asset( - 'assets/images/avatar_male.svg', - width: 40, - height: 40, - fit: BoxFit.cover, - ), - ), - ), - ], - ), - body: Padding( - padding: const EdgeInsets.all(8.0), - child: ListView.builder( - itemCount: beneficiaries.length, - itemBuilder: (context, index) { - final beneficiary = beneficiaries[index]; - return ListTile( - leading: CircleAvatar( - backgroundColor: Theme.of(context).primaryColor, - child: Text('A'), - ), - title: Text(beneficiary['name']!), - subtitle: Text(beneficiary['bank']!), - trailing: IconButton( - icon: const Icon(Symbols.arrow_right, size: 20), - onPressed: () { - // Delete action - }, - ), - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const FundTransferScreen(), - ), - ); - }, - ); - }, - ), - ), - ); - } -}*/ - import 'package:flutter/material.dart'; import 'package:kmobile/data/models/beneficiary.dart'; import 'package:kmobile/features/fund_transfer/screens/fund_transfer_amount_screen.dart'; diff --git a/lib/features/fund_transfer/screens/fund_transfer_screen.dart b/lib/features/fund_transfer/screens/fund_transfer_screen.dart index 81a709f..0e11487 100644 --- a/lib/features/fund_transfer/screens/fund_transfer_screen.dart +++ b/lib/features/fund_transfer/screens/fund_transfer_screen.dart @@ -87,7 +87,7 @@ class _FundTransferScreen extends State { ), title: Text( AppLocalizations.of(context).fundTransfer, - style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500), + style: const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), centerTitle: false, actions: const [ @@ -108,7 +108,7 @@ class _FundTransferScreen extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ Text(AppLocalizations.of(context).debitFrom), - Text( + const Text( '0300015678903456', style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500), ), @@ -117,7 +117,7 @@ class _FundTransferScreen extends State { const SizedBox(height: 20), Text( AppLocalizations.of(context).enterAmount, - style: TextStyle(fontSize: 20), + style: const TextStyle(fontSize: 20), ), const SizedBox(height: 20), Container( diff --git a/lib/features/fund_transfer/screens/payment_animation.dart b/lib/features/fund_transfer/screens/payment_animation.dart index 320fd24..e23e781 100644 --- a/lib/features/fund_transfer/screens/payment_animation.dart +++ b/lib/features/fund_transfer/screens/payment_animation.dart @@ -1,3 +1,4 @@ +// ignore_for_file: use_build_context_synchronously import 'dart:io'; import 'dart:typed_data'; import 'dart:ui' as ui; @@ -10,222 +11,6 @@ import 'package:path_provider/path_provider.dart'; import '../../../l10n/app_localizations.dart'; import 'package:confetti/confetti.dart'; -/*class PaymentAnimationScreen extends StatefulWidget { - final Future paymentResponse; - - const PaymentAnimationScreen({super.key, required this.paymentResponse}); - - @override - State createState() => _PaymentAnimationScreenState(); -} - -class _PaymentAnimationScreenState extends State { - final GlobalKey _shareKey = GlobalKey(); - - Future _shareScreenshot() async { - try { - RenderRepaintBoundary boundary = - _shareKey.currentContext!.findRenderObject() as RenderRepaintBoundary; - ui.Image image = await boundary.toImage(pixelRatio: 3.0); - ByteData? byteData = await image.toByteData( - format: ui.ImageByteFormat.png, - ); - Uint8List pngBytes = byteData!.buffer.asUint8List(); - - final tempDir = await getTemporaryDirectory(); - final file = await File('${tempDir.path}/payment_result.png').create(); - await file.writeAsBytes(pngBytes); - - await Share.shareXFiles([ - XFile(file.path), - ], text: '${AppLocalizations.of(context).paymentResult}'); - } catch (e) { - if (!mounted) return; - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text( - '${AppLocalizations.of(context).failedToShareScreenshot}: $e', - ), - ), - ); - } - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: FutureBuilder( - future: widget.paymentResponse, - builder: (context, snapshot) { - if (!snapshot.hasData) { - return Center( - child: Lottie.asset( - 'assets/animations/rupee.json', - width: 200, - height: 200, - repeat: true, - ), - ); - } - - final response = snapshot.data!; - final isSuccess = response.isSuccess; - - return Stack( - children: [ - Center( - child: RepaintBoundary( - key: _shareKey, - child: Container( - color: Theme.of(context).scaffoldBackgroundColor, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const SizedBox(height: 80), - Lottie.asset( - isSuccess - ? 'assets/animations/done.json' - : 'assets/animations/error.json', - width: 200, - height: 200, - repeat: false, - ), - const SizedBox(height: 10), - isSuccess - ? Column( - children: [ - Text( - AppLocalizations.of( - context, - ).paymentSuccessful, - style: const TextStyle( - fontSize: 22, - fontWeight: FontWeight.bold, - color: Colors.green, - ), - ), - const SizedBox(height: 16), - if (response.amount != null) - Text( - '${AppLocalizations.of(context).amount}: ${response.amount} ${response.currency ?? ''}', - style: const TextStyle( - fontSize: 18, - fontWeight: FontWeight.w700, - fontFamily: 'Rubik', - ), - ), - if (response.creditedAccount != null) - Text( - '${AppLocalizations.of(context).creditedAccount}: ${response.creditedAccount}', - style: const TextStyle( - fontSize: 18, - fontWeight: FontWeight.w500, - fontFamily: 'Rubik', - ), - ), - if (response.date != null) - Text( - 'Date: ${response.date!.toLocal().toIso8601String()}', - style: const TextStyle(fontSize: 16), - ), - ], - ) - : Column( - children: [ - Text( - AppLocalizations.of(context).paymentFailed, - style: const TextStyle( - fontSize: 22, - fontWeight: FontWeight.bold, - color: Colors.red, - ), - ), - const SizedBox(height: 16), - if (response.errorMessage != null) - Text( - response.errorMessage!, - style: const TextStyle(fontSize: 16), - ), - ], - ), - const SizedBox(height: 40), - ], - ), - ), - ), - ), - // Buttons at the bottom - Positioned( - left: 0, - right: 0, - bottom: 80, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - ElevatedButton.icon( - onPressed: _shareScreenshot, - icon: Icon( - Icons.share_rounded, - color: Theme.of(context).primaryColor, - ), - label: Text( - AppLocalizations.of(context).share, - style: TextStyle(color: Theme.of(context).primaryColor), - ), - style: ElevatedButton.styleFrom( - backgroundColor: Theme.of( - context, - ).scaffoldBackgroundColor, - padding: const EdgeInsets.symmetric( - horizontal: 32, - vertical: 12, - ), - shape: RoundedRectangleBorder( - side: BorderSide( - color: Theme.of(context).primaryColor, - width: 1, - ), - borderRadius: BorderRadius.circular(30), - ), - textStyle: const TextStyle( - fontSize: 18, - fontWeight: FontWeight.w600, - color: Colors.black, - ), - ), - ), - ElevatedButton.icon( - onPressed: () { - Navigator.of( - context, - ).popUntil((route) => route.isFirst); - }, - label: Text(AppLocalizations.of(context).done), - style: ElevatedButton.styleFrom( - padding: const EdgeInsets.symmetric( - horizontal: 45, - vertical: 12, - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(30), - ), - textStyle: const TextStyle( - fontSize: 18, - fontWeight: FontWeight.w600, - ), - ), - ), - ], - ), - ), - ], - ); - }, - ), - ); - } -}*/ - class PaymentAnimationScreen extends StatefulWidget { final Future paymentResponse; @@ -398,7 +183,7 @@ class _PaymentAnimationScreenState extends State { const SizedBox(height: 16), if (response.errorMessage != null) Text(response.errorMessage ?? '', - style: TextStyle(fontSize: 16), + style: const TextStyle(fontSize: 16), ), ], ), diff --git a/lib/features/fund_transfer/screens/tpin_otp_screen.dart b/lib/features/fund_transfer/screens/tpin_otp_screen.dart index 03ad59d..c6cb560 100644 --- a/lib/features/fund_transfer/screens/tpin_otp_screen.dart +++ b/lib/features/fund_transfer/screens/tpin_otp_screen.dart @@ -1,5 +1,4 @@ import '../../../l10n/app_localizations.dart'; - import 'package:flutter/material.dart'; import 'package:kmobile/features/fund_transfer/screens/tpin_set_screen.dart'; @@ -132,7 +131,7 @@ class _TpinOtpScreenState extends State { icon: const Icon(Icons.verified_user_rounded), label: Text( AppLocalizations.of(context).verifyOtp, - style: TextStyle(fontSize: 18, fontWeight: FontWeight.w600), + style: const TextStyle(fontSize: 18, fontWeight: FontWeight.w600), ), style: ElevatedButton.styleFrom( backgroundColor: theme.colorScheme.primary, diff --git a/lib/features/fund_transfer/screens/tpin_prompt_screen.dart b/lib/features/fund_transfer/screens/tpin_prompt_screen.dart index c8113cc..adfdf5f 100644 --- a/lib/features/fund_transfer/screens/tpin_prompt_screen.dart +++ b/lib/features/fund_transfer/screens/tpin_prompt_screen.dart @@ -1,5 +1,4 @@ import '../../../l10n/app_localizations.dart'; - import 'package:flutter/material.dart'; import 'package:kmobile/features/fund_transfer/screens/tpin_otp_screen.dart'; @@ -42,7 +41,7 @@ class TpinSetupPromptScreen extends StatelessWidget { icon: const Icon(Icons.arrow_forward_rounded), label: Text( AppLocalizations.of(context).setTpin, - style: TextStyle(fontSize: 18, fontWeight: FontWeight.w600), + style: const TextStyle(fontSize: 18, fontWeight: FontWeight.w600), ), style: ElevatedButton.styleFrom( backgroundColor: theme.colorScheme.primary, diff --git a/lib/features/fund_transfer/screens/tpin_set_screen.dart b/lib/features/fund_transfer/screens/tpin_set_screen.dart index 48c9dc0..8aaf09b 100644 --- a/lib/features/fund_transfer/screens/tpin_set_screen.dart +++ b/lib/features/fund_transfer/screens/tpin_set_screen.dart @@ -55,6 +55,7 @@ class _TpinSetScreenState extends State { await authService.setTpin(pin); } catch (e) { setState(() { + // ignore: unnecessary_string_interpolations _errorText = "${AppLocalizations.of(context).tpinFailed}"; _tpin.clear(); }); @@ -71,11 +72,11 @@ class _TpinSetScreenState extends State { ), title: Column( children: [ - Icon(Icons.check_circle, color: Colors.green, size: 60), - SizedBox(height: 12), + const Icon(Icons.check_circle, color: Colors.green, size: 60), + const SizedBox(height: 12), Text( AppLocalizations.of(context).success, - style: TextStyle(fontWeight: FontWeight.bold), + style: const TextStyle(fontWeight: FontWeight.bold), ), ], ), @@ -90,7 +91,7 @@ class _TpinSetScreenState extends State { }, child: Text( AppLocalizations.of(context).ok, - style: TextStyle(fontSize: 16), + style: const TextStyle(fontSize: 16), ), ), ], diff --git a/lib/features/fund_transfer/screens/transaction_success_screen.dart b/lib/features/fund_transfer/screens/transaction_success_screen.dart index c9f1a51..4651088 100644 --- a/lib/features/fund_transfer/screens/transaction_success_screen.dart +++ b/lib/features/fund_transfer/screens/transaction_success_screen.dart @@ -58,7 +58,7 @@ class _TransactionSuccessScreen extends State { const SizedBox(height: 24), Text( AppLocalizations.of(context).transactionSuccess, - style: TextStyle(fontSize: 18, fontWeight: FontWeight.w600), + style: const TextStyle(fontSize: 18, fontWeight: FontWeight.w600), textAlign: TextAlign.center, ), const SizedBox(height: 6), diff --git a/lib/features/profile/preferences/language_dialog.dart b/lib/features/profile/preferences/language_dialog.dart index 3d6eefc..0b1f7ea 100644 --- a/lib/features/profile/preferences/language_dialog.dart +++ b/lib/features/profile/preferences/language_dialog.dart @@ -1,9 +1,12 @@ +// ignore_for_file: use_build_context_synchronously + import 'package:flutter/material.dart'; import '../../../l10n/app_localizations.dart'; import 'package:kmobile/app.dart'; import 'package:shared_preferences/shared_preferences.dart'; class LanguageDialog extends StatelessWidget { + // ignore: use_super_parameters const LanguageDialog({Key? key}) : super(key: key); Future _setLocale(BuildContext context, String langCode) async { diff --git a/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart b/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart index 7132450..b938c2c 100644 --- a/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart +++ b/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart @@ -84,6 +84,7 @@ class _QuickPayOutsideBankScreen extends State { final String accountNo = accountNumberController.text.trim(); final String ifsc = ifscController.text.trim(); // TODO: Replace with actual remitter name + // ignore: prefer_const_declarations final String remitter = "Unknown"; final service = getIt(); @@ -273,7 +274,7 @@ class _QuickPayOutsideBankScreen extends State { ), title: Text( AppLocalizations.of(context).quickPayOutsideBank, - style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500), + style: const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), centerTitle: false, actions: [ @@ -320,14 +321,14 @@ class _QuickPayOutsideBankScreen extends State { TextFormField( decoration: InputDecoration( labelText: AppLocalizations.of(context).accountNumber, - border: OutlineInputBorder(), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -356,14 +357,14 @@ class _QuickPayOutsideBankScreen extends State { decoration: InputDecoration( labelText: AppLocalizations.of(context).confirmAccountNumber, // prefixIcon: Icon(Icons.person), - border: OutlineInputBorder(), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -386,14 +387,14 @@ class _QuickPayOutsideBankScreen extends State { child: TextFormField( decoration: InputDecoration( labelText: AppLocalizations.of(context).ifscCode, - border: OutlineInputBorder(), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -431,14 +432,14 @@ class _QuickPayOutsideBankScreen extends State { value: accountType, decoration: InputDecoration( labelText: AppLocalizations.of(context).accountType, - border: OutlineInputBorder(), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -539,7 +540,7 @@ class _QuickPayOutsideBankScreen extends State { padding: const EdgeInsets.only(bottom: 24.0), child: Text( _validationError!, - style: TextStyle(color: Colors.red), + style: const TextStyle(color: Colors.red), ), ), TextFormField( @@ -575,15 +576,15 @@ class _QuickPayOutsideBankScreen extends State { keyboardType: TextInputType.phone, decoration: InputDecoration( labelText: AppLocalizations.of(context).phone, - prefixIcon: Icon(Icons.phone), - border: OutlineInputBorder(), + prefixIcon: const Icon(Icons.phone), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -598,14 +599,14 @@ class _QuickPayOutsideBankScreen extends State { child: TextFormField( decoration: InputDecoration( labelText: AppLocalizations.of(context).amount, - border: OutlineInputBorder(), + border: const OutlineInputBorder(), isDense: true, filled: true, fillColor: Theme.of(context).scaffoldBackgroundColor, - enabledBorder: OutlineInputBorder( + enabledBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black), ), - focusedBorder: OutlineInputBorder( + focusedBorder: const OutlineInputBorder( borderSide: BorderSide(color: Colors.black, width: 2), ), ), @@ -631,7 +632,7 @@ class _QuickPayOutsideBankScreen extends State { children: [ Text( AppLocalizations.of(context).transactionMode, - style: TextStyle(fontWeight: FontWeight.w500), + style: const TextStyle(fontWeight: FontWeight.w500), ), const SizedBox(width: 12), Expanded(child: buildTransactionModeSelector()), @@ -649,7 +650,7 @@ class _QuickPayOutsideBankScreen extends State { onSwipe: _onProceedToPay, child: Text( AppLocalizations.of(context).swipeToPay, - style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), ), ), ), diff --git a/lib/features/quick_pay/screens/quick_pay_within_bank_screen.dart b/lib/features/quick_pay/screens/quick_pay_within_bank_screen.dart index 7e16daa..5c1b33e 100644 --- a/lib/features/quick_pay/screens/quick_pay_within_bank_screen.dart +++ b/lib/features/quick_pay/screens/quick_pay_within_bank_screen.dart @@ -167,15 +167,6 @@ class _QuickPayWithinBankScreen extends State { return null; }, ), - // const Align( - // alignment: Alignment.topLeft, - // child: Padding( - // padding: EdgeInsets.only(left: 15.0, top: 5), - // child: Text( - // 'Beneficiary Account Number', - // style: TextStyle(color: Colors.black54), - // ), - // )), const SizedBox(height: 25), TextFormField( controller: confirmAccountNumberController, @@ -298,15 +289,6 @@ class _QuickPayWithinBankScreen extends State { return null; }, ), - // const Align( - // alignment: Alignment.topLeft, - // child: Padding( - // padding: EdgeInsets.only(left: 15.0, top: 5), - // child: Text( - // 'Beneficiary Account Type', - // style: TextStyle(color: Colors.black54), - // ), - // )), const SizedBox(height: 25), TextFormField( decoration: InputDecoration( @@ -392,69 +374,6 @@ class _QuickPayWithinBankScreen extends State { }, ), ), -/*Align( - alignment: Alignment.center, - child: NeumorphicButton( - onPressed: () { - if (_formKey.currentState!.validate()) { - if (!_isBeneficiaryValidated) { - setState(() { - _validationError = - 'Please validate beneficiary before proceeding.'; - }); - return; - } - - // Perform payment logic - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => TransactionPinScreen( - transactionData: Transfer( - fromAccount: widget.debitAccount, - toAccount: accountNumberController.text, - toAccountType: _selectedAccountType!, - amount: amountController.text, - ), - ), - ), - ); - } - }, - style: NeumorphicStyle( - color: Theme.of(context).primaryColor, - depth: 4, - intensity: 0.8, - boxShape: NeumorphicBoxShape.roundRect(BorderRadius.circular(30)), - ), - padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16), - child: Center( - child: Text( - AppLocalizations.of(context).swipeToPay, - style: const TextStyle( - fontSize: 16, - color: Colors.white, - fontWeight: FontWeight.bold, - ), - ), - ), - ), -),*/ - // SliderButton( - // action: () async { - // ///Do something here OnSlide - // return true; - // }, - // label: const Text( - // "Slide to pay", - // style: TextStyle( - // color: Color(0xff4a4a4a), - // fontWeight: FontWeight.w500, - // fontSize: 17), - // ), - // icon: Icon(Symbols.arrow_forward, - // color: Theme.of(context).primaryColor, weight: 200), - // ) ], ), ), diff --git a/lib/features/service/screens/service_screen.dart b/lib/features/service/screens/service_screen.dart index ac43687..d6983e7 100644 --- a/lib/features/service/screens/service_screen.dart +++ b/lib/features/service/screens/service_screen.dart @@ -18,7 +18,7 @@ class _ServiceScreen extends State { automaticallyImplyLeading: false, title: Text( AppLocalizations.of(context).services, - style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500), + style: const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), centerTitle: false, actions: [ diff --git a/pubspec.lock b/pubspec.lock index 4c68879..832df6d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: async - sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.11.0" bloc: dependency: "direct main" description: @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.1" chalkdart: dependency: transitive description: @@ -53,10 +53,10 @@ packages: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.3.0" checked_yaml: dependency: transitive description: @@ -77,18 +77,18 @@ packages: dependency: transitive description: name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" collection: dependency: transitive description: name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.19.1" + version: "1.18.0" confetti: dependency: "direct main" description: @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.1" ffi: dependency: transitive description: @@ -353,10 +353,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.20.2" + version: "0.19.0" js: dependency: transitive description: @@ -377,18 +377,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -457,10 +457,10 @@ packages: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: @@ -481,10 +481,10 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.15.0" mime: dependency: transitive description: @@ -505,10 +505,10 @@ packages: dependency: transitive description: name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.9.0" path_parsing: dependency: transitive description: @@ -689,15 +689,15 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.0" + version: "0.0.99" source_span: dependency: transitive description: name: source_span - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.10.1" + version: "1.10.0" sprintf: dependency: transitive description: @@ -710,42 +710,42 @@ packages: dependency: transitive description: name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.12.1" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.2" typed_data: dependency: transitive description: @@ -862,10 +862,10 @@ packages: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "14.2.5" web: dependency: transitive description: @@ -907,5 +907,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.7.0-0 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index 7b87a89..a39f1ba 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -92,6 +92,10 @@ flutter: - assets/images/avatar.jpg - assets/images/logo.png - assets/images/sbi_logo.png + - assets/images/axisbank_logo.png + - assets/images/BankofBaroda_logo.png + - assets/images/canaraBank_logo.png + - assets/images/kotak_logo.png - assets/images/kmobile_splash.jpg - assets/images/kmobile_splash2.png - assets/images/icon.svg