Transaction Details page
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:kmobile/data/models/transaction.dart';
|
|||||||
import 'package:kmobile/data/repositories/transaction_repository.dart';
|
import 'package:kmobile/data/repositories/transaction_repository.dart';
|
||||||
import 'package:kmobile/di/injection.dart';
|
import 'package:kmobile/di/injection.dart';
|
||||||
import '../../../l10n/app_localizations.dart';
|
import '../../../l10n/app_localizations.dart';
|
||||||
|
import 'transaction_details_screen.dart';
|
||||||
|
|
||||||
class AccountStatementScreen extends StatefulWidget {
|
class AccountStatementScreen extends StatefulWidget {
|
||||||
final String accountNo;
|
final String accountNo;
|
||||||
@@ -289,6 +290,15 @@ class _AccountStatementScreen extends State<AccountStatementScreen> {
|
|||||||
"₹${tx.amount}",
|
"₹${tx.amount}",
|
||||||
style: const TextStyle(fontSize: 16),
|
style: const TextStyle(fontSize: 16),
|
||||||
),
|
),
|
||||||
|
onTap: () {
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (_) =>
|
||||||
|
TransactionDetailsScreen(transaction: tx),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
160
lib/features/accounts/screens/transaction_details_screen.dart
Normal file
160
lib/features/accounts/screens/transaction_details_screen.dart
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:material_symbols_icons/symbols.dart';
|
||||||
|
|
||||||
|
class TransactionDetailsScreen extends StatelessWidget {
|
||||||
|
final dynamic transaction;
|
||||||
|
|
||||||
|
const TransactionDetailsScreen({super.key, required this.transaction});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
final bool isCredit = transaction.type?.toUpperCase() == 'CR';
|
||||||
|
|
||||||
|
// Future<void> _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',
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(title: const Text("Transaction Details")),
|
||||||
|
body: Padding(
|
||||||
|
padding: const EdgeInsets.all(16.0),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
// Absolute center for amount + icon + date + details + share button
|
||||||
|
Expanded(
|
||||||
|
flex: 3,
|
||||||
|
child: Center(
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
// Amount + icon + Share Button
|
||||||
|
Row(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
"₹ ${transaction.amount}",
|
||||||
|
style: const TextStyle(
|
||||||
|
fontSize: 40,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(width: 8),
|
||||||
|
Icon(
|
||||||
|
isCredit ? Symbols.call_received : Symbols.call_made,
|
||||||
|
color: isCredit ? Colors.green : Colors.red,
|
||||||
|
size: 28,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const SizedBox(height: 8),
|
||||||
|
// Date centered
|
||||||
|
Text(
|
||||||
|
transaction.date ?? "",
|
||||||
|
style: const TextStyle(
|
||||||
|
fontSize: 16,
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
const Divider(),
|
||||||
|
|
||||||
|
// All details
|
||||||
|
Expanded(
|
||||||
|
flex: 5,
|
||||||
|
child: ListView(
|
||||||
|
children: [
|
||||||
|
_buildDetailRow("Transaction Type", transaction.type ?? ""),
|
||||||
|
_buildDetailRow("Transfer Type", transaction.name.split("/").first ?? ""),
|
||||||
|
if(transaction.name.length> 12) ... [
|
||||||
|
_buildDetailRow("UTR No", transaction.name.split("= ")[1].split(" ")[0] ?? ""),
|
||||||
|
_buildDetailRow("Beneficiary Account No", transaction.name.split("A/C ").last ?? "")
|
||||||
|
]
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// 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,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildDetailRow(String label, String value) {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 8.0),
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
"$label: ",
|
||||||
|
style: const TextStyle(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 20,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 30),
|
||||||
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
value,
|
||||||
|
style: const TextStyle(fontSize: 20),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -1,5 +1,4 @@
|
|||||||
// ignore_for_file: use_build_context_synchronously
|
// ignore_for_file: use_build_context_synchronously
|
||||||
|
|
||||||
import 'dart:developer';
|
import 'dart:developer';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
@@ -8,6 +7,7 @@ import 'package:kmobile/data/repositories/transaction_repository.dart';
|
|||||||
import 'package:kmobile/di/injection.dart';
|
import 'package:kmobile/di/injection.dart';
|
||||||
import 'package:kmobile/features/accounts/screens/account_info_screen.dart';
|
import 'package:kmobile/features/accounts/screens/account_info_screen.dart';
|
||||||
import 'package:kmobile/features/accounts/screens/account_statement_screen.dart';
|
import 'package:kmobile/features/accounts/screens/account_statement_screen.dart';
|
||||||
|
import 'package:kmobile/features/accounts/screens/transaction_details_screen.dart';
|
||||||
import 'package:kmobile/features/auth/controllers/auth_cubit.dart';
|
import 'package:kmobile/features/auth/controllers/auth_cubit.dart';
|
||||||
import 'package:kmobile/features/auth/controllers/auth_state.dart';
|
import 'package:kmobile/features/auth/controllers/auth_state.dart';
|
||||||
import 'package:kmobile/features/customer_info/screens/customer_info_screen.dart';
|
import 'package:kmobile/features/customer_info/screens/customer_info_screen.dart';
|
||||||
@@ -581,6 +581,15 @@ class _DashboardScreenState extends State<DashboardScreen> {
|
|||||||
"₹${tx.amount}",
|
"₹${tx.amount}",
|
||||||
style: const TextStyle(fontSize: 16),
|
style: const TextStyle(fontSize: 16),
|
||||||
),
|
),
|
||||||
|
onTap: () {
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (_) =>
|
||||||
|
TransactionDetailsScreen(transaction: tx),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
|
@@ -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,
|
||||||
@@ -1419,8 +1416,7 @@ abstract class AppLocalizations {
|
|||||||
String get themeMode;
|
String get themeMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AppLocalizationsDelegate
|
class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
|
||||||
extends LocalizationsDelegate<AppLocalizations> {
|
|
||||||
const _AppLocalizationsDelegate();
|
const _AppLocalizationsDelegate();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -1429,25 +1425,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.'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,3 @@
|
|||||||
// ignore: unused_import
|
|
||||||
import 'package:intl/intl.dart' as intl;
|
|
||||||
import 'app_localizations.dart';
|
import 'app_localizations.dart';
|
||||||
|
|
||||||
// ignore_for_file: type=lint
|
// ignore_for_file: type=lint
|
||||||
@@ -488,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';
|
||||||
@@ -507,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.';
|
||||||
@@ -569,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';
|
||||||
@@ -591,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';
|
||||||
|
@@ -1,5 +1,3 @@
|
|||||||
// ignore: unused_import
|
|
||||||
import 'package:intl/intl.dart' as intl;
|
|
||||||
import 'app_localizations.dart';
|
import 'app_localizations.dart';
|
||||||
|
|
||||||
// ignore_for_file: type=lint
|
// ignore_for_file: type=lint
|
||||||
@@ -54,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 => 'बाद में';
|
||||||
@@ -489,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 => 'ओटीपी सत्यापित करें';
|
||||||
@@ -508,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 => 'टी-पिन सेट करने में विफल। कृपया पुनः प्रयास करें।';
|
||||||
@@ -570,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 => 'नहीं';
|
||||||
@@ -580,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 => 'ऐप बंद करें';
|
||||||
@@ -593,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 => 'केसीसीबी';
|
||||||
|
Reference in New Issue
Block a user