changed imports of AppLocalization

Also added beneficiary validation while quick pay within bank
This commit is contained in:
2025-07-24 22:21:19 +05:30
parent 23d742ace9
commit 787fcdc2e2
42 changed files with 3965 additions and 1025 deletions

View File

@@ -4,7 +4,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:kmobile/security/secure_storage.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import './l10n/app_localizations.dart';
import 'config/themes.dart';
import 'config/routes.dart';
import 'di/injection.dart';
@@ -14,7 +14,6 @@ import 'features/auth/screens/welcome_screen.dart';
import 'features/auth/screens/login_screen.dart';
import 'features/service/screens/service_screen.dart';
import 'features/dashboard/screens/dashboard_screen.dart';
import 'package:material_symbols_icons/material_symbols_icons.dart';
import 'features/auth/screens/mpin_screen.dart';
import 'package:local_auth/local_auth.dart';
@@ -25,8 +24,8 @@ class KMobile extends StatefulWidget {
State<KMobile> createState() => _KMobileState();
static void setLocale(BuildContext context, Locale newLocale) {
final _KMobileState? state =
context.findAncestorStateOfType<_KMobileState>();
final _KMobileState? state = context
.findAncestorStateOfType<_KMobileState>();
state?.setLocale(newLocale);
}
}
@@ -113,16 +112,11 @@ class _KMobileState extends State<KMobile> {
);
return MultiBlocProvider(
providers: [
BlocProvider<AuthCubit>(create: (_) => getIt<AuthCubit>()),
],
providers: [BlocProvider<AuthCubit>(create: (_) => getIt<AuthCubit>())],
child: MaterialApp(
debugShowCheckedModeBanner: false,
locale: _locale, // Use your existing locale variable
supportedLocales: const [
Locale('en'),
Locale('hi'),
],
supportedLocales: const [Locale('en'), Locale('hi')],
localizationsDelegates: const [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
@@ -169,7 +163,8 @@ class _AuthGateState extends State<AuthGate> {
final mpin = await storage.read('mpin');
final biometric = await storage.read('biometric_enabled');
setState(() {
_isLoggedIn = accessToken != null &&
_isLoggedIn =
accessToken != null &&
accessTokenExpiry != null &&
DateTime.parse(accessTokenExpiry).isAfter(DateTime.now());
_hasMPin = mpin != null;
@@ -198,7 +193,7 @@ class _AuthGateState extends State<AuthGate> {
}
}
/* @override
/* @override
Widget build(BuildContext context) {
if (_checking) {
return const SplashScreen();
@@ -336,9 +331,7 @@ class _AuthGateState extends State<AuthGate> {
mode: MPinMode.enter,
onCompleted: (_) {
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (_) => const NavigationScaffold(),
),
MaterialPageRoute(builder: (_) => const NavigationScaffold()),
);
},
);
@@ -353,8 +346,9 @@ class _AuthGateState extends State<AuthGate> {
context: context,
barrierDismissible: false,
builder: (ctx) => AlertDialog(
title:
Text(AppLocalizations.of(context).enableFingerprintLogin),
title: Text(
AppLocalizations.of(context).enableFingerprintLogin,
),
content: Text(
AppLocalizations.of(context).enableFingerprintMessage,
),
@@ -377,8 +371,9 @@ class _AuthGateState extends State<AuthGate> {
if (canCheck) {
didAuth = await localAuth.authenticate(
localizedReason:
AppLocalizations.of(context).authenticateToEnable,
localizedReason: AppLocalizations.of(
context,
).authenticateToEnable,
options: const AuthenticationOptions(
stickyAuth: true,
biometricOnly: true,
@@ -395,9 +390,7 @@ class _AuthGateState extends State<AuthGate> {
}
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (_) => const NavigationScaffold(),
),
MaterialPageRoute(builder: (_) => const NavigationScaffold()),
);
},
);
@@ -480,26 +473,27 @@ class _NavigationScaffoldState extends State<NavigationScaffold> {
children: _pages,
),
bottomNavigationBar: BottomNavigationBar(
currentIndex: _selectedIndex,
type: BottomNavigationBarType.fixed,
backgroundColor: const Color(0xFFE0F7FA), // Light blue background
selectedItemColor: Colors.blue[800],
unselectedItemColor: Colors.black54,
onTap: _onItemTapped,
items: [
BottomNavigationBarItem(
icon: const Icon(Icons.home_filled),
label: AppLocalizations.of(context).home,
),
BottomNavigationBarItem(
icon: const Icon(Icons.credit_card),
label: AppLocalizations.of(context).card,
),
BottomNavigationBarItem(
icon: const Icon(Icons.miscellaneous_services),
label: AppLocalizations.of(context).services,
),
]),
currentIndex: _selectedIndex,
type: BottomNavigationBarType.fixed,
backgroundColor: const Color(0xFFE0F7FA), // Light blue background
selectedItemColor: Colors.blue[800],
unselectedItemColor: Colors.black54,
onTap: _onItemTapped,
items: [
BottomNavigationBarItem(
icon: const Icon(Icons.home_filled),
label: AppLocalizations.of(context).home,
),
BottomNavigationBarItem(
icon: const Icon(Icons.credit_card),
label: AppLocalizations.of(context).card,
),
BottomNavigationBarItem(
icon: const Icon(Icons.miscellaneous_services),
label: AppLocalizations.of(context).services,
),
],
),
),
);
}
@@ -517,8 +511,10 @@ class SplashScreen extends StatelessWidget {
children: [
const CircularProgressIndicator(),
const SizedBox(height: 20),
Text(AppLocalizations.of(context).loading,
style: Theme.of(context).textTheme.headlineMedium),
Text(
AppLocalizations.of(context).loading,
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),