New file created for bank logos

This commit is contained in:
2025-08-19 16:11:54 +05:30
parent 712553e49f
commit 09618db28e
7 changed files with 117 additions and 196 deletions

View File

@@ -5,6 +5,7 @@ import '../../../l10n/app_localizations.dart';
import '../../../di/injection.dart';
import 'package:kmobile/api/services/beneficiary_service.dart';
import 'package:shimmer/shimmer.dart';
import 'package:kmobile/widgets/bank_logos.dart';
class ManageBeneficiariesScreen extends StatefulWidget {
final String customerName;
@@ -60,81 +61,7 @@ class _ManageBeneficiariesScreen extends State<ManageBeneficiariesScreen> {
);
}
Widget _getBankLogo(String? bankName) {
if (bankName != null && bankName.toLowerCase().contains('state bank of')) {
return Image.asset(
'assets/images/sbi_logo.png',
width: 40,
height: 40,
);
}
if (bankName != null && bankName.toLowerCase().contains('kangra central')) {
return Image.asset(
'assets/images/icon.png',
width: 40,
height: 40,
);
}
if (bankName != null && bankName.toLowerCase().contains('hdfc bank ltd')) {
return Image.asset(
'assets/images/hdfc_logo.png',
width: 40,
height: 40,
);
}
if (bankName != null && bankName.toLowerCase().contains('icici bank ltd')) {
return Image.asset(
'assets/images/icici_logo.png',
width: 40,
height: 40,
);
}
if (bankName != null &&
bankName.toLowerCase().contains('punjab national bank')) {
return Image.asset(
'assets/images/pnb_logo.png',
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,
size: 40,
color: Colors.grey,
);
}
}
Widget _buildBeneficiaryList() {
Widget _buildBeneficiaryList() {
if (_beneficiaries.isEmpty) {
return Center(
child: Text(AppLocalizations.of(context).noBeneficiaryFound));
@@ -147,7 +74,7 @@ class _ManageBeneficiariesScreen extends State<ManageBeneficiariesScreen> {
leading: CircleAvatar(
radius: 24,
backgroundColor: Colors.transparent,
child: _getBankLogo(item.bankName),
child: getBankLogo(item.bankName),
),
title: Text(item.name),
subtitle: Column(

View File

@@ -5,6 +5,7 @@ import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:kmobile/api/services/neft_service.dart';
import 'package:kmobile/api/services/rtgs_service.dart';
import 'package:kmobile/widgets/bank_logos.dart';
import 'package:kmobile/data/models/beneficiary.dart';
import 'package:kmobile/data/models/neft_transaction.dart';
import 'package:kmobile/data/models/payment_response.dart';
@@ -44,23 +45,6 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
super.dispose();
}
Widget _getBankLogo(String? bankName) {
if (bankName != null &&
bankName.toLowerCase().contains('state bank of india')) {
return Image.asset(
'assets/images/sbi_logo.png',
width: 40,
height: 40,
);
} else {
return const Icon(
Icons.account_balance,
size: 40,
color: Colors.grey,
);
}
}
void _onProceed() {
if (_formKey.currentState!.validate()) {
final amount = double.tryParse(_amountController.text) ?? 0;
@@ -319,7 +303,7 @@ class _FundTransferAmountScreenState extends State<FundTransferAmountScreen> {
elevation: 0,
margin: const EdgeInsets.symmetric(vertical: 8.0),
child: ListTile(
leading: _getBankLogo(widget.creditBeneficiary.bankName),
leading: getBankLogo(widget.creditBeneficiary.bankName),
title: Text(widget.creditBeneficiary.name),
subtitle: Text(widget.creditBeneficiary.accountNo),
),

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:kmobile/widgets/bank_logos.dart';
import 'package:kmobile/data/models/beneficiary.dart';
import 'package:kmobile/features/fund_transfer/screens/fund_transfer_amount_screen.dart';
import '../../../l10n/app_localizations.dart';
@@ -63,51 +64,7 @@ class _FundTransferBeneficiaryScreenState
);
}
Widget _getBankLogo(String? bankName) {
if (bankName != null && bankName.toLowerCase().contains('state bank ')) {
return Image.asset(
'assets/images/sbi_logo.png',
width: 40,
height: 40,
);
}
if (bankName != null && bankName.toLowerCase().contains('kangra central')) {
return Image.asset(
'assets/images/icon.png',
width: 40,
height: 40,
);
}
if (bankName != null && bankName.toLowerCase().contains('hdfc bank ltd')) {
return Image.asset(
'assets/images/hdfc_logo.png',
width: 40,
height: 40,
);
}
if (bankName != null && bankName.toLowerCase().contains('icici bank ltd')) {
return Image.asset(
'assets/images/icici_logo.png',
width: 40,
height: 40,
);
}
if (bankName != null &&
bankName.toLowerCase().contains('punjab national bank')) {
return Image.asset(
'assets/images/pnb_logo.png',
width: 40,
height: 40,
);
} else {
return const Icon(
Icons.account_balance,
size: 40,
color: Colors.grey,
);
}
}
Widget _buildBeneficiaryList() {
if (_beneficiaries.isEmpty) {
return Center(
@@ -121,7 +78,7 @@ class _FundTransferBeneficiaryScreenState
leading: CircleAvatar(
radius: 24,
backgroundColor: Colors.transparent,
child: _getBankLogo(beneficiary.bankName),
child: getBankLogo(beneficiary.bankName),
),
title: Text(beneficiary.name),
subtitle: Column(

View File

@@ -62,8 +62,7 @@ import 'app_localizations_hi.dart';
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
/// property.
abstract class AppLocalizations {
AppLocalizations(String locale)
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString());
final String localeName;
@@ -71,8 +70,7 @@ abstract class AppLocalizations {
return Localizations.of<AppLocalizations>(context, AppLocalizations)!;
}
static const LocalizationsDelegate<AppLocalizations> delegate =
_AppLocalizationsDelegate();
static const LocalizationsDelegate<AppLocalizations> delegate = _AppLocalizationsDelegate();
/// A list of this localizations delegate along with the default localizations
/// delegates.
@@ -84,8 +82,7 @@ abstract class AppLocalizations {
/// Additional delegates can be added by appending to this list in
/// MaterialApp. This list does not have to be used at all if a custom list
/// of delegates is preferred or required.
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
<LocalizationsDelegate<dynamic>>[
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates = <LocalizationsDelegate<dynamic>>[
delegate,
GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
@@ -1509,8 +1506,7 @@ abstract class AppLocalizations {
String get validateBeneficiaryproceeding;
}
class _AppLocalizationsDelegate
extends LocalizationsDelegate<AppLocalizations> {
class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
const _AppLocalizationsDelegate();
@override
@@ -1519,25 +1515,25 @@ class _AppLocalizationsDelegate
}
@override
bool isSupported(Locale locale) =>
<String>['en', 'hi'].contains(locale.languageCode);
bool isSupported(Locale locale) => <String>['en', 'hi'].contains(locale.languageCode);
@override
bool shouldReload(_AppLocalizationsDelegate old) => false;
}
AppLocalizations lookupAppLocalizations(Locale locale) {
// Lookup logic when only language code is specified.
switch (locale.languageCode) {
case 'en':
return AppLocalizationsEn();
case 'hi':
return AppLocalizationsHi();
case 'en': return AppLocalizationsEn();
case 'hi': return AppLocalizationsHi();
}
throw FlutterError(
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
'an issue with the localizations generation tool. Please file an issue '
'on GitHub with a reproducible sample app and the gen-l10n configuration '
'that was used.');
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
'an issue with the localizations generation tool. Please file an issue '
'on GitHub with a reproducible sample app and the gen-l10n configuration '
'that was used.'
);
}

View File

@@ -486,8 +486,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get otpVerification => 'OTP Verification';
@override
String get otpSentMessage =>
'Enter the 4-digit OTP sent to your mobile number';
String get otpSentMessage => 'Enter the 4-digit OTP sent to your mobile number';
@override
String get verifyOtp => 'Verify OTP';
@@ -505,15 +504,13 @@ class AppLocalizationsEn extends AppLocalizations {
String get tpinRequired => 'TPIN Required';
@override
String get tpinRequiredMessage =>
'You need to set your TPIN to continue with secure transactions';
String get tpinRequiredMessage => 'You need to set your TPIN to continue with secure transactions';
@override
String get setTpinTitle => 'Set TPIN';
@override
String get tpinInfo =>
'Your TPIN is a 6-digit code used to authorize transactions. Keep it safe and do not share it with anyone.';
String get tpinInfo => 'Your TPIN is a 6-digit code used to authorize transactions. Keep it safe and do not share it with anyone.';
@override
String get tpinFailed => 'Failed to set TPIN. Please try again.';
@@ -567,8 +564,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get enableFingerprintLogin => 'Enable Fingerprint Login?';
@override
String get enableFingerprintMessage =>
'Would you like to enable fingerprint authentication for faster login?';
String get enableFingerprintMessage => 'Would you like to enable fingerprint authentication for faster login?';
@override
String get no => 'No';
@@ -589,8 +585,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get loading => 'Loading......';
@override
String get enableFingerprintQuick =>
'Enable fingerprint authentication for quick login?';
String get enableFingerprintQuick => 'Enable fingerprint authentication for quick login?';
@override
String get kccb => 'KCCB';
@@ -692,15 +687,13 @@ class AppLocalizationsEn extends AppLocalizations {
String get invalidRtgs => 'Invalid Amount for RTGS';
@override
String get invalidRtgsPopUp =>
'RTGS transactions require a minimum amount of 200,000. Please enter a higher amount or select NEFT as the transaction mode.';
String get invalidRtgsPopUp => 'RTGS transactions require a minimum amount of 200,000. Please enter a higher amount or select NEFT as the transaction mode.';
@override
String get correctTpin => 'Please Enter the correct TPIN';
@override
String get insufficientFund =>
'Your account does not have sufficient balance';
String get insufficientFund => 'Your account does not have sufficient balance';
@override
String get creditedTo => 'Credited To';
@@ -712,13 +705,11 @@ class AppLocalizationsEn extends AppLocalizations {
String get proceed => 'Proceed';
@override
String get plsValidateBeneficiary =>
'Please validate beneficiary details first';
String get plsValidateBeneficiary => 'Please validate beneficiary details first';
@override
String get accno7to20 => 'Account number must be between 7 and 20 digits';
@override
String get validateBeneficiaryproceeding =>
'Please validate beneficiary before proceeding';
String get validateBeneficiaryproceeding => 'Please validate beneficiary before proceeding';
}

View File

@@ -52,8 +52,7 @@ class AppLocalizationsHi extends AppLocalizations {
String get enableBiometric => 'बायोमेट्रिक प्रमाणीकरण सक्षम करें';
@override
String get useBiometricPrompt =>
'तेज़ लॉगिन के लिए फिंगरप्रिंट/फेस आईडी का उपयोग करें?';
String get useBiometricPrompt => 'तेज़ लॉगिन के लिए फिंगरप्रिंट/फेस आईडी का उपयोग करें?';
@override
String get later => 'बाद में';
@@ -487,8 +486,7 @@ class AppLocalizationsHi extends AppLocalizations {
String get otpVerification => 'ओटीपी सत्यापन';
@override
String get otpSentMessage =>
'अपने मोबाइल नंबर पर भेजा गया 4-अंकों का ओटीपी दर्ज करें';
String get otpSentMessage => 'अपने मोबाइल नंबर पर भेजा गया 4-अंकों का ओटीपी दर्ज करें';
@override
String get verifyOtp => 'ओटीपी सत्यापित करें';
@@ -506,15 +504,13 @@ class AppLocalizationsHi extends AppLocalizations {
String get tpinRequired => 'टी-पिन आवश्यक है';
@override
String get tpinRequiredMessage =>
'सुरक्षित लेनदेन के लिए टी-पिन सेट करना आवश्यक है';
String get tpinRequiredMessage => 'सुरक्षित लेनदेन के लिए टी-पिन सेट करना आवश्यक है';
@override
String get setTpinTitle => 'टी-पिन सेट करें';
@override
String get tpinInfo =>
'आपका टी-पिन 6 अंकों का कोड है जिसका उपयोग लेन-देन को प्रमाणित करने के लिए किया जाता है। इसे सुरक्षित रखें और किसी से साझा न करें।';
String get tpinInfo => 'आपका टी-पिन 6 अंकों का कोड है जिसका उपयोग लेन-देन को प्रमाणित करने के लिए किया जाता है। इसे सुरक्षित रखें और किसी से साझा न करें।';
@override
String get tpinFailed => 'टी-पिन सेट करने में विफल। कृपया पुनः प्रयास करें।';
@@ -568,8 +564,7 @@ class AppLocalizationsHi extends AppLocalizations {
String get enableFingerprintLogin => 'फिंगरप्रिंट लॉगिन सक्षम करें?';
@override
String get enableFingerprintMessage =>
'क्या आप तेज लॉगिन के लिए फिंगरप्रिंट प्रमाणीकरण सक्षम करना चाहेंगे?';
String get enableFingerprintMessage => 'क्या आप तेज लॉगिन के लिए फिंगरप्रिंट प्रमाणीकरण सक्षम करना चाहेंगे?';
@override
String get no => 'नहीं';
@@ -578,8 +573,7 @@ class AppLocalizationsHi extends AppLocalizations {
String get yes => 'हाँ';
@override
String get authenticateToEnable =>
'फिंगरप्रिंट लॉगिन सक्षम करने के लिए प्रमाणीकरण करें';
String get authenticateToEnable => 'फिंगरप्रिंट लॉगिन सक्षम करने के लिए प्रमाणीकरण करें';
@override
String get exitApp => 'ऐप बंद करें';
@@ -591,8 +585,7 @@ class AppLocalizationsHi extends AppLocalizations {
String get loading => 'लोड हो रहा है......';
@override
String get enableFingerprintQuick =>
'तेज़ लॉगिन के लिए फिंगरप्रिंट प्रमाणीकरण सक्षम करें?';
String get enableFingerprintQuick => 'तेज़ लॉगिन के लिए फिंगरप्रिंट प्रमाणीकरण सक्षम करें?';
@override
String get kccb => 'केसीसीबी';
@@ -694,8 +687,7 @@ class AppLocalizationsHi extends AppLocalizations {
String get invalidRtgs => 'RTGS के लिए अमान्य राशि';
@override
String get invalidRtgsPopUp =>
'RTGS लेनदेन के लिए न्यूनतम 2,00,000 रुपये की राशि की आवश्यकता होती है। कृपया अधिक राशि दर्ज करें या लेनदेन मोड के रूप में NEFT चुनें';
String get invalidRtgsPopUp => 'RTGS लेनदेन के लिए न्यूनतम 2,00,000 रुपये की राशि की आवश्यकता होती है। कृपया अधिक राशि दर्ज करें या लेनदेन मोड के रूप में NEFT चुनें';
@override
String get correctTpin => 'कृपया सही टी-पिन दर्ज करें';
@@ -713,13 +705,11 @@ class AppLocalizationsHi extends AppLocalizations {
String get proceed => 'आगे बढ़ना';
@override
String get plsValidateBeneficiary =>
'कृपया पहले लाभार्थी विवरण सत्यापित करें';
String get plsValidateBeneficiary => 'कृपया पहले लाभार्थी विवरण सत्यापित करें';
@override
String get accno7to20 => 'खाता संख्या सात से बीस अंकों के बीच होनी चाहिए';
@override
String get validateBeneficiaryproceeding =>
'कृपया आगे बढ़ने से पहले लाभार्थी को पट्टे पर मान्य करें';
String get validateBeneficiaryproceeding => 'कृपया आगे बढ़ने से पहले लाभार्थी को पट्टे पर मान्य करें';
}

View File

@@ -0,0 +1,76 @@
import 'package:flutter/material.dart';
Widget getBankLogo(String? bankName) {
if (bankName != null && bankName.toLowerCase().contains('state bank of')) {
return Image.asset(
'assets/images/sbi_logo.png',
width: 40,
height: 40,
);
}
if (bankName != null && bankName.toLowerCase().contains('kangra central')) {
return Image.asset(
'assets/images/icon.png',
width: 40,
height: 40,
);
}
if (bankName != null && bankName.toLowerCase().contains('hdfc bank ltd')) {
return Image.asset(
'assets/images/hdfc_logo.png',
width: 40,
height: 40,
);
}
if (bankName != null && bankName.toLowerCase().contains('icici bank ltd')) {
return Image.asset(
'assets/images/icici_logo.png',
width: 40,
height: 40,
);
}
if (bankName != null &&
bankName.toLowerCase().contains('punjab national bank')) {
return Image.asset(
'assets/images/pnb_logo.png',
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,
size: 40,
color: Colors.grey,
);
}
}