diff --git a/assets/images/BankofBaroda_logo.png b/assets/images/BankofBaroda_logo.png new file mode 100644 index 0000000..d39eb6f Binary files /dev/null and b/assets/images/BankofBaroda_logo.png differ diff --git a/assets/images/axisbank_logo.png b/assets/images/axisbank_logo.png new file mode 100644 index 0000000..96f0aca Binary files /dev/null and b/assets/images/axisbank_logo.png differ diff --git a/assets/images/canaraBank_logo.png b/assets/images/canaraBank_logo.png new file mode 100644 index 0000000..ef6287c Binary files /dev/null and b/assets/images/canaraBank_logo.png differ diff --git a/assets/images/kotak_logo.png b/assets/images/kotak_logo.png new file mode 100644 index 0000000..70abbfe Binary files /dev/null and b/assets/images/kotak_logo.png differ diff --git a/lib/data/models/beneficiary_recieve.dart b/lib/data/models/beneficiary_recieve.dart deleted file mode 100644 index 7de2674..0000000 --- a/lib/data/models/beneficiary_recieve.dart +++ /dev/null @@ -1,45 +0,0 @@ -class BeneficiaryRecieve { - final String accountNo; - final String accountType; - final String name; - final String ifscCode; - final String bankName; - final String branchName; - - - BeneficiaryRecieve({ - required this.accountNo, - required this.accountType, - required this.name, - required this.ifscCode, - required this.bankName, - required this.branchName, - }); - - factory BeneficiaryRecieve.fromJson(Map 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