bug fixes

dq_and_master
Sultan Khan 4 years ago
parent 9e3db622fa
commit b759758a68

@ -75,7 +75,8 @@ const Map localizedValues = {
'ar': 'يرجى تأكيد الموعد لتفادي الإلغاء' 'ar': 'يرجى تأكيد الموعد لتفادي الإلغاء'
}, },
"book-success-confirm-more-24-1-2": { "book-success-confirm-more-24-1-2": {
"en": "The online payment process will be available 24 hours before the appointment.", "en":
"The online payment process will be available 24 hours before the appointment.",
"ar": "- عملية الدفع الالكتروني ستكون متاحة قبل الموعد ب 24 ساعة." "ar": "- عملية الدفع الالكتروني ستكون متاحة قبل الموعد ب 24 ساعة."
}, },
'upcoming-payment-pending': { 'upcoming-payment-pending': {
@ -1114,68 +1115,51 @@ const Map localizedValues = {
"not-active": {"en": "Not Active", "ar": "غير نشط"}, "not-active": {"en": "Not Active", "ar": "غير نشط"},
"card-detail": {"en": "Insurance Details", "ar": "منافعك التامينية"}, "card-detail": {"en": "Insurance Details", "ar": "منافعك التامينية"},
"Dr": {"en": "Dr. ", "ar": "الدكتور."}, "Dr": {"en": "Dr. ", "ar": "الدكتور."},
"empty": { "empty": {"en": "You do not have any records.", "ar": "ليس لديك أي سجلات"},
"en": "You do not have any records.",
"ar": "ليس لديك أي سجلات"
},
"last-visit": { "last-visit": {
"en": "How was your last visit with doctor?", "en": "How was your last visit with doctor?",
"ar": "كيف تقيم زيارتك الأخيرة للطبيب؟" "ar": "كيف تقيم زيارتك الأخيرة للطبيب؟"
}, },
"tap-title": { "tap-title": {"en": "Please rate the doctor", "ar": "يرجى تقييم الطبيب"},
"en": "Please rate the doctor", "later": {"en": "Later", "ar": "لاحقاً"},
"ar": "يرجى تقييم الطبيب" "sendSuc": {
}, "en": "A copy has been sent to the email",
"later": { "ar": "تم إرسال نسخة إلى البريد الإلكتروني"
"en": "Later",
"ar": "لاحقاً"
},
"sendSuc":{
"en":"A copy has been sent to the email",
"ar":"تم إرسال نسخة إلى البريد الإلكتروني"
}, },
"instructions": { "instructions": {
"en": "You can now talk directly to the appointments department by chat or request a call back", "en":
"ar": "يمكنك الان التحدث مباشرة مع قسم المواعيد عن طريق خدمة المحادثة النصية أو طلب معاودة الاتصال" "You can now talk directly to the appointments department by chat or request a call back",
"ar":
"يمكنك الان التحدث مباشرة مع قسم المواعيد عن طريق خدمة المحادثة النصية أو طلب معاودة الاتصال"
}, },
"instructions-pharmacies": { "instructions-pharmacies": {
"en": "You can now talk directly to the pharmacist by chat or request a call back", "en":
"ar": "يمكنك الآن التحدث مباشرة إلى الصيدلي عن طريق الدردشة أو طلب معاودة الاتصال" "You can now talk directly to the pharmacist by chat or request a call back",
}, "ar":
"select-hospital": { "يمكنك الآن التحدث مباشرة إلى الصيدلي عن طريق الدردشة أو طلب معاودة الاتصال"
"en": "Choose Hospital",
"ar": "اختر المستشفى"
},
"start": {
"en": "Start",
"ar": "ابدأ"
}, },
"select-hospital": {"en": "Choose Hospital", "ar": "اختر المستشفى"},
"start": {"en": "Start", "ar": "ابدأ"},
"info-chat": { "info-chat": {
"en": "This service allows you to chat with customer service directly without the need to call.", "en":
"ar": "المحادثة المباشرة: هذه الخدمة تمكنك التحدث كتابياً مع خدمة العملاء مباشرة دون الحاجة الى الاتصال هاتفياً." "This service allows you to chat with customer service directly without the need to call.",
"ar":
"المحادثة المباشرة: هذه الخدمة تمكنك التحدث كتابياً مع خدمة العملاء مباشرة دون الحاجة الى الاتصال هاتفياً."
}, },
"last-appointment": { "last-appointment": {
"en": "How was your appointment?", "en": "How was your appointment?",
"ar": "كيف كان موعدك الطبي ؟" "ar": "كيف كان موعدك الطبي ؟"
}, },
"rate-clinic": { "rate-clinic": {"en": "Please rate the clinic", "ar": "يرجى تقييم العيادة"},
"en": "Please rate the clinic", "fetch-data": {"en": "Fetch Data", "ar": "تحديث الان"},
"ar": "يرجى تقييم العيادة"
},
"fetch-data": {
"en": "Fetch Data",
"ar": "تحديث الان"
},
"send-email": { "send-email": {
"en": "Send a copy of this report to the email", "en": "Send a copy of this report to the email",
"ar": "أرسل نسخة من هذا التقرير إلى البريد الإلكتروني" "ar": "أرسل نسخة من هذا التقرير إلى البريد الإلكتروني"
}, },
"update-email": { "update-email": {"en": "Update Email", "ar": "تحديث البريد الالكتروني"},
"en": "Update Email",
"ar": "تحديث البريد الالكتروني"
},
"noDataAvailable": { "noDataAvailable": {
"en": "No data available", "en": "No data available",
"ar": " لا يوجد بيانات متاحة " "ar": " لا يوجد بيانات متاحة "
}, },
"thename": {"en": "The Name", "ar": "الاسم"}
}; };

@ -20,3 +20,5 @@ const IS_VIBRATION = 'is_vibration';
const THEME_VALUE = 'is_vibration'; const THEME_VALUE = 'is_vibration';
const MAIN_USER = 'main-user'; const MAIN_USER = 'main-user';
const WEATHER = 'weather'; const WEATHER = 'weather';
const BLOOD_TYPE = 'blood-type';
const NOTIFICATION_COUNT = 'notification-count';

@ -27,7 +27,7 @@ class AddFamilyMemberType extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/habib-logo.png', 'assets/images/DQ/dq_logo_icon.png',
height: 80, height: 80,
width: 80, width: 80,
), ),

@ -55,7 +55,7 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
ProjectViewModel projectViewModel; ProjectViewModel projectViewModel;
AuthenticatedUser user; AuthenticatedUser user;
VitalSignService _vitalSignService = locator<VitalSignService>(); VitalSignService _vitalSignService = locator<VitalSignService>();
var isVaiable = false;
@override @override
void initState() { void initState() {
_tabController = new TabController(length: 2, vsync: this, initialIndex: 0); _tabController = new TabController(length: 2, vsync: this, initialIndex: 0);
@ -229,7 +229,8 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
if (snapshot.hasError) if (snapshot.hasError)
return Padding( return Padding(
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: Text("No data found")); child: Text(
TranslationBase.of(context).noDataAvailable));
else else
return Padding( return Padding(
padding: EdgeInsets.only(top: 50), padding: EdgeInsets.only(top: 50),
@ -355,7 +356,8 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
if (snapshot.hasError) if (snapshot.hasError)
return Padding( return Padding(
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: Text('No data found')); child: Text(TranslationBase.of(context)
.noDataAvailable));
else else
return Column( return Column(
children: [ children: [
@ -389,12 +391,20 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
left: 10, right: 10), left: 10, right: 10),
child: Row(children: [ child: Row(children: [
Expanded( Expanded(
flex: 3, child: AppText('Name')), flex: 3,
child: AppText(
TranslationBase.of(context)
.theName)),
Expanded( Expanded(
flex: 1, child: AppText('Allow')), flex: 1,
child: AppText(
TranslationBase.of(context)
.allowView)),
Expanded( Expanded(
flex: 1, flex: 1,
child: AppText('Reject')), child: AppText(
TranslationBase.of(context)
.rejectView)),
])), ])),
Column( Column(
children: familyFileProvider children: familyFileProvider
@ -469,12 +479,25 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
if (snapshot.hasError) if (snapshot.hasError)
return Padding( return Padding(
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: Text('No data found')); child: Text(TranslationBase.of(context)
.noDataAvailable));
else else
return SingleChildScrollView( return Container(
child: Container(
height: SizeConfig.screenHeight * .3, height: SizeConfig.screenHeight * .3,
child: ListView( child: SingleChildScrollView(
child: Column(
children: [
Padding(
padding: EdgeInsets.only(
left: 10, right: 10),
child: Row(children: [
Expanded(
flex: 3,
child: AppText(
TranslationBase.of(context)
.theName))
])),
Column(
children: snapshot children: snapshot
.data.getAllSharedRecordsByStatusList .data.getAllSharedRecordsByStatusList
.map<Widget>((result) { .map<Widget>((result) {
@ -492,11 +515,16 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
result.statusDescription, result.statusDescription,
color: result.status == 3 color: result.status == 3
? Colors.green ? Colors.green
: result.status == 2
? Colors
.yellow[800]
: Colors.red, : Colors.red,
)), )),
], ],
)); ));
}).toList(), }).toList(),
)
],
))); )));
} }
}) })
@ -522,49 +550,34 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
if (snapshot.hasError) if (snapshot.hasError)
return Padding( return Padding(
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: Text('No data found')); child: Text(TranslationBase.of(context)
.noDataAvailable));
else else
return Column( return Column(
children: [ children: [
// Padding(
// padding:EdgeInsets.only(left:10, right:10),
// child: Row(
// mainAxisAlignment:
// MainAxisAlignment.spaceBetween,
// children: <Widget>[
// Expanded(
// flex: 3,
// child: AppText(
// TranslationBase.of(context).request),
// ),
// Expanded(
// flex: 2,
// child: AppText(
// TranslationBase.of(context).switchUser,
// )),
// Expanded(
// flex: 1,
// child: AppText(
// TranslationBase.of(context).deleteView,
// )),
// ],
// )),
Column(children: [ Column(children: [
Padding( Padding(
padding: padding:
EdgeInsets.only(left: 10, right: 10), EdgeInsets.only(left: 10, right: 10),
child: Row(children: [ child: Row(children: [
Expanded( Expanded(
flex: 3, child: AppText('Name')), flex: 3,
child: AppText(
TranslationBase.of(context)
.theName)),
Expanded( Expanded(
flex: 1, child: AppText('Delete')), flex: 1,
child: AppText(
TranslationBase.of(context)
.deleteView)),
])), ])),
Column( Column(
children: familyFileProvider children: familyFileProvider
.allSharedRecordsByStatusResponse .allSharedRecordsByStatusResponse
.getAllSharedRecordsByStatusList .getAllSharedRecordsByStatusList
.map<Widget>((result) { .map<Widget>((result) {
return Padding( return result.status == 3
? Padding(
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
@ -581,11 +594,15 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
), ),
onPressed: () { onPressed: () {
deactivateRequest( deactivateRequest(
result.iD, 5, context); result.iD,
5,
context);
}, },
)), )),
], ],
)); ))
: Container(
child: AppText(isAvailable()));
}).toList()) }).toList())
]) ])
], ],
@ -600,6 +617,15 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
); );
} }
String isAvailable() {
if (isVaiable == false) {
this.isVaiable = true;
return TranslationBase.of(context).noDataAvailable;
} else {
return "";
}
}
Future<GetAllSharedRecordsByStatusResponse> getFamilyFiles() async { Future<GetAllSharedRecordsByStatusResponse> getFamilyFiles() async {
if (user != null) { if (user != null) {
if (await sharedPref.getObject(FAMILY_FILE) != null) { if (await sharedPref.getObject(FAMILY_FILE) != null) {
@ -689,6 +715,7 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
} }
this.sharedPref.setString(APP_LANGUAGE, currentLang); this.sharedPref.setString(APP_LANGUAGE, currentLang);
this.sharedPref.setObject(MAIN_USER, mainUser); this.sharedPref.setObject(MAIN_USER, mainUser);
//sharedPref.setString(BLOOD_TYPE, result['PatientBloodType']);
this.sharedPref.setObject(USER_PROFILE, result.list); this.sharedPref.setObject(USER_PROFILE, result.list);
this.sharedPref.setObject(FAMILY_FILE, familyFile); this.sharedPref.setObject(FAMILY_FILE, familyFile);
this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID); this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID);

@ -32,7 +32,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import '../../locator.dart'; import '../../locator.dart';
import '../../routes.dart'; import '../../routes.dart';
import 'home_page.dart'; import 'home_page.dart';
@ -154,7 +154,10 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
if (token != null && await sharedPref.getObject(USER_PROFILE) == null) { if (token != null && await sharedPref.getObject(USER_PROFILE) == null) {
DEVICE_TOKEN = token; DEVICE_TOKEN = token;
checkUserStatus(token); checkUserStatus(token);
} else {
getNotificationCount(token);
} }
requestPermissions(); requestPermissions();
}).catchError((err) { }).catchError((err) {
print(err); print(err);
@ -513,26 +516,14 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
// themeNotifier.setTheme(defaultTheme); // themeNotifier.setTheme(defaultTheme);
} }
void checkUserStatus(token) async { void checkUserStatus(token) async {
GifLoaderDialogUtils.showMyDialog(context);
authService authService
.selectDeviceImei(token) .selectDeviceImei(token)
.then((SelectDeviceIMEIRES value) => setUserValues(value)); .then((SelectDeviceIMEIRES value) => setUserValues(value))
if (await sharedPref.getObject(USER_PROFILE) != null) { .catchError((err) {
var data = GifLoaderDialogUtils.hideDialog(context);
AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE));
if (data != null) {
authService
.registeredAuthenticatedUser(data, token, 0, 0)
.then((res) => {print(res)});
authService.getDashboard().then((value) => {
setState(() {
notificationCount = value['List_PatientDashboard'][0]
['UnreadPatientNotificationCount']
.toString();
})
}); });
} }
}
}
static Future<dynamic> myBackgroundMessageHandler( static Future<dynamic> myBackgroundMessageHandler(
Map<String, dynamic> message) async { Map<String, dynamic> message) async {
@ -551,6 +542,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
} }
void setUserValues(value) async { void setUserValues(value) async {
GifLoaderDialogUtils.hideDialog(context);
sharedPref.setObject(IMEI_USER_DATA, value); sharedPref.setObject(IMEI_USER_DATA, value);
} }
@ -571,4 +563,24 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
); );
} }
} }
getNotificationCount(token) async {
if (await sharedPref.getObject(USER_PROFILE) != null) {
var data =
AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE));
if (data != null) {
authService
.registeredAuthenticatedUser(data, token, 0, 0)
.then((res) => {print(res)});
authService.getDashboard().then((value) => {
setState(() {
notificationCount = value['List_PatientDashboard'][0]
['UnreadPatientNotificationCount']
.toString();
sharedPref.setString(NOTIFICATION_COUNT, notificationCount);
})
});
}
}
}
} }

@ -9,6 +9,8 @@ import 'package:diplomaticquarterapp/models/Authentication/check_activation_code
import 'package:diplomaticquarterapp/models/Authentication/check_paitent_authentication_req.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_paitent_authentication_req.dart';
import 'package:diplomaticquarterapp/models/Authentication/select_device_imei_res.dart'; import 'package:diplomaticquarterapp/models/Authentication/select_device_imei_res.dart';
import 'package:diplomaticquarterapp/models/Authentication/send_activation_request.dart'; import 'package:diplomaticquarterapp/models/Authentication/send_activation_request.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/pages/rateAppointment/rate_appointment_doctor.dart';
import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart'; import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
@ -22,6 +24,7 @@ import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart'; import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
@ -512,6 +515,8 @@ class _ConfirmLogin extends State<ConfirmLogin> {
sharedPref.remove(FAMILY_FILE), sharedPref.remove(FAMILY_FILE),
result.list.isFamily = false, result.list.isFamily = false,
userData = result.list, userData = result.list,
// sharedPref.setString(
// BLOOD_TYPE, result['PatientBloodType']),
sharedPref.setObject(MAIN_USER, result.list), sharedPref.setObject(MAIN_USER, result.list),
sharedPref.setObject(USER_PROFILE, result.list), sharedPref.setObject(USER_PROFILE, result.list),
loginTokenID = result.logInTokenID, loginTokenID = result.logInTokenID,
@ -570,7 +575,35 @@ class _ConfirmLogin extends State<ConfirmLogin> {
appointmentRateViewModel.isLogin = true; appointmentRateViewModel.isLogin = true;
projectViewModel.isLogin = true; projectViewModel.isLogin = true;
getToDoCount(); getToDoCount();
Navigator.of(context).pushNamed(HOME); appointmentRateViewModel
.getIsLastAppointmentRatedList()
.then((value) => {
getToDoCount(),
// GifLoaderDialogUtils.hideDialog(context),
if (appointmentRateViewModel.isHaveAppointmentNotRate)
{
Navigator.pushAndRemoveUntil(
context,
FadePage(
page: RateAppointmentDoctor(),
),
(r) => false)
}
else
{
Navigator.pushAndRemoveUntil(
context,
FadePage(
page: LandingPage(),
),
(r) => false)
}
})
.catchError((err) {
print(err);
//GifLoaderDialogUtils.hideDialog(context);
});
// SMSOTP.showLoadingDialog(context, false),
} }
loading(flag) { loading(flag) {

@ -244,6 +244,7 @@ class _Login extends State<Login> {
sharedPref.remove(FAMILY_FILE), sharedPref.remove(FAMILY_FILE),
result = CheckActivationCode.fromJson(result), result = CheckActivationCode.fromJson(result),
result.list.isFamily = false, result.list.isFamily = false,
// this.sharedPref.setString(BLOOD_TYPE, result['PatientBloodType']),
this.sharedPref.setObject(USER_PROFILE, result.list), this.sharedPref.setObject(USER_PROFILE, result.list),
this.sharedPref.setObject(MAIN_USER, result.list), this.sharedPref.setObject(MAIN_USER, result.list),
this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID), this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID),

@ -256,6 +256,7 @@ class AuthProvider with ChangeNotifier {
return Future.value(error); return Future.value(error);
// throw error; // throw error;
}, body: neRequest.toJson()); }, body: neRequest.toJson());
sharedPref.setString(BLOOD_TYPE, localRes['PatientBloodType']);
return Future.value(localRes); return Future.value(localRes);
} catch (error) { } catch (error) {
throw error; throw error;

@ -299,7 +299,7 @@ class FamilyFilesProvider with ChangeNotifier {
AppToast.showErrorToast(message: error); AppToast.showErrorToast(message: error);
throw error; throw error;
}, body: request); }, body: request);
sharedPref.setString(BLOOD_TYPE, localRes['PatientBloodType']);
return Future.value(localRes); return Future.value(localRes);
} catch (error) { } catch (error) {
print(error); print(error);

@ -1004,26 +1004,32 @@ class TranslationBase {
String get cardDetail => localizedValues['card-detail'][locale.languageCode]; String get cardDetail => localizedValues['card-detail'][locale.languageCode];
String get dr => localizedValues['Dr'][locale.languageCode]; String get dr => localizedValues['Dr'][locale.languageCode];
String get sendSuc => localizedValues['sendSuc'][locale.languageCode]; String get sendSuc => localizedValues['sendSuc'][locale.languageCode];
String get instructions => localizedValues['instructions'][locale.languageCode]; String get instructions =>
String get instructionsPharmacies => localizedValues['instructions-pharmacies'][locale.languageCode]; localizedValues['instructions'][locale.languageCode];
String get selectHospitalDec => localizedValues['select-hospital'][locale.languageCode]; String get instructionsPharmacies =>
localizedValues['instructions-pharmacies'][locale.languageCode];
String get selectHospitalDec =>
localizedValues['select-hospital'][locale.languageCode];
String get start => localizedValues['start'][locale.languageCode]; String get start => localizedValues['start'][locale.languageCode];
String get infoChat => localizedValues['info-chat'][locale.languageCode]; String get infoChat => localizedValues['info-chat'][locale.languageCode];
String get noRecords => localizedValues['empty'][locale.languageCode]; String get noRecords => localizedValues['empty'][locale.languageCode];
String get lastVisit => localizedValues['last-visit'][locale.languageCode]; String get lastVisit => localizedValues['last-visit'][locale.languageCode];
String get tapTitle => localizedValues['tap-title'][locale.languageCode]; String get tapTitle => localizedValues['tap-title'][locale.languageCode];
String get later => localizedValues['later'][locale.languageCode]; String get later => localizedValues['later'][locale.languageCode];
String get lastAppointment => localizedValues['last-appointment'][locale.languageCode]; String get lastAppointment =>
localizedValues['last-appointment'][locale.languageCode];
String get rateClinic => localizedValues['rate-clinic'][locale.languageCode]; String get rateClinic => localizedValues['rate-clinic'][locale.languageCode];
String get fetchData => localizedValues['fetch-data'][locale.languageCode]; String get fetchData => localizedValues['fetch-data'][locale.languageCode];
String get sendConfEmail =>
String get sendConfEmail => localizedValues['send-email'][locale.languageCode]; localizedValues['send-email'][locale.languageCode];
String get updateEmail => localizedValues['update-email'][locale.languageCode]; String get updateEmail =>
String get noDataAvailable => localizedValues['noDataAvailable'][locale.languageCode]; localizedValues['update-email'][locale.languageCode];
String get noDataAvailable =>
localizedValues['noDataAvailable'][locale.languageCode];
String get theName => localizedValues['thename'][locale.languageCode];
} }
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> { class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -13,11 +13,13 @@ class DrawerItem extends StatefulWidget {
final Color iconColor; final Color iconColor;
final bool bottomLine; final bool bottomLine;
final bool sideArrow; final bool sideArrow;
final Widget count;
DrawerItem(this.title, this.icon, DrawerItem(this.title, this.icon,
{this.textColor = Colors.black, {this.textColor = Colors.black,
this.iconColor = Colors.black87, this.iconColor = Colors.black87,
this.subTitle = '', this.subTitle = '',
this.bottomLine = true, this.bottomLine = true,
this.count,
this.sideArrow = false}); this.sideArrow = false});
@override @override
@ -55,11 +57,16 @@ class _DrawerItemState extends State<DrawerItem> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Row(
children: [
Texts( Texts(
widget.title, widget.title,
color: widget.textColor, color: widget.textColor,
fontSize: SizeConfig.textMultiplier * 2.3, fontSize: SizeConfig.textMultiplier * 2.3,
), ),
widget.count ?? SizedBox(),
],
),
widget.subTitle != '' widget.subTitle != ''
? Texts( ? Texts(
widget.subTitle, widget.subTitle,
@ -73,7 +80,7 @@ class _DrawerItemState extends State<DrawerItem> {
flex: 1, flex: 1,
child: child:
Icon(Icons.keyboard_arrow_right, color: Colors.red)) Icon(Icons.keyboard_arrow_right, color: Colors.red))
: Expanded(flex: 1, child: SizedBox()) : Expanded(flex: 1, child: SizedBox()),
], ],
), ),
)); ));

Loading…
Cancel
Save