Branch Locator static Screen

This commit is contained in:
2025-08-20 12:46:28 +05:30
parent 7527db3d2f
commit fc76528206
10 changed files with 139 additions and 60 deletions

BIN
assets/images/boi_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@@ -0,0 +1,43 @@
import '../../../l10n/app_localizations.dart';
import 'package:flutter/material.dart';
class BranchLocatorScreen extends StatelessWidget {
const BranchLocatorScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(AppLocalizations.of(context).branchLocator),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.location_on,
size: 80,
color: Theme.of(context).primaryColor,
),
const SizedBox(height: 16),
Text(
AppLocalizations.of(context).findnearbybranched,
style: const TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
const SizedBox(height: 24),
ElevatedButton.icon(
icon: const Icon(Icons.search),
label: Text( AppLocalizations.of(context).searchbranch),
onPressed: () {
// Place API here
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text( AppLocalizations.of(context).branchsearchsoon)),
);
},
),
],
),
),
);
}
}

View File

@@ -1,3 +1,5 @@
import 'package:kmobile/features/service/screens/branch_locator_screen.dart';
import '../../../l10n/app_localizations.dart'; import '../../../l10n/app_localizations.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -70,7 +72,13 @@ class _ServiceScreen extends State<ServiceScreen> {
ServiceManagementTile( ServiceManagementTile(
icon: Symbols.missing_controller, icon: Symbols.missing_controller,
label: AppLocalizations.of(context).branchLocator, label: AppLocalizations.of(context).branchLocator,
onTap: () {}, onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const BranchLocatorScreen())
);
},
), ),
const Divider(height: 1), const Divider(height: 1),
], ],

View File

@@ -246,6 +246,9 @@
"proceed": "Proceed", "proceed": "Proceed",
"plsValidateBeneficiary": "Please validate beneficiary details first", "plsValidateBeneficiary": "Please validate beneficiary details first",
"accno7to20": "Account number must be between 7 and 20 digits", "accno7to20": "Account number must be between 7 and 20 digits",
"validateBeneficiaryproceeding": "Please validate beneficiary before proceeding" "validateBeneficiaryproceeding": "Please validate beneficiary before proceeding",
"findnearbybranched": "Find nearby branches",
"searchbranch": "Search Branch",
"branchsearchsoon": "Branch search coming soon..."
} }

View File

@@ -246,5 +246,8 @@
"proceed": "आगे बढ़ना", "proceed": "आगे बढ़ना",
"plsValidateBeneficiary": "कृपया पहले लाभार्थी विवरण सत्यापित करें", "plsValidateBeneficiary": "कृपया पहले लाभार्थी विवरण सत्यापित करें",
"accno7to20": "खाता संख्या सात से बीस अंकों के बीच होनी चाहिए", "accno7to20": "खाता संख्या सात से बीस अंकों के बीच होनी चाहिए",
"validateBeneficiaryproceeding": "कृपया आगे बढ़ने से पहले लाभार्थी को पट्टे पर मान्य करें" "validateBeneficiaryproceeding": "कृपया आगे बढ़ने से पहले लाभार्थी को पट्टे पर मान्य करें",
"findnearbybranched": "आस-पास की शाखाएँ खोजें",
"searchbranch": "शाखा खोजें",
"branchsearchsoon": "शाखा खोज सुविधा जल्द ही आ रही है..."
} }

View File

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

View File

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

View File

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

View File

@@ -64,7 +64,15 @@ Widget getBankLogo(String? bankName) {
width: 40, width: 40,
height: 40, height: 40,
); );
} else { }
if (bankName != null && bankName.toLowerCase().contains('bank of india')) {
return Image.asset(
'assets/images/boi_logo.png',
width: 40,
height: 40,
);
}
else {
return const Icon( return const Icon(
Icons.account_balance, Icons.account_balance,
size: 40, size: 40,

View File

@@ -96,6 +96,7 @@ flutter:
- assets/images/BankofBaroda_logo.png - assets/images/BankofBaroda_logo.png
- assets/images/canaraBank_logo.png - assets/images/canaraBank_logo.png
- assets/images/kotak_logo.png - assets/images/kotak_logo.png
- assets/images/boi_logo.png
- assets/images/kmobile_splash.jpg - assets/images/kmobile_splash.jpg
- assets/images/kmobile_splash2.png - assets/images/kmobile_splash2.png
- assets/images/icon.svg - assets/images/icon.svg