font family changed

This commit is contained in:
Kalonkarthik 2025-04-11 17:53:50 +05:30
parent a3c9f8c708
commit d3706d67a4
15 changed files with 734 additions and 137 deletions

View File

@ -78,5 +78,15 @@
<action android:name="android.intent.action.PROCESS_TEXT" /> <action android:name="android.intent.action.PROCESS_TEXT" />
<data android:mimeType="text/plain" /> <data android:mimeType="text/plain" />
</intent> </intent>
<!-- To open phone's dialer app -->
<intent>
<action android:name="android.intent.action.DIAL" />
<data android:scheme="tel" />
</intent>
<!-- To open email app -->
<intent>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="*/*" />
</intent>
</queries> </queries>
</manifest> </manifest>

View File

@ -48,7 +48,8 @@ class UaeNumbers extends StatelessWidget {
title: Text(context.translate( title: Text(context.translate(
'UAE Numbers', 'UAE Numbers',
'أرقام الإمارات', 'أرقام الإمارات',
)), ),
),
body: uaenumberWidget(), body: uaenumberWidget(),
), ),
); );
@ -244,7 +245,10 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
// Centers text horizontally // Centers text horizontally
decoration: InputDecoration( decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.search, hintText: AppLocalizations.of(context)!.search,
hintStyle: TextStyle(color: Color(0xFFAA8E83)), hintStyle: TextStyle(color: Color(0xFFAA8E83), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
prefixIconConstraints: prefixIconConstraints:
BoxConstraints(maxWidth: 42, maxHeight: 42), BoxConstraints(maxWidth: 42, maxHeight: 42),
prefixIcon: Container( prefixIcon: Container(
@ -375,6 +379,10 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
child: Text( child: Text(
title, title,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: color, color: color,
@ -465,6 +473,10 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
Text( Text(
value, value,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 20, fontSize: 20,
color: isPopulationGrowth color: isPopulationGrowth
? (isPositive ? Colors.green : Colors.red) ? (isPositive ? Colors.green : Colors.red)
@ -546,6 +558,10 @@ class _CustomExpandableTileState extends State<CustomExpandableTile> {
Text( Text(
widget.title, widget.title,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 20, fontSize: 20,

View File

@ -1,6 +1,7 @@
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:tutorial_coach_mark/tutorial_coach_mark.dart'; import 'package:tutorial_coach_mark/tutorial_coach_mark.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:uae_stat/domain/use_cases/language.dart';
final allTargetsCompletedProvider = StateProvider<bool>((ref) => true); final allTargetsCompletedProvider = StateProvider<bool>((ref) => true);
final chartsTourProvider = StateProvider<bool>((ref) => true); final chartsTourProvider = StateProvider<bool>((ref) => true);
@ -33,7 +34,11 @@ TargetContent createTargetContent({
), ),
child: Text( child: Text(
text, text,
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 18, fontSize: 18,
), ),

View File

@ -629,6 +629,12 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
controller: _usernameController, controller: _usernameController,
// focusNode: _focusNodes[0], // focusNode: _focusNodes[0],
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
// hintText: _showHints[0] ? 'Username' : null, // hintText: _showHints[0] ? 'Username' : null,
hintText: _showHints[0] hintText: _showHints[0]
? AppLocalizations.of( ? AppLocalizations.of(
@ -730,6 +736,12 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
controller: _emailController, controller: _emailController,
// focusNode: _focusNodes[1], // focusNode: _focusNodes[1],
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
// hintText: 'Enter your email', // hintText: 'Enter your email',
hintText: _showHints[1] hintText: _showHints[1]
? AppLocalizations.of( ? AppLocalizations.of(
@ -831,6 +843,12 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
// focusNode: _focusNodes[2], // focusNode: _focusNodes[2],
obscureText: _obscurePassword, obscureText: _obscurePassword,
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
hintText: _showHints[2] hintText: _showHints[2]
? AppLocalizations.of( ? AppLocalizations.of(
context)! context)!
@ -962,6 +980,12 @@ class _RegisterScreenState extends ConsumerState<RegisterScreen> {
obscureText: obscureText:
_obscureConfirmPassword, _obscureConfirmPassword,
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
hintText: _showHints[3] hintText: _showHints[3]
? AppLocalizations.of( ? AppLocalizations.of(
context)! context)!

View File

@ -278,6 +278,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
'هل أنت متأكد أنك تريد إزالة هذه الإشارة المرجعية؟'), 'هل أنت متأكد أنك تريد إزالة هذه الإشارة المرجعية؟'),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 18, fontSize: 18,
color: Color(0xFF898C81), color: Color(0xFF898C81),
), ),
@ -309,6 +313,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
child: Text( child: Text(
context.translate('No', 'لا'), context.translate('No', 'لا'),
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Color(0xFFAA8E83), color: Color(0xFFAA8E83),
fontSize: 16, fontSize: 16,
), ),
@ -332,7 +340,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
), ),
child: Text( child: Text(
context.translate('Yes', 'نعم'), context.translate('Yes', 'نعم'),
style: TextStyle(color: Colors.white, fontSize: 16), style: TextStyle(color: Colors.white, fontSize: 16, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
), ),
), ),
@ -371,6 +382,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
), ),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 18, fontSize: 18,
color: Color(0xFF898C81), color: Color(0xFF898C81),
), ),
@ -402,6 +417,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
child: Text( child: Text(
context.translate('No', 'لا'), context.translate('No', 'لا'),
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Color(0xFFAA8E83), color: Color(0xFFAA8E83),
fontSize: 16, fontSize: 16,
), ),
@ -425,7 +444,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
), ),
child: Text( child: Text(
context.translate('Yes', 'نعم'), context.translate('Yes', 'نعم'),
style: TextStyle(color: Colors.white, fontSize: 16), style: TextStyle(color: Colors.white, fontSize: 16, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
), ),
), ),
@ -472,9 +494,14 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
return null; return null;
} }
void handleSkip() { Future<void> handleSkip() async {
tutorialCoachMark.skip(); tutorialCoachMark.skip();
debugPrint('Skip clicked'); debugPrint('Skip clicked');
final prefs = await SharedPreferences.getInstance();
String? loginCount = prefs.getString('login_count');
if (loginCount == '1') {
await prefs.setString('login_count', '2');
}
ref.read(chartsTourProvider.notifier).state = true; ref.read(chartsTourProvider.notifier).state = true;
ref.read(previousChartsTourProvider.notifier).state = true; ref.read(previousChartsTourProvider.notifier).state = true;
ref.read(homeTourProvider.notifier).state = true; ref.read(homeTourProvider.notifier).state = true;
@ -597,7 +624,11 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
), ),
child: Text( child: Text(
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
), ),
@ -761,7 +792,11 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
), ),
child: Text( child: Text(
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
), ),
@ -931,7 +966,11 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
), ),
child: Text( child: Text(
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
), ),
@ -1091,7 +1130,11 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
), ),
child: Text( child: Text(
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
), ),
@ -1624,7 +1667,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
color: Color(0xFF8E8E8E), color: Color(0xFF8E8E8E),
fontSize: 20, fontSize: 20,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
), ),
), ),
], ],
@ -1673,7 +1719,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
style: TextStyle( style: TextStyle(
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Color(0xFF8E8E8E), color: Color(0xFF8E8E8E),
), ),
), ),
@ -1761,7 +1810,12 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
// "${locale == 'ar' ? 'يختار ' : 'Select '}" // "${locale == 'ar' ? 'يختار ' : 'Select '}"
"${context.translate(filter_text_and_order['en'], filter_text_and_order['ar'])}", "${context.translate(filter_text_and_order['en'], filter_text_and_order['ar'])}",
style: TextStyle( style: TextStyle(
color: Colors.grey)) color: Colors.grey,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
)
] ]
: selectedFilter["filter_data"] : selectedFilter["filter_data"]
.map<Widget>((value) { .map<Widget>((value) {
@ -1835,6 +1889,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
child: Text( child: Text(
context.translate('Clear', 'واضح'), context.translate('Clear', 'واضح'),
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 13, fontSize: 13,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
@ -1907,6 +1965,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
child: Text( child: Text(
context.translate('Filter', 'فلتر'), context.translate('Filter', 'فلتر'),
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 13, fontSize: 13,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
@ -2258,7 +2320,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
color: Colors.white, color: Colors.white,
fontSize: 26, fontSize: 26,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
fontFamily: 'Roboto'), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
Container( Container(
width: mywidth / 7, width: mywidth / 7,
@ -2274,7 +2339,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
color: Colors.white, color: Colors.white,
fontSize: 20, fontSize: 20,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
fontFamily: 'Roboto'), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
], ],
), ),
@ -2318,6 +2386,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
'إشارة مرجعية', 'إشارة مرجعية',
), ),
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
color: Color(int.parse( color: Color(int.parse(
(chartScreenData[ (chartScreenData[
@ -2332,7 +2404,11 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
'Bookmark', 'Bookmark',
'إشارة مرجعية', 'إشارة مرجعية',
), ),
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
color: Colors.white, color: Colors.white,
), ),
@ -2384,7 +2460,11 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
children: [ children: [
Text( Text(
context.translate('Share', 'يشارك'), context.translate('Share', 'يشارك'),
style: const TextStyle( style:TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
color: Colors.white, color: Colors.white,
), ),
@ -2427,7 +2507,11 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
'Filter', 'Filter',
'فلتر', 'فلتر',
), ),
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
color: Colors.white, color: Colors.white,
), ),
@ -2718,6 +2802,10 @@ class _ChartScreen1State extends ConsumerState<ChartScreen1> {
child: Text( child: Text(
tab['name']!, tab['name']!,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: isActive ? Colors.black : Colors.white, color: isActive ? Colors.black : Colors.white,
fontWeight: isActive ? FontWeight.w500 : FontWeight.w400, fontWeight: isActive ? FontWeight.w500 : FontWeight.w400,
fontSize: 13, fontSize: 13,
@ -2880,7 +2968,10 @@ class CardWidget extends StatelessWidget {
), ),
child: Text( child: Text(
chart_heading ?? 'NA', chart_heading ?? 'NA',
style: TextStyle(color: Colors.white), style: TextStyle(color: Colors.white, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
), ),
), ),
@ -2897,6 +2988,10 @@ class CardWidget extends StatelessWidget {
overflow: overflow:
TextOverflow.ellipsis, // Truncate text with '...' TextOverflow.ellipsis, // Truncate text with '...'
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 11, fontSize: 11,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Colors.black87, color: Colors.black87,
@ -2908,7 +3003,11 @@ class CardWidget extends StatelessWidget {
RegExp(r'\d').hasMatch(response[0]['display_value'] ?? '') RegExp(r'\d').hasMatch(response[0]['display_value'] ?? '')
? '(${response[0]['display_value'] ?? 'NA'})' ? '(${response[0]['display_value'] ?? 'NA'})'
: '${response[0]['display_value'] ?? 'NA'}', : '${response[0]['display_value'] ?? 'NA'}',
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 11, fontSize: 11,
color: Colors.grey, color: Colors.grey,
overflow: overflow:
@ -2926,6 +3025,10 @@ class CardWidget extends StatelessWidget {
response[0]['value'] ?? 'NA', response[0]['value'] ?? 'NA',
textAlign: TextAlign.center, // Ensures text is centered textAlign: TextAlign.center, // Ensures text is centered
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 23, fontSize: 23,
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
color: (response[0]['font_color'] ?? '').isEmpty color: (response[0]['font_color'] ?? '').isEmpty
@ -3013,7 +3116,10 @@ class CardWidget extends StatelessWidget {
child: Text( child: Text(
chart_heading ?? 'NA', chart_heading ?? 'NA',
style: style:
TextStyle(color: Colors.white, fontSize: 10), TextStyle(color: Colors.white, fontSize: 10, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
), ),
), ),
@ -3030,6 +3136,10 @@ class CardWidget extends StatelessWidget {
maxLines: 2, maxLines: 2,
overflow: TextOverflow.ellipsis, // Truncate with '...' overflow: TextOverflow.ellipsis, // Truncate with '...'
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 11, fontSize: 11,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Colors.black87, color: Colors.black87,
@ -3045,7 +3155,11 @@ class CardWidget extends StatelessWidget {
? '(${response[0]['display_value'] ?? 'NA'})' ? '(${response[0]['display_value'] ?? 'NA'})'
: '${response[0]['display_value'] ?? 'NA'}', : '${response[0]['display_value'] ?? 'NA'}',
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 11, fontSize: 11,
color: Colors.grey, color: Colors.grey,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
@ -3062,6 +3176,10 @@ class CardWidget extends StatelessWidget {
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
maxLines: 1, maxLines: 1,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 23, fontSize: 23,
fontWeight: FontWeight.w900, fontWeight: FontWeight.w900,
color: (response[0]['font_color'] ?? '').isEmpty color: (response[0]['font_color'] ?? '').isEmpty
@ -3097,6 +3215,10 @@ class CardWidget extends StatelessWidget {
Text( Text(
response[1]['value'] ?? 'NA', response[1]['value'] ?? 'NA',
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: (response[1]['font_color'] ?? '').isEmpty color: (response[1]['font_color'] ?? '').isEmpty
@ -3124,7 +3246,11 @@ class CardWidget extends StatelessWidget {
RegExp(r'\d').hasMatch(response[1]['display_value'] ?? '') RegExp(r'\d').hasMatch(response[1]['display_value'] ?? '')
? '(${response[1]['display_value'] ?? 'NA'})' ? '(${response[1]['display_value'] ?? 'NA'})'
: '${response[1]['display_value'] ?? 'NA'}', : '${response[1]['display_value'] ?? 'NA'}',
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 8, fontSize: 8,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: Colors.grey, color: Colors.grey,

View File

@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:uae_stat/config/my_theme.dart'; import 'package:uae_stat/config/my_theme.dart';
import 'package:uae_stat/domain/use_cases/language.dart';
class ThemedFormField extends HookWidget { class ThemedFormField extends HookWidget {
const ThemedFormField({ const ThemedFormField({
@ -43,6 +44,12 @@ class ThemedFormField extends HookWidget {
), ),
); );
final inputDecoration = InputDecoration( final inputDecoration = InputDecoration(
errorStyle: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
filled: true, filled: true,
fillColor: Colors.white, fillColor: Colors.white,
contentPadding: const EdgeInsets.symmetric(vertical: 14, horizontal: 15), contentPadding: const EdgeInsets.symmetric(vertical: 14, horizontal: 15),

View File

@ -288,6 +288,10 @@ class LoginRoute extends HookConsumerWidget {
'إعادة تعيين كلمة المرور', 'إعادة تعيين كلمة المرور',
), ),
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: locale?.languageCode == 'ar' ? 18 : 20, fontSize: locale?.languageCode == 'ar' ? 18 : 20,
color: Color(0xFF898C81), color: Color(0xFF898C81),
fontWeight: FontWeight.w600), fontWeight: FontWeight.w600),
@ -298,11 +302,21 @@ class LoginRoute extends HookConsumerWidget {
validator: emailValidation(), validator: emailValidation(),
controller: emailCtl, controller: emailCtl,
decoration: InputDecoration( decoration: InputDecoration(
errorStyle: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
labelText: context.translate( labelText: context.translate(
'Email address', 'Email address',
'عنوان البريد الإلكتروني', 'عنوان البريد الإلكتروني',
), ),
labelStyle: TextStyle( labelStyle: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: locale?.languageCode == 'ar' ? 13 : 16, fontSize: locale?.languageCode == 'ar' ? 13 : 16,
color: Color(0xFF898C81), // For label text color color: Color(0xFF898C81), // For label text color
// fontWeight: FontWeight.w600, // fontWeight: FontWeight.w600,
@ -330,6 +344,10 @@ class LoginRoute extends HookConsumerWidget {
'Return', 'Return',
'يعود', 'يعود',
), ),
style: TextStyle( fontSize: context.translate(16, 10), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
), ),
ElevatedButton( ElevatedButton(
@ -355,6 +373,10 @@ class LoginRoute extends HookConsumerWidget {
'Send Reset Email', 'Send Reset Email',
'إرسال إعادة تعيين البريد الإلكتروني', 'إرسال إعادة تعيين البريد الإلكتروني',
), ),
style: TextStyle( fontSize: context.translate(16, 10), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
), ),
], ],
@ -675,7 +697,7 @@ class LoginRoute extends HookConsumerWidget {
style: TextStyle( style: TextStyle(
fontFamily: context.translate( fontFamily: context.translate(
'Roboto', 'Roboto',
'Roboto', 'NotoKufi',
), ),
fontSize: locale?.languageCode == 'ar' ? 38 : 40, fontSize: locale?.languageCode == 'ar' ? 38 : 40,
fontWeight: FontWeight.w300, fontWeight: FontWeight.w300,

View File

@ -211,7 +211,10 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
title: Text( title: Text(
context.translate('Log Out Confirmation', 'تأكيد تسجيل الخروج'), context.translate('Log Out Confirmation', 'تأكيد تسجيل الخروج'),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
content: Padding( content: Padding(
padding: const EdgeInsets.all(20.0), padding: const EdgeInsets.all(20.0),
@ -220,6 +223,10 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
'هل أنت متأكد أنك تريد تسجيل الخروج؟'), 'هل أنت متأكد أنك تريد تسجيل الخروج؟'),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 18, fontSize: 18,
color: Color(0xFF898C81), color: Color(0xFF898C81),
), ),
@ -247,6 +254,10 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
child: Text( child: Text(
context.translate('Cancel', 'إلغاء'), context.translate('Cancel', 'إلغاء'),
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Color(0xFFAA8E83), color: Color(0xFFAA8E83),
fontSize: 16, fontSize: 16,
), ),
@ -270,7 +281,10 @@ class _MyHomePageState extends ConsumerState<MyHomePage> {
.scaleDown, // Prevents wrapping while adjusting text size .scaleDown, // Prevents wrapping while adjusting text size
child: Text( child: Text(
context.translate('Log Out', 'تسجيل الخروج'), context.translate('Log Out', 'تسجيل الخروج'),
style: TextStyle(color: Colors.white, fontSize: 16), style: TextStyle(color: Colors.white, fontSize: 16, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),
@ -366,9 +380,14 @@ class EconomyStatsState extends ConsumerState<EconomyStatsWidget> {
late List<TargetFocus> previousHomeTargets; late List<TargetFocus> previousHomeTargets;
late final Locale locale; late final Locale locale;
void handleSkip() { Future<void> handleSkip() async {
tutorialCoachMark.skip(); tutorialCoachMark.skip();
debugPrint('Skip clicked'); debugPrint('Skip clicked');
final prefs = await SharedPreferences.getInstance();
String? loginCount = prefs.getString('login_count');
if (loginCount == '1') {
await prefs.setString('login_count', '2');
}
ref.read(chartsTourProvider.notifier).state = true; ref.read(chartsTourProvider.notifier).state = true;
ref.read(previousChartsTourProvider.notifier).state = true; ref.read(previousChartsTourProvider.notifier).state = true;
ref.read(homeTourProvider.notifier).state = true; ref.read(homeTourProvider.notifier).state = true;
@ -478,7 +497,7 @@ class EconomyStatsState extends ConsumerState<EconomyStatsWidget> {
right: 10), // Adjust the value as needed right: 10), // Adjust the value as needed
child: Text( child: Text(
'1/7', '1/7',
style: const TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
), ),
@ -503,9 +522,13 @@ class EconomyStatsState extends ConsumerState<EconomyStatsWidget> {
), ),
child: Text( child: Text(
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: const TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
), ),
), ),
), ),
@ -622,9 +645,13 @@ class EconomyStatsState extends ConsumerState<EconomyStatsWidget> {
), ),
child: Text( child: Text(
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: const TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
), ),
), ),
), ),
@ -796,7 +823,11 @@ class EconomyStatsState extends ConsumerState<EconomyStatsWidget> {
), ),
child: Text( child: Text(
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
), ),
@ -978,7 +1009,11 @@ class EconomyStatsState extends ConsumerState<EconomyStatsWidget> {
), ),
child: Text( child: Text(
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
), ),
@ -1251,7 +1286,11 @@ class EconomyStatsState extends ConsumerState<EconomyStatsWidget> {
: null, : null,
text: mainTopic['main_topic'], text: mainTopic['main_topic'],
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
textStyle: const TextStyle( textStyle: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 24, fontSize: 24,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: Colors.white, color: Colors.white,
@ -1435,7 +1474,11 @@ class RoundedCornerContainer extends StatelessWidget {
child: Text( child: Text(
text, text,
style: textStyle ?? style: textStyle ??
const TextStyle( TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 24, fontSize: 24,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: Colors.white, color: Colors.white,
@ -1526,12 +1569,15 @@ class InfoCard extends StatelessWidget {
// ), // ),
Text( Text(
title, title,
style: const TextStyle( style: TextStyle(
// fontSize: 11, // fontSize: 11,
fontSize: 12, fontSize: 12,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
// color: Colors.black, // color: Colors.black,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Color(0xFF000000), color: Color(0xFF000000),
), ),
), ),
@ -1546,10 +1592,13 @@ class InfoCard extends StatelessWidget {
Text( Text(
subtitle, subtitle,
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: const TextStyle( style: TextStyle(
// fontSize: 11, // fontSize: 11,
fontSize: 12 * 1.1, fontSize: 12 * 1.1,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Color(0xFF8E8E8E), color: Color(0xFF8E8E8E),
), ),
@ -1570,7 +1619,10 @@ class InfoCard extends StatelessWidget {
style: TextStyle( style: TextStyle(
fontSize: 18, fontSize: 18,
fontWeight: FontWeight.w900, fontWeight: FontWeight.w900,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: textcolor ?? Colors.black, color: textcolor ?? Colors.black,
), ),
), ),

View File

@ -221,7 +221,10 @@ class _BookMarkState extends ConsumerState<BookMark> {
'Unable to remove from bookmarks. Please try again', 'Unable to remove from bookmarks. Please try again',
'تعذر الإزالة من الإشارات المرجعية. يرجى المحاولة مرة أخرى.',), 'تعذر الإزالة من الإشارات المرجعية. يرجى المحاولة مرة أخرى.',),
style: style:
TextStyle(color: Color(0xFFEB5F24), fontWeight: FontWeight.w600), TextStyle(color: Color(0xFFEB5F24), fontWeight: FontWeight.w600, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
backgroundColor: Color(0xFFD6E9C6), backgroundColor: Color(0xFFD6E9C6),
duration: Duration(seconds: 2), duration: Duration(seconds: 2),
@ -260,6 +263,10 @@ class _BookMarkState extends ConsumerState<BookMark> {
'هل أنت متأكد أنك تريد إزالة هذه الإشارة المرجعية؟'), 'هل أنت متأكد أنك تريد إزالة هذه الإشارة المرجعية؟'),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 18, fontSize: 18,
color: Color(0xFF898C81), color: Color(0xFF898C81),
), ),
@ -291,6 +298,10 @@ class _BookMarkState extends ConsumerState<BookMark> {
child: Text( child: Text(
context.translate('No', 'لا'), context.translate('No', 'لا'),
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Color(0xFFAA8E83), color: Color(0xFFAA8E83),
fontSize: 16, fontSize: 16,
), ),
@ -314,7 +325,11 @@ class _BookMarkState extends ConsumerState<BookMark> {
), ),
child: Text( child: Text(
context.translate('Yes', 'نعم'), context.translate('Yes', 'نعم'),
style: TextStyle(color: Colors.white, fontSize: 16), style: TextStyle(color: Colors.white, fontSize: 16,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
), ),
), ),
@ -489,6 +504,10 @@ class _BookMarkState extends ConsumerState<BookMark> {
context.translate('No BookMark Added', context.translate('No BookMark Added',
'لم يتم إضافة أي علامة مرجعية'), 'لم يتم إضافة أي علامة مرجعية'),
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, color: Colors.grey), fontSize: 16, color: Colors.grey),
), ),
], ],
@ -506,7 +525,12 @@ class _BookMarkState extends ConsumerState<BookMark> {
context.translate('No BookMark Added', context.translate('No BookMark Added',
'لم يتم إضافة أي علامة مرجعية'), 'لم يتم إضافة أي علامة مرجعية'),
style: TextStyle( style: TextStyle(
fontSize: 16, color: Colors.grey), fontSize: 16, color: Colors.grey,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
), ),
], ],
), ),
@ -529,6 +553,10 @@ class _BookMarkState extends ConsumerState<BookMark> {
Text( Text(
tabs[selectedTabIndex]['title'], tabs[selectedTabIndex]['title'],
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 20, fontSize: 20,
@ -608,7 +636,11 @@ class _BookMarkState extends ConsumerState<BookMark> {
alignment: Alignment.center, alignment: Alignment.center,
child: Text( child: Text(
data['title'] ?? '', data['title'] ?? '',
style: const TextStyle(fontWeight: FontWeight.w500), style: TextStyle(fontWeight: FontWeight.w500,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
maxLines: 1, maxLines: 1,
), ),
@ -642,14 +674,23 @@ class _BookMarkState extends ConsumerState<BookMark> {
), ),
Text( Text(
data['value_source'] ?? '', data['value_source'] ?? '',
style: const TextStyle( style: TextStyle(
fontWeight: FontWeight.w500, color: Colors.grey), fontWeight: FontWeight.w500, color: Colors.grey,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
),
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
maxLines: 1, maxLines: 1,
), ),
Text( Text(
data['value'] ?? '', data['value'] ?? '',
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 28, fontSize: 28,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: data['valueColor'], color: data['valueColor'],
@ -711,7 +752,10 @@ class _BookMarkState extends ConsumerState<BookMark> {
alignment: Alignment.center, alignment: Alignment.center,
child: Text( child: Text(
data['title'] ?? '', data['title'] ?? '',
style: const TextStyle(fontWeight: FontWeight.w500), style: TextStyle(fontWeight: FontWeight.w500, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
maxLines: 1, maxLines: 1,
), ),
@ -732,14 +776,21 @@ class _BookMarkState extends ConsumerState<BookMark> {
), ),
Text( Text(
data['value_source'] ?? '', data['value_source'] ?? '',
style: const TextStyle( style: TextStyle(
fontWeight: FontWeight.w500, color: Colors.grey), fontWeight: FontWeight.w500, color: Colors.grey, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
maxLines: 1, maxLines: 1,
), ),
Text( Text(
data['value'] ?? '', data['value'] ?? '',
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 28, fontSize: 28,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: styleColor, color: styleColor,
@ -788,7 +839,11 @@ class TabBarHeader extends StatelessWidget {
: Colors.grey[700]; : Colors.grey[700];
}), }),
), ),
child: Text(text), child: Text(text,
style: TextStyle( fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),),
), ),
if (index < tabs.length - 1) buildDivider(), if (index < tabs.length - 1) buildDivider(),
], ],
@ -867,6 +922,10 @@ class _CustomExpandableTileState extends State<CustomExpandableTile> {
Text( Text(
widget.title, widget.title,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 20, fontSize: 20,

View File

@ -215,7 +215,11 @@ class _ContactState extends ConsumerState<Contact> {
children: [ children: [
Text( Text(
context.translate(title, titleAr), context.translate(title, titleAr),
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Color(0xFF265E84), color: Color(0xFF265E84),
fontSize: 18, fontSize: 18,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
@ -283,11 +287,17 @@ class _ContactState extends ConsumerState<Contact> {
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
text: values[0], text: values[0],
style: const TextStyle(fontSize: 14, color: Color(0xFF5F5F5F)), style: TextStyle(fontSize: 14, color: Color(0xFF5F5F5F), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
children: <TextSpan>[ children: <TextSpan>[
TextSpan(text: ':',), TextSpan(text: ':',),
TextSpan(text: values[1], TextSpan(text: values[1],
style: TextStyle(fontSize: 14, color:Color(0xFF985400)) style: TextStyle(fontSize: 14, color:Color(0xFF985400), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),)
), ),
], ],
), ),
@ -306,11 +316,17 @@ class _ContactState extends ConsumerState<Contact> {
child: RichText( child: RichText(
text: TextSpan( text: TextSpan(
text: values[0], text: values[0],
style: const TextStyle(fontSize: 14, color: Color(0xFF5F5F5F)), style: TextStyle(fontSize: 14, color: Color(0xFF5F5F5F), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
children: <TextSpan>[ children: <TextSpan>[
TextSpan(text: ':',), TextSpan(text: ':',),
TextSpan(text: values[1], TextSpan(text: values[1],
style: TextStyle(fontSize: 14, color:Color(0xFF985400)) style: TextStyle(fontSize: 14, color:Color(0xFF985400), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),)
), ),
], ],
), ),
@ -319,7 +335,11 @@ class _ContactState extends ConsumerState<Contact> {
:Expanded( :Expanded(
child: Text( child: Text(
text, text,
style: const TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 14, fontSize: 14,
color: Color(0xFF5F5F5F), color: Color(0xFF5F5F5F),
), ),

View File

@ -514,7 +514,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
child: BaseScaffold( child: BaseScaffold(
title: Text( title: Text(
AppLocalizations.of(context)!.my_profile, AppLocalizations.of(context)!.my_profile,
style: TextStyle(color: Color(0xFF985400)), style: TextStyle(color: Color(0xFF985400), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
body: isLoader body: isLoader
? Container( ? Container(
@ -710,6 +713,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
AppLocalizations.of(context)! AppLocalizations.of(context)!
.register_name, .register_name,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: Colors.grey, color: Colors.grey,
@ -723,7 +730,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
focusNode: _focusNodes[0], focusNode: _focusNodes[0],
decoration: InputDecoration( decoration: InputDecoration(
// hintText: _showHints[0] ? 'Mohammad Hassan' : null, // hintText: _showHints[0] ? 'Mohammad Hassan' : null,
hintStyle: TextStyle(color: Colors.grey), hintStyle: TextStyle(color: Colors.grey, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
@ -737,6 +747,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
Text( Text(
AppLocalizations.of(context)!.email_id, AppLocalizations.of(context)!.email_id,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: Colors.grey, color: Colors.grey,
@ -763,6 +777,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
Text( Text(
AppLocalizations.of(context)!.full_name, AppLocalizations.of(context)!.full_name,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: Colors.grey, color: Colors.grey,
@ -793,7 +811,11 @@ class _EditProfileState extends ConsumerState<EditProfile> {
focusNode: _focusNodes[2], focusNode: _focusNodes[2],
decoration: InputDecoration( decoration: InputDecoration(
// hintText: _showHints[2] ? 'Mohammad' : null, // hintText: _showHints[2] ? 'Mohammad' : null,
hintStyle: TextStyle(color: Colors.grey), hintStyle: TextStyle(color: Colors.grey,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
@ -812,6 +834,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
Text( Text(
AppLocalizations.of(context)!.dob, AppLocalizations.of(context)!.dob,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
color: Colors.grey, color: Colors.grey,
@ -828,7 +854,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
// hintText: _showHints[3] ? 'Select your Date of Birth' : null, // hintText: _showHints[3] ? 'Select your Date of Birth' : null,
hintStyle: TextStyle(color: Colors.grey), hintStyle: TextStyle(color: Colors.grey, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
suffixIcon: Container( suffixIcon: Container(
width: 45, width: 45,
padding: EdgeInsets.only(right: 1), padding: EdgeInsets.only(right: 1),
@ -852,6 +881,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
Text( Text(
AppLocalizations.of(context)!.region, AppLocalizations.of(context)!.region,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
), ),
@ -866,7 +899,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
() => _isHoveringDropdown = false), () => _isHoveringDropdown = false),
child: DropdownButtonFormField<String>( child: DropdownButtonFormField<String>(
style: TextStyle( style: TextStyle(
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.normal, fontWeight: FontWeight.normal,
color: Color(0xFF544C4C), color: Color(0xFF544C4C),
@ -919,6 +955,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
AppLocalizations.of(context)! AppLocalizations.of(context)!
.preferredLang, .preferredLang,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),
), ),
@ -932,7 +972,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
() => _isHoveringPreferredLang = false), () => _isHoveringPreferredLang = false),
child: DropdownButtonFormField<String>( child: DropdownButtonFormField<String>(
style: TextStyle( style: TextStyle(
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.normal, fontWeight: FontWeight.normal,
color: Color(0xFF544C4C), color: Color(0xFF544C4C),
@ -1020,6 +1063,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
context)! context)!
.agree, .agree,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.black), color: Colors.black),
children: [ children: [
TextSpan( TextSpan(
@ -1029,6 +1076,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
)! )!
.terms_conditions, .terms_conditions,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
// color: Colors.blue, // color: Colors.blue,
color: Color( color: Color(
0xFF648CBA), 0xFF648CBA),
@ -1049,6 +1100,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
)! )!
.t_and, .t_and,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.black, color: Colors.black,
), ),
), ),
@ -1059,6 +1114,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
)! )!
.privacy_policy, .privacy_policy,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
// color: Colors.blue, // color: Colors.blue,
color: Color( color: Color(
0xFF648CBA), 0xFF648CBA),
@ -1079,6 +1138,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
)! )!
.conditions, .conditions,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.black, color: Colors.black,
), ),
), ),
@ -1106,6 +1169,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
child: Text( child: Text(
'Please agree to terms and conditions', 'Please agree to terms and conditions',
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.red[700], color: Colors.red[700],
fontSize: 12, fontSize: 12,
), ),
@ -1130,7 +1197,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
color: Color(0xFF985400), color: Color(0xFF985400),
fontSize: 14, fontSize: 14,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
// decoration: TextDecoration.underline // decoration: TextDecoration.underline
), ),
), ),
@ -1181,7 +1251,10 @@ class _EditProfileState extends ConsumerState<EditProfile> {
children: [ children: [
Text( Text(
AppLocalizations.of(context)!.save, AppLocalizations.of(context)!.save,
style: TextStyle(color: Colors.white), style: TextStyle(color: Colors.white, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
SizedBox( SizedBox(
width: width:
@ -1219,10 +1292,13 @@ class ConfirmationDialog extends StatelessWidget {
children: [ children: [
Text( Text(
'Are you sure you want to save this page?', 'Are you sure you want to save this page?',
style: const TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
color: Color(0xFF898C81), color: Color(0xFF898C81),
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
), ),
textAlign: TextAlign.center, textAlign: TextAlign.center,
@ -1234,14 +1310,20 @@ class ConfirmationDialog extends StatelessWidget {
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
color: Color(0xFF898C81), color: Color(0xFF898C81),
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
), ),
children: [ children: [
TextSpan( TextSpan(
text: 'Country', text: 'Country',
style: style:
TextStyle(fontWeight: FontWeight.w500), // Bold for "name" TextStyle(fontWeight: FontWeight.w500, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),), // Bold for "name"
), ),
TextSpan( TextSpan(
text: ' or ', text: ' or ',
@ -1249,6 +1331,10 @@ class ConfirmationDialog extends StatelessWidget {
TextSpan( TextSpan(
text: 'Profile Image', text: 'Profile Image',
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
), // Bold for "date of birth" ), // Bold for "date of birth"
), ),
@ -1284,7 +1370,10 @@ class ConfirmationDialog extends StatelessWidget {
), ),
child: Text( child: Text(
'Cancel', 'Cancel',
style: TextStyle(color: Color(0xFF92722A)), style: TextStyle(color: Color(0xFF92722A), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
), ),
ElevatedButton( ElevatedButton(
@ -1296,9 +1385,13 @@ class ConfirmationDialog extends StatelessWidget {
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
), ),
child: const Text( child: Text(
'Confirm', 'Confirm',
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
), ),
), ),

View File

@ -266,7 +266,10 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
AppLocalizations.of(context)!.feedback_title, AppLocalizations.of(context)!.feedback_title,
style: TextStyle( style: TextStyle(
fontSize: 24, fontSize: 24,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),
), ),
// appBar: AppBar( // appBar: AppBar(
@ -330,10 +333,13 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
'Do you have a suggestion or had any problem? Let us know.', 'Do you have a suggestion or had any problem? Let us know.',
'هل لديك اقتراح أو واجهت أي مشكلة؟ أخبرنا', 'هل لديك اقتراح أو واجهت أي مشكلة؟ أخبرنا',
), ),
style: const TextStyle( style: TextStyle(
fontSize: 18, fontSize: 18,
color: Color(0xFF898C81), color: Color(0xFF898C81),
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
), ),
textAlign: TextAlign.center, textAlign: TextAlign.center,
@ -346,9 +352,12 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
child: Text( child: Text(
context.translate('How was your experience with us today?', context.translate('How was your experience with us today?',
'كيف كانت تجربتك معنا اليوم؟'), 'كيف كانت تجربتك معنا اليوم؟'),
style: const TextStyle( style: TextStyle(
fontSize: 18, fontSize: 18,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Color(0xff898C81), color: Color(0xff898C81),
), ),
@ -389,7 +398,10 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
'Please rate your experience before submitting your feedback.', 'Please rate your experience before submitting your feedback.',
'يرجى تقييم تجربتك قبل تقديم ملاحظاتك.', 'يرجى تقييم تجربتك قبل تقديم ملاحظاتك.',
), ),
style: TextStyle(color: Color(0xFFD83731), fontSize: 14), style: TextStyle(color: Color(0xFFD83731), fontSize: 14, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
), ),
], ],
@ -402,9 +414,12 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
child: Text( child: Text(
context.translate('How good did we do in these aspects?', context.translate('How good did we do in these aspects?',
'ما مدى جودة أدائنا في هذه الجوانب؟'), 'ما مدى جودة أدائنا في هذه الجوانب؟'),
style: const TextStyle( style: TextStyle(
fontSize: 18, fontSize: 18,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Color(0xFF898C81), color: Color(0xFF898C81),
), ),
@ -452,11 +467,17 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
minLines: 5, // Start with 5 lines minLines: 5, // Start with 5 lines
maxLines: null, // Allows the field to expand automatically maxLines: null, // Allows the field to expand automatically
maxLength: _characterLimit, maxLength: _characterLimit,
style: TextStyle(color: Color(0xFF898C81)), style: TextStyle(color: Color(0xFF898C81), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
decoration: InputDecoration( decoration: InputDecoration(
hintText: context.translate( hintText: context.translate(
'Tell us how we can improve', 'أخبرنا كيف يمكننا التحسين'), 'Tell us how we can improve', 'أخبرنا كيف يمكننا التحسين'),
hintStyle: TextStyle(color: Color(0xFF898C81)), hintStyle: TextStyle(color: Color(0xFF898C81), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0), borderRadius: BorderRadius.circular(10.0),
borderSide: BorderSide(color: Color(0xFF7296BE), width: 1), borderSide: BorderSide(color: Color(0xFF7296BE), width: 1),
@ -585,12 +606,18 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
Text( Text(
'${AppLocalizations.of(context)!.thankYou} $userName !', '${AppLocalizations.of(context)!.thankYou} $userName !',
style: const TextStyle(fontSize: 24, fontWeight: FontWeight.bold), style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
const SizedBox(height: 15), const SizedBox(height: 15),
Text( Text(
AppLocalizations.of(context)!.feedback_message, AppLocalizations.of(context)!.feedback_message,
style: TextStyle(fontSize: 16, color: Color(0xFF898C81)), style: TextStyle(fontSize: 16, color: Color(0xFF898C81), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
// const SizedBox(height: 30), // const SizedBox(height: 30),
@ -643,13 +670,20 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
Text( Text(
AppLocalizations.of(context)!.failed_to_sharefeedback, AppLocalizations.of(context)!.failed_to_sharefeedback,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 24, fontSize: 24,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: Color(0xFF414042)), color: Color(0xFF414042)),
), ),
const SizedBox(height: 10), const SizedBox(height: 10),
Text(AppLocalizations.of(context)!.feedback_failed_msg, Text(AppLocalizations.of(context)!.feedback_failed_msg,
style: const TextStyle(fontSize: 16, color: Color(0xFF898C81)), style: TextStyle(fontSize: 16, color: Color(0xFF898C81), fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
textAlign: TextAlign.center), textAlign: TextAlign.center),
// const SizedBox(height: 30), // const SizedBox(height: 30),
// ElevatedButton( // ElevatedButton(
@ -700,7 +734,10 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
child: Text( child: Text(
label, label,
style: TextStyle( style: TextStyle(
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
fontSize: 14, fontSize: 14,
color: Colors.black, color: Colors.black,
@ -747,9 +784,12 @@ class _FeedbackFormState extends ConsumerState<FeedbackForm>
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text(label, Text(label,
style: const TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Color(0xFF898C81), color: Color(0xFF898C81),
)), )),

View File

@ -259,7 +259,10 @@ class _NotificationPageState extends ConsumerState<NotificationPage> {
Text( Text(
'No notifications available.', 'No notifications available.',
style: TextStyle( style: TextStyle(
fontSize: 16, color: Colors.grey), fontSize: 16, color: Colors.grey, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
], ],
), ),
@ -333,7 +336,13 @@ class TabBarHeader extends StatelessWidget {
: Colors.grey[700]; : Colors.grey[700];
}), }),
), ),
child: Text(text), child: Text(text,
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
), ),
),
), ),
if (index < tabs.length - 1) buildDivider(), if (index < tabs.length - 1) buildDivider(),
], ],
@ -402,6 +411,10 @@ class NotificationTile extends StatelessWidget {
style: TextStyle( style: TextStyle(
color: isPushed ? const Color(0xFF414042) : const Color(0x99414042), color: isPushed ? const Color(0xFF414042) : const Color(0x99414042),
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
), ),
), ),
subtitle: Text( subtitle: Text(
@ -410,6 +423,10 @@ class NotificationTile extends StatelessWidget {
color: isPushed ? const Color(0xFF8E8E8E) : const Color(0x998E8E8E), color: isPushed ? const Color(0xFF8E8E8E) : const Color(0x998E8E8E),
fontSize: 12, fontSize: 12,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
), ),
), ),
trailing: const Icon(Icons.arrow_forward_ios, trailing: const Icon(Icons.arrow_forward_ios,

View File

@ -128,9 +128,14 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
toggleHeight = cardSize.height; toggleHeight = cardSize.height;
} }
void handleSkip() { Future<void> handleSkip() async {
tutorialCoachMark.skip(); tutorialCoachMark.skip();
debugPrint('Skip clicked'); debugPrint('Skip clicked');
final prefs = await SharedPreferences.getInstance();
String? loginCount = prefs.getString('login_count');
if (loginCount == '1') {
await prefs.setString('login_count', '2');
}
ref.read(chartsTourProvider.notifier).state = true; ref.read(chartsTourProvider.notifier).state = true;
ref.read(previousChartsTourProvider.notifier).state = true; ref.read(previousChartsTourProvider.notifier).state = true;
ref.read(homeTourProvider.notifier).state = true; ref.read(homeTourProvider.notifier).state = true;
@ -199,6 +204,10 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
child: Text( child: Text(
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
), ),
@ -348,6 +357,10 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
// 'Skip', // 'Skip',
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
), ),
@ -511,6 +524,10 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
child: Text( child: Text(
AppLocalizations.of(context)!.skip, AppLocalizations.of(context)!.skip,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Colors.white, color: Colors.white,
fontSize: 14, fontSize: 14,
), ),
@ -538,7 +555,12 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
), ),
const SizedBox(width: 10), const SizedBox(width: 10),
ElevatedButton( ElevatedButton(
onPressed: () { onPressed: () async {
final prefs = await SharedPreferences.getInstance();
String? loginCount = prefs.getString('login_count');
if (loginCount == '1') {
await prefs.setString('login_count', '2');
}
debugPrint('Got it clicked'); debugPrint('Got it clicked');
ref ref
.read(chartsTourProvider.notifier) .read(chartsTourProvider.notifier)
@ -572,6 +594,10 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
child: Text( child: Text(
AppLocalizations.of(context)!.got_it, AppLocalizations.of(context)!.got_it,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Color(0xFF7DAFBC), color: Color(0xFF7DAFBC),
fontSize: 14, fontSize: 14,
), ),
@ -737,7 +763,10 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
style: TextStyle( style: TextStyle(
color: widget.colorChange ? Colors.white : Color(0xFF414042), color: widget.colorChange ? Colors.white : Color(0xFF414042),
fontSize: 22, fontSize: 22,
fontFamily: 'Roboto', fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
), ),
child: widget.title, child: widget.title,
@ -930,7 +959,12 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
0.6, // Adjust width as needed 0.6, // Adjust width as needed
child: Text( child: Text(
userEmail ?? 'Loading...', userEmail ?? 'Loading...',
style: TextStyle(fontSize: 12), style: TextStyle(fontSize: 12,
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
// softWrap: true, // softWrap: true,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
maxLines: 1, maxLines: 1,
@ -950,7 +984,13 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
if (userId != 'guest') if (userId != 'guest')
ListTile( ListTile(
leading: Icon(Icons.notifications_none), leading: Icon(Icons.notifications_none),
title: Text(AppLocalizations.of(context)!.notification), title: Text(AppLocalizations.of(context)!.notification,
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
), ),
),
onTap: () => _navigateTo(context, '/notification'), onTap: () => _navigateTo(context, '/notification'),
), ),
ListTile( ListTile(
@ -962,7 +1002,12 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
// height: 20, // height: 20,
// ), // ),
// title: const Text('Feedback'), // title: const Text('Feedback'),
title: Text(AppLocalizations.of(context)!.feedback_title), title: Text(AppLocalizations.of(context)!.feedback_title,
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
), ),),
onTap: () => onTap: () =>
_navigateTo(context, '/feedback', extra: userName), _navigateTo(context, '/feedback', extra: userName),
), ),
@ -978,6 +1023,11 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
// title: Text('Manage User'), // title: Text('Manage User'),
title: Text( title: Text(
AppLocalizations.of(context)!.manage_user, AppLocalizations.of(context)!.manage_user,
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
), ),
), ),
onTap: () => _navigateTo(context, '/manageuser'), onTap: () => _navigateTo(context, '/manageuser'),
), ),
@ -986,6 +1036,11 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
// title: const Text('Bookmark'), // title: const Text('Bookmark'),
title: Text( title: Text(
AppLocalizations.of(context)!.bookmark_title, AppLocalizations.of(context)!.bookmark_title,
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
), ),
), ),
onTap: () => _navigateTo(context, '/bookmark'), onTap: () => _navigateTo(context, '/bookmark'),
), ),
@ -998,33 +1053,62 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
// height: 20, // height: 20,
// ), // ),
// title: const Text('User Guide'), // title: const Text('User Guide'),
title: Text(AppLocalizations.of(context)!.guide_title), title: Text(AppLocalizations.of(context)!.guide_title,
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
), ),
),
onTap: () => _navigateTo(context, '/user-guide'), onTap: () => _navigateTo(context, '/user-guide'),
), ),
ListTile( ListTile(
leading: Icon(Icons.mail_outlined), leading: Icon(Icons.mail_outlined),
title: Text(context.translate('Contact Us', 'اتصل بنا'),), title: Text(context.translate('Contact Us', 'اتصل بنا'),
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
), ),),
onTap: () => context.go('/contact'), onTap: () => context.go('/contact'),
), ),
if (userId != 'guest') if (userId != 'guest')
ListTile( ListTile(
leading: Icon(Icons.logout), leading: Icon(Icons.logout),
// title: const Text('Logout'), // title: const Text('Logout'),
title: Text(AppLocalizations.of(context)!.logout), title: Text(AppLocalizations.of(context)!.logout,
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
), ),
),
onTap: () => _showLogoutConfirmationDialog(context), onTap: () => _showLogoutConfirmationDialog(context),
), ),
if (userId == 'guest') if (userId == 'guest')
ListTile( ListTile(
leading: Icon(Icons.login), leading: Icon(Icons.login),
// title: const Text('Login'), // title: const Text('Login'),
title: Text(AppLocalizations.of(context)!.login_title), title: Text(AppLocalizations.of(context)!.login_title,
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
), ),
),
onTap: () => context.go('/login'), onTap: () => context.go('/login'),
), ),
if (userId == 'guest') if (userId == 'guest')
ListTile( ListTile(
leading: Icon(Icons.app_registration), leading: Icon(Icons.app_registration),
// title: const Text('Register'), // title: const Text('Register'),
title: Text(AppLocalizations.of(context)!.register_title), title: Text(AppLocalizations.of(context)!.register_title,
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
), ),
),
onTap: () => context.go('/register'), onTap: () => context.go('/register'),
), ),
], ],
@ -1134,9 +1218,17 @@ class _BaseScaffoldState extends ConsumerState<BaseScaffold> {
selectedItemColor: Colors.black, selectedItemColor: Colors.black,
unselectedItemColor: Colors.grey, unselectedItemColor: Colors.grey,
selectedLabelStyle: TextStyle( selectedLabelStyle: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 10, // Font size for unselected label fontSize: 10, // Font size for unselected label
), ),
unselectedLabelStyle: TextStyle( unselectedLabelStyle: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 10, // Font size for unselected label fontSize: 10, // Font size for unselected label
), ),
showUnselectedLabels: true, showUnselectedLabels: true,
@ -1207,7 +1299,10 @@ void _showLogoutConfirmationDialog(BuildContext context) {
title: Text( title: Text(
context.translate('Log Out Confirmation', 'تأكيد تسجيل الخروج'), context.translate('Log Out Confirmation', 'تأكيد تسجيل الخروج'),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
), ),
content: Padding( content: Padding(
padding: const EdgeInsets.all(20.0), padding: const EdgeInsets.all(20.0),
@ -1216,6 +1311,10 @@ void _showLogoutConfirmationDialog(BuildContext context) {
'هل أنت متأكد أنك تريد تسجيل الخروج؟'), 'هل أنت متأكد أنك تريد تسجيل الخروج؟'),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
fontSize: 18, fontSize: 18,
color: Color(0xFF898C81), color: Color(0xFF898C81),
), ),
@ -1243,6 +1342,10 @@ void _showLogoutConfirmationDialog(BuildContext context) {
child: Text( child: Text(
context.translate('Cancel', 'إلغاء'), context.translate('Cancel', 'إلغاء'),
style: TextStyle( style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
),
color: Color(0xFFAA8E83), color: Color(0xFFAA8E83),
fontSize: 16, fontSize: 16,
), ),
@ -1267,7 +1370,10 @@ void _showLogoutConfirmationDialog(BuildContext context) {
.scaleDown, // Prevents wrapping while adjusting text size .scaleDown, // Prevents wrapping while adjusting text size
child: Text( child: Text(
context.translate('Log Out', 'تسجيل الخروج'), context.translate('Log Out', 'تسجيل الخروج'),
style: TextStyle(color: Colors.white, fontSize: 16), style: TextStyle(color: Colors.white, fontSize: 16, fontFamily: context.translate(
'Roboto',
'NotoKufi',
),),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),

View File

@ -93,18 +93,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: async name: async
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.12.0" version: "2.11.0"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.1"
boxy: boxy:
dependency: "direct main" dependency: "direct main"
description: description:
@ -181,10 +181,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.4.0" version: "1.3.0"
checked_yaml: checked_yaml:
dependency: transitive dependency: transitive
description: description:
@ -213,10 +213,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.2" version: "1.1.1"
code_builder: code_builder:
dependency: transitive dependency: transitive
description: description:
@ -229,10 +229,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.19.1" version: "1.19.0"
community_charts_common: community_charts_common:
dependency: transitive dependency: transitive
description: description:
@ -428,10 +428,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.2" version: "1.3.1"
fast_immutable_collections: fast_immutable_collections:
dependency: "direct main" dependency: "direct main"
description: description:
@ -976,18 +976,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.8" version: "10.0.7"
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.9" version: "3.0.8"
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
@ -1032,10 +1032,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.17" version: "0.12.16+1"
material_charts: material_charts:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1056,10 +1056,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.16.0" version: "1.15.0"
mime: mime:
dependency: transitive dependency: transitive
description: description:
@ -1112,10 +1112,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path name: path
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.1" version: "1.9.0"
path_parsing: path_parsing:
dependency: transitive dependency: transitive
description: description:
@ -1435,10 +1435,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.1" version: "1.10.0"
sprintf: sprintf:
dependency: transitive dependency: transitive
description: description:
@ -1451,10 +1451,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.12.1" version: "1.12.0"
state_notifier: state_notifier:
dependency: transitive dependency: transitive
description: description:
@ -1467,10 +1467,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.2"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
@ -1483,26 +1483,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.4.1" version: "1.3.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.2" version: "1.2.1"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.4" version: "0.7.3"
the_validator: the_validator:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1691,10 +1691,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.3.1" version: "14.3.0"
watcher: watcher:
dependency: transitive dependency: transitive
description: description:
@ -1792,5 +1792,5 @@ packages:
source: hosted source: hosted
version: "3.1.3" version: "3.1.3"
sdks: sdks:
dart: ">=3.7.0-0 <4.0.0" dart: ">=3.6.0 <4.0.0"
flutter: ">=3.27.0" flutter: ">=3.27.0"