Ask doctor issue resolved, Translation & font family issues resolved

merge-requests/390/head
haroon amjad 4 years ago
parent 25fb5decc0
commit ebcc2559ce

@ -115,6 +115,7 @@ class _DoctorProfileState extends State<DoctorProfile> with TickerProviderStateM
widget.doctor.noOfPatientsRate,
"",
),
buttonIcon: 'assets/images/new/Boo_ Appointment.svg',
showConfirmMessageDialog: false,
onTap: () {
Navigator.push(

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
import 'package:diplomaticquarterapp/models/Appointments/DoctorProfile.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
@ -9,6 +10,7 @@ import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:rating_bar/rating_bar.dart';
import '../DoctorProfile.dart';
@ -21,8 +23,11 @@ class DoctorView extends StatelessWidget {
DoctorView({@required this.doctor, @required this.isLiveCareAppointment, this.isShowFlag = true, this.onTap});
ProjectViewModel projectViewModel;
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return InkWell(
onTap: onTap ??
() {
@ -69,8 +74,8 @@ class DoctorView extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
if (doctor.clinicName != null) myRichText(TranslationBase.of(context).clinic + ":", doctor.clinicName),
if (doctor.projectName != null) myRichText(TranslationBase.of(context).hospital + ":", doctor.projectName),
if (doctor.clinicName != null) myRichText(TranslationBase.of(context).clinic + ":", doctor.clinicName, projectViewModel.isArabic),
if (doctor.projectName != null) myRichText(TranslationBase.of(context).hospital + ":", doctor.projectName, projectViewModel.isArabic),
if (doctor.speciality != null)
Text(
getDoctorSpeciality(this.doctor.speciality).trim(),

@ -45,6 +45,7 @@ class _AppointmentDetailsState extends State<AppointmentDetails> with SingleTick
List<DoctorRateDetails> doctorDetailsList = List();
ToDoCountProviderModel toDoProvider;
ProjectViewModel projectViewModel;
DoctorList doctorList = new DoctorList();
@ -73,7 +74,7 @@ class _AppointmentDetailsState extends State<AppointmentDetails> with SingleTick
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
projectViewModel = Provider.of(context);
toDoProvider = Provider.of<ToDoCountProviderModel>(context);
@ -158,7 +159,7 @@ class _AppointmentDetailsState extends State<AppointmentDetails> with SingleTick
child: TabBarView(
physics: NeverScrollableScrollPhysics(),
children: [
AppointmentActions(appo: widget.appo, tabController: _tabController, enableFooterButton: enableFooterButton),
AppointmentActions(appo: widget.appo, tabController: _tabController, enableFooterButton: enableFooterButton, projectViewModel: projectViewModel),
DocAvailableAppointments(doctor: getDoctorObject(), doctorSchedule: widget.doctorSchedule, isLiveCareAppointment: widget.appo.isLiveCareAppointment)
],
controller: _tabController,

@ -37,8 +37,9 @@ class AppointmentActions extends StatefulWidget {
TabController tabController;
final Function enableFooterButton;
MyInAppBrowser browser;
final ProjectViewModel projectViewModel;
AppointmentActions({@required this.appo, @required this.tabController, @required this.enableFooterButton});
AppointmentActions({@required this.appo, @required this.tabController, @required this.enableFooterButton, this.projectViewModel});
@override
_AppointmentActionsState createState() => _AppointmentActionsState();
@ -104,7 +105,7 @@ class _AppointmentActionsState extends State<AppointmentActions> {
DateUtil.convertStringToDate(widget.appo.appointmentDate),
widget.appo.doctorNameObj,
"",
DateUtil.formatDateToDate(DateUtil.convertStringToDate(widget.appo.appointmentDate)),
DateUtil.formatDateToDate(DateUtil.convertStringToDate(widget.appo.appointmentDate), widget.projectViewModel.isArabic),
DateUtil.formatDateToTime(DateUtil.convertStringToDate(widget.appo.appointmentDate)),
onSuccess: () {
AppToast.showSuccessToast(message: TranslationBase.of(context).reminderSuccess);

@ -148,7 +148,7 @@ class LoggedSliderView extends StatelessWidget {
),
mWidth(6),
Texts(
"Height: ${model.heightCm} ${TranslationBase.of(context).cm}",
"${TranslationBase.of(context).height}: ${model.heightCm} ${TranslationBase.of(context).cm}",
color: Colors.white,
fontSize: 10,
)
@ -167,7 +167,7 @@ class LoggedSliderView extends StatelessWidget {
height: 12,
),
mWidth(6),
Texts('Weight: ${model.weightKg} ${TranslationBase.of(context).kg}', color: Colors.white, fontSize: 10)
Texts('${TranslationBase.of(context).weight}: ${model.weightKg} ${TranslationBase.of(context).kg}', color: Colors.white, fontSize: 10)
],
),
),
@ -183,7 +183,7 @@ class LoggedSliderView extends StatelessWidget {
height: 12,
),
mWidth(6),
Texts('Blood: ${model.booldType}', color: Colors.white, fontSize: 10)
Texts('${TranslationBase.of(context).bloodD}: ${model.booldType}', color: Colors.white, fontSize: 10)
],
),
),

@ -159,9 +159,9 @@ class _ConfirmLogin extends State<ConfirmLogin> {
),
Text(
user.editedOn != null
? DateUtil.formatDateToDate(DateUtil.convertStringToDate(user.editedOn))
? DateUtil.formatDateToDate(DateUtil.convertStringToDate(user.editedOn), projectViewModel.isArabic)
: user.createdOn != null
? DateUtil.formatDateToDate(DateUtil.convertStringToDate(user.createdOn))
? DateUtil.formatDateToDate(DateUtil.convertStringToDate(user.createdOn), projectViewModel.isArabic)
: '--',
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48),
),

@ -1,6 +1,7 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/model/reports/Reports.dart';
import 'package:diplomaticquarterapp/core/service/medical/reports_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
@ -12,6 +13,7 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_send_email_dialog.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:rating_bar/rating_bar.dart';
class ReportListWidget extends StatelessWidget {
@ -20,8 +22,11 @@ class ReportListWidget extends StatelessWidget {
ReportListWidget({@required this.reportList, this.emailAddress});
ProjectViewModel projectViewModel;
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return ListView.separated(
physics: BouncingScrollPhysics(),
padding: EdgeInsets.only(bottom: 14, top: 14, left: 21, right: 21),
@ -69,8 +74,8 @@ class ReportListWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
if (report.projectName != null) myRichText(TranslationBase.of(context).clinic + ":", report.projectName),
if (report.clinicDescription != null) myRichText(TranslationBase.of(context).hospital + ":", report.clinicDescription),
if (report.projectName != null) myRichText(TranslationBase.of(context).clinic + ":", report.projectName, projectViewModel.isArabic),
if (report.clinicDescription != null) myRichText(TranslationBase.of(context).hospital + ":", report.clinicDescription, projectViewModel.isArabic),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.max,

@ -76,7 +76,7 @@ class MedicalReports extends StatelessWidget {
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16),
),
Text(
DateUtil.formatDateToDate(_appointmenHistory.appointmentDate),
DateUtil.formatDateToDate(_appointmenHistory.appointmentDate, projectViewModel.isArabic),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12),
),
],
@ -97,8 +97,8 @@ class MedicalReports extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
if (_appointmenHistory.projectName != null) myRichText(TranslationBase.of(context).clinic + ":", _appointmenHistory.projectName),
if (_appointmenHistory.clinicName != null) myRichText(TranslationBase.of(context).hospital + ":", _appointmenHistory.clinicName),
if (_appointmenHistory.projectName != null) myRichText(TranslationBase.of(context).clinic + ":", _appointmenHistory.projectName, projectViewModel.isArabic),
if (_appointmenHistory.clinicName != null) myRichText(TranslationBase.of(context).hospital + ":", _appointmenHistory.clinicName, projectViewModel.isArabic),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.max,

@ -52,8 +52,8 @@ class DateUtil {
return start + "$milliseconds" + end;
}
static String formatDateToDate(DateTime date) {
return DateFormat('dd MMM yyy').format(date);
static String formatDateToDate(DateTime date, bool isArabic) {
return DateFormat('dd MMM yyy', isArabic ? "ar_SA" : "en_US").format(date);
}
static String formatDateToTime(DateTime date) {

@ -49,7 +49,7 @@ class _VitalSignDetailsWidgetState extends State<LabResultDetailsWidget> {
tableRow.add(
TableRow(
children: [
Utils.tableColumnValue(DateUtil.formatDateToDate(DateUtil.convertStringToDate(labOrderResultList[i].verifiedOnDateTime)), isLast: i == (labOrderResultList.length - 1)),
Utils.tableColumnValue(DateUtil.formatDateToDate(DateUtil.convertStringToDate(labOrderResultList[i].verifiedOnDateTime), false), isLast: i == (labOrderResultList.length - 1)),
Utils.tableColumnValue(labOrderResultList[i].resultValue, isLast: i == (labOrderResultList.length - 1)),
],
),

@ -46,9 +46,11 @@ class DoctorCard extends StatelessWidget {
this.remainingTimeInMinutes,
this.isParentAppointment = false});
ProjectViewModel projectViewModel;
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
projectViewModel = Provider.of(context);
return Container(
height: 120,
decoration: BoxDecoration(
@ -127,7 +129,7 @@ class DoctorCard extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
DateUtil.formatDateToDate(date),
DateUtil.formatDateToDate(date, projectViewModel.isArabic),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12),
),
Text(
@ -155,11 +157,11 @@ class DoctorCard extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
myRichText(isSortByClinic ? TranslationBase.of(context).hospital : TranslationBase.of(context).clinic + ":", subName),
myRichText(isSortByClinic ? TranslationBase.of(context).hospital : TranslationBase.of(context).clinic + ":", subName, projectViewModel.isArabic),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
if (rating == null) myRichText(TranslationBase.of(context).invoiceNo, billNo ?? ""),
if (rating == null) myRichText(TranslationBase.of(context).invoiceNo, billNo ?? "", projectViewModel.isArabic),
if (rating != null)
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -216,13 +218,13 @@ class DoctorCard extends StatelessWidget {
}
// todo 'sikander' move this widget to separate file
Widget myRichText(String title, String value) {
Widget myRichText(String title, String value, bool isArabic) {
return RichText(
maxLines: 1,
text: TextSpan(text: title, style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 18 / 10), children: <TextSpan>[
text: TextSpan(text: title, style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, fontFamily: isArabic ? 'Cairo' : 'Poppins', color: Color(0xff575757), letterSpacing: -0.4, height: 18 / 10), children: <TextSpan>[
TextSpan(
text: " $value",
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, fontFamily: isArabic ? 'Cairo' : 'Poppins', color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12),
)
]),
);

@ -154,6 +154,7 @@ class _AppDrawerState extends State<AppDrawer> {
Padding(child: Image.asset('assets/images/lang.png'), padding: EdgeInsets.all(3)),
isImageIcon: true,
bottomLine: false,
projectProvider: projectProvider,
),
onTap: () {
sharedPref.setBool(IS_ROBOT_INIT, null);
@ -181,6 +182,7 @@ class _AppDrawerState extends State<AppDrawer> {
iconColor: Theme.of(context).textTheme.bodyText1.color,
sideArrow: true,
letterSpacing: -0.84,
projectProvider: projectProvider
),
onTap: () {
Navigator.of(context).pop();
@ -312,6 +314,7 @@ class _AppDrawerState extends State<AppDrawer> {
letterSpacing: -0.84,
fontSize: 14,
fontHeight: projectProvider.isArabic ? 1 : 0.8,
projectProvider: projectProvider
),
onTap: () {
sharedPref.remove(APPOINTMENT_HISTORY_MEDICAL);
@ -333,6 +336,7 @@ class _AppDrawerState extends State<AppDrawer> {
bottomLine: false,
letterSpacing: -0.84,
fontSize: 14,
projectProvider: projectProvider,
count: notificationCount != null
? new Container(
padding: EdgeInsets.all(4),
@ -374,6 +378,7 @@ class _AppDrawerState extends State<AppDrawer> {
bottomLine: false,
letterSpacing: -0.84,
fontSize: 14,
projectProvider: projectProvider
),
onTap: () {
Navigator.of(context).pushNamed(
@ -388,6 +393,7 @@ class _AppDrawerState extends State<AppDrawer> {
bottomLine: false,
letterSpacing: -0.84,
fontSize: 14,
projectProvider: projectProvider
),
onTap: () {
if (Platform.isIOS) {
@ -405,6 +411,7 @@ class _AppDrawerState extends State<AppDrawer> {
bottomLine: false,
letterSpacing: -0.84,
fontSize: 14,
projectProvider: projectProvider
),
onTap: () {
logout();
@ -420,6 +427,7 @@ class _AppDrawerState extends State<AppDrawer> {
letterSpacing: -0.84,
fontSize: 14,
bottomLine: false,
projectProvider: projectProvider
),
onTap: () {
login();

@ -1,6 +1,7 @@
import 'dart:ui';
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:flutter/material.dart';
@ -19,9 +20,10 @@ class DrawerItem extends StatefulWidget {
final double fontHeight;
final double letterSpacing;
final double fontSize;
final ProjectViewModel projectProvider;
DrawerItem(this.title, this.icon,
{this.fontSize, this.letterSpacing, this.textColor, this.iconColor, this.subTitle = '', this.bottomLine = true, this.count, this.sideArrow = false, this.isImageIcon = false, this.fontHeight});
{this.fontSize, this.letterSpacing, this.textColor, this.iconColor, this.subTitle = '', this.bottomLine = true, this.count, this.sideArrow = false, this.isImageIcon = false, this.fontHeight, this.projectProvider});
@override
_DrawerItemState createState() => _DrawerItemState();
@ -76,7 +78,7 @@ class _DrawerItemState extends State<DrawerItem> {
)
: SizedBox(),
])),
widget.sideArrow == true ? Expanded(flex: 1, child: Icon(Icons.keyboard_arrow_right, color: Colors.black)) : Expanded(flex: 1, child: SizedBox()),
widget.sideArrow == true ? Expanded(flex: 1, child: Icon(widget.projectProvider.isArabic ? Icons.keyboard_arrow_left : Icons.keyboard_arrow_right, color: Colors.black)) : Expanded(flex: 1, child: SizedBox()),
],
),
));

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/core/model/labs/patient_lab_orders.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/header_model.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@ -8,6 +9,7 @@ import 'package:diplomaticquarterapp/widgets/dialogs/confirm_send_email_dialog.d
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/extensions/string_extensions.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import 'package:rating_bar/rating_bar.dart';
class DoctorHeader extends StatelessWidget {
@ -30,10 +32,12 @@ class DoctorHeader extends StatelessWidget {
this.onRatingAndReviewTap})
: super(key: key);
ProjectViewModel projectViewModel;
@override
Widget build(BuildContext context) {
String _speciality = (headerModel?.speciality ?? []).length > 0 ? headerModel.speciality.first : "";
projectViewModel = Provider.of(context);
return Container(
color: Colors.white,
child: Column(
@ -62,8 +66,8 @@ class DoctorHeader extends StatelessWidget {
_speciality,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.48, height: 18 / 12),
),
headerModel.invoiceNo.isNotEmpty ? myRichText(TranslationBase.of(context).invoiceNo + ":", headerModel.invoiceNo) : Container(),
myRichText(TranslationBase.of(context).branch, headerModel.projectName),
headerModel.invoiceNo.isNotEmpty ? myRichText(TranslationBase.of(context).invoiceNo + ":", headerModel.invoiceNo, projectViewModel.isArabic) : Container(),
myRichText(TranslationBase.of(context).branch, headerModel.projectName, projectViewModel.isArabic),
],
),
),
@ -73,7 +77,7 @@ class DoctorHeader extends StatelessWidget {
children: [
if (headerModel.date != null)
Text(
DateUtil.formatDateToDate(headerModel.date),
DateUtil.formatDateToDate(headerModel.date, projectViewModel.isArabic),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12),
),
if (headerModel.time != null)
@ -84,7 +88,7 @@ class DoctorHeader extends StatelessWidget {
if (headerModel?.nationalityFlagURL != null)
Padding(
padding: const EdgeInsets.only(top: 8.0),
child: Image.network(headerModel.nationalityFlagURL ?? "", height: 16),
child: Image.network(headerModel.nationalityFlagURL ?? "", height: 20),
),
],
)
@ -139,7 +143,7 @@ class DoctorHeader extends StatelessWidget {
},
child: Container(
padding: EdgeInsets.only(top: 10, bottom: 10, right: 21, left: 15),
decoration: BoxDecoration(color: Color(0XFFD02127), borderRadius: BorderRadius.only(topLeft: Radius.circular(10))),
decoration: BoxDecoration(color: Color(0XFFD02127), borderRadius: projectViewModel.isArabic ? BorderRadius.only(topRight: Radius.circular(10)) : BorderRadius.only(topLeft: Radius.circular(10))),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
@ -147,7 +151,7 @@ class DoctorHeader extends StatelessWidget {
SizedBox(width: 6),
Text(
buttonTitle == null ? TranslationBase.of(context).sendEmail : buttonTitle,
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.64, height: 25 / 16),
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.64, height: 1),
),
],
),

Loading…
Cancel
Save