font family changed
This commit is contained in:
parent
a3c9f8c708
commit
d3706d67a4
@ -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>
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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,
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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)!
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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),
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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),
|
||||||
)),
|
)),
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
74
pubspec.lock
74
pubspec.lock
@ -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"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user