Merge branch 'home_page' into 'diplomatic-quarter-live'

Home page

See merge request Cloud_Solution/diplomatic-quarter!85
fix_login
Mohammad Aljammal 6 years ago
commit dd361cd883

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 644 B

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

1
ios/.gitignore vendored

@ -32,3 +32,4 @@ Runner/GeneratedPluginRegistrant.*
!default.perspectivev3
/Runner.xcworkspace/contents.xcworkspacedata
/Runner.xcodeproj/project.pbxproj
/Flutter/.last_build_id

@ -1 +1 @@
8bbc713f808a1e4202d48e35ddf46f23
da98d9f0c1f407e541c636e84847ac81

@ -412,7 +412,7 @@ const Map<String, Map<String, String>> localizedValues = {
"locationa": {"en": "location:", "ar": "الموقع"},
"ambulancerequest": {"en": "Ambulance :", "ar": "طلب نقل "},
"requestA": {"en": "Request:", "ar": "اسعاف"},
"MyAppointments": {"en": "My Appointments", "ar": "مواعيدي"},
"MyAppointments": {"en": "Appointments", "ar": "مواعيدي"},
"NoBookedAppointments": {
"en": "No Booked Appointments",
"ar": "لا توجد مواعيد محجوزة"

@ -30,4 +30,10 @@ class DQIcons {
static const IconData thermometer = IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData weight_scale = IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData parking_icon = IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData blood_type_icon = IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData height_icon = IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData online_payment_icon = IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData search_medicine_icon = IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData vital_sign_icon = IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData weight_icon = IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
}

@ -74,13 +74,13 @@ class MyApp extends StatelessWidget {
backgroundColor: Color.fromRGBO(255, 255, 255, 1),
highlightColor: Colors.grey[100].withOpacity(0.4),
splashColor: Colors.transparent,
primaryColor: Colors.grey,
primaryColor: Color(0xff40ACC9),
bottomSheetTheme: BottomSheetThemeData(
backgroundColor: HexColor('#E0E0E0')),
cursorColor: Colors.grey,
iconTheme: IconThemeData(),
appBarTheme: AppBarTheme(
color: Colors.grey[700],
color: Color(0xff40ACC9),
brightness: Brightness.dark,
elevation: 10.0,
actionsIconTheme: IconThemeData(

@ -235,7 +235,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
return children;
},
),
onDaySelected: (date, events) {
onDaySelected: (date, events,format) {
_onDaySelected(date, events);
_animationController.forward(from: 0.0);
},

@ -348,7 +348,7 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots>
return children;
},
),
onDaySelected: (date, event) {
onDaySelected: (date, event,format) {
_onDaySelected(date, event,);
_animationController.forward(from: 0.0);
},

@ -1,18 +1,29 @@
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/EReferral/search_criteria_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/d_q_icons_icons.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_index_page.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_index_page.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/all_habib_medical_service_page.dart';
import 'package:diplomaticquarterapp/pages/ContactUs/contact_us_page.dart';
import 'package:diplomaticquarterapp/pages/Covid-DriveThru/covid-drivethru-location.dart';
import 'package:diplomaticquarterapp/pages/ErService/ErOptions.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/MyAppointments.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_card_screen.dart';
import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart';
import 'package:diplomaticquarterapp/pages/medical/active_medications/ActiveMedicationsPage.dart';
import 'package:diplomaticquarterapp/pages/medical/doctor/doctor_home_page.dart';
import 'package:diplomaticquarterapp/pages/medical/labs/labs_home_page.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_home_page.dart';
import 'package:diplomaticquarterapp/pages/medical/radiology/radiology_home_page.dart';
import 'package:diplomaticquarterapp/pages/medical/vital_sign/vital_sign_details_screen.dart';
import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/medicine_search_screen.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/medical_profile_item.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@ -51,11 +62,11 @@ class _HomePageState extends State<HomePage> {
children: <Widget>[
Container(
width: double.infinity,
height: 210,
height: 100,
decoration: BoxDecoration(
image: DecorationImage(
image: ExactAssetImage(
'assets/images/dashboard_top_bg.png'),
'assets/images/dq_home_page_bg_image.png'),
fit: BoxFit.cover),
),
child: Stack(
@ -65,155 +76,26 @@ class _HomePageState extends State<HomePage> {
left: 5,
right: 5,
child: Container(
width:
MediaQuery.of(context).size.width * 0.8,
child: Row(
children: <Widget>[
Expanded(
child: Container(
height: 120,
padding: EdgeInsets.all(5),
margin: EdgeInsets.all(5),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(
"assets/images/new-design/covid_bg_transparent.png"),
fit: BoxFit.fill,
),
color:
Colors.white.withOpacity(0.3),
borderRadius: BorderRadius.all(
Radius.circular(5))),
child: Container(
margin: EdgeInsets.only(top: 10.0),
child: Column(
children: <Widget>[
Text("COVID-19 TEST",
style: TextStyle(
color: Colors.white,
fontWeight:
FontWeight.bold,
fontSize: 18.0)),
Row(
children: <Widget>[
Container(
margin: EdgeInsets.only(
top: 15.0, left: 3.5, right: 3.5),
child: SvgPicture.asset(
'assets/images/new-design/covid-19-car.svg',
width: 45.0,
height: 45.0),
),
Container(
margin: EdgeInsets.only(
left: 10.0,
top: 10.0),
child: Column(
children: <Widget>[
Text("Drive-Thru",
style: TextStyle(
color: Colors
.white,
fontWeight:
FontWeight
.bold,
fontSize:
16.0)),
ButtonTheme(
shape:
RoundedRectangleBorder(
borderRadius:
BorderRadius
.circular(
5.0),
),
minWidth: MediaQuery.of(
context)
.size
.width *
0.15,
height: 25.0,
child: RaisedButton(
color: Colors
.red[800],
textColor:
Colors.white,
disabledTextColor:
Colors.white,
disabledColor:
new Color(
0xFFbcc2c4),
onPressed: () {
//TODO remove it when all the loader cases ended This is just an example
// GifLoaderDialogUtils.showMyDialog(context);
navigateToCovidDriveThru();
},
child: Text(
"BOOK NOW",
style: TextStyle(
fontSize:
12.0)),
),
),
],
),
),
],
),
],
),
),
),
),
Expanded(
child: InkWell(
onTap: () => Navigator.push(context,
FadePage(page: LiveCareHome())),
child: Container(
height: 120,
padding: EdgeInsets.all(15),
margin: EdgeInsets.all(5),
decoration: BoxDecoration(
color: Colors.white
.withOpacity(0.3),
borderRadius: BorderRadius.all(
Radius.circular(5))),
child: SvgPicture.asset(
projectViewModel.isArabic
? 'assets/images/new-design/livecare_arabic_logo.svg'
: 'assets/images/new-design/liveCare_white_logo.svg',
),
),
),
),
],
),
width: MediaQuery.of(context).size.width * 0.8,
child: Container(),
),
)
],
),
),
Container(width: double.infinity, height: 80)
Container(width: double.infinity, height: 125),
],
),
Positioned(
top: 155,
left: MediaQuery.of(context).size.width *
(MediaQuery.of(context).orientation ==
Orientation.landscape
? 0.02
: 0.03),
right: MediaQuery.of(context).size.width *
(MediaQuery.of(context).orientation ==
Orientation.landscape
? 0.02
: 0.03),
top: 40,
left: MediaQuery.of(context).size.width * (MediaQuery.of(context).orientation == Orientation.landscape ? 0.02 : 0.03),
right: MediaQuery.of(context).size.width * (MediaQuery.of(context).orientation == Orientation.landscape ? 0.02 : 0.03),
child: (!model.isLogin && projectViewModel.user == null)
? Container(
width: double.infinity,
height: 125,
height: 180,
decoration: BoxDecoration(
color: HexColor('#A59E9E'),
color: Theme.of(context).primaryColor,
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent, width: 0.5),
@ -233,7 +115,7 @@ class _HomePageState extends State<HomePage> {
),
Texts(
TranslationBase.of(context).myMedicalFile,
color: Colors.black87,
color: Colors.white,
bold: true,
fontSize: 23,
),
@ -243,7 +125,7 @@ class _HomePageState extends State<HomePage> {
Texts(
TranslationBase.of(context)
.myMedicalFileSubTitle,
color: Colors.black,
color: Colors.white,
fontSize: 16,
),
Align(
@ -256,10 +138,10 @@ class _HomePageState extends State<HomePage> {
},
child: Container(
margin: EdgeInsets.all(2),
width: 90,
width: MediaQuery.of(context).size.width * 0.30,
height: 30,
decoration: BoxDecoration(
color: HexColor('#D81A2E'),
color: Colors.white,
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent,
@ -271,7 +153,7 @@ class _HomePageState extends State<HomePage> {
child: Texts(
TranslationBase.of(context)
.viewMore,
color: Colors.white,
color: Theme.of(context).primaryColor,
fontSize: 12,
),
),
@ -284,9 +166,9 @@ class _HomePageState extends State<HomePage> {
)
: Container(
width: double.infinity,
height: 130,
height: projectViewModel.isArabic?180: 150,
decoration: BoxDecoration(
color: HexColor('#A59E9E'),
color: Theme.of(context).primaryColor,
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent, width: 0.5),
@ -297,9 +179,12 @@ class _HomePageState extends State<HomePage> {
'assets/images/bg_graphic.png'),
fit: BoxFit.cover),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
margin: EdgeInsets.all(5),
child: Column(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Row(
children: <Widget>[
@ -343,10 +228,10 @@ class _HomePageState extends State<HomePage> {
},
child: Container(
margin: EdgeInsets.all(2),
width: 90,
width: MediaQuery.of(context).size.width * 0.30,
height: 30,
decoration: BoxDecoration(
color: HexColor('#D81A2E'),
color: Colors.white,
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent,
@ -357,10 +242,10 @@ class _HomePageState extends State<HomePage> {
),
child: Center(
child: Texts(
TranslationBase.of(context)
.viewMore,
color: Colors.white,
TranslationBase.of(context).viewMore,
color: Theme.of(context).primaryColor,
fontSize: 12,
bold: true,
),
),
),
@ -368,22 +253,32 @@ class _HomePageState extends State<HomePage> {
],
),
Row(
//crossAxisAlignment: CrossAxisAlignment.center,
//mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Expanded(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Image.asset(
'assets/images/height_icon.png',
width: 35,
height: 40,
width: 30,
height: 55,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
"${model.heightCm}",
color: Colors.white,
bold: true,
),
Texts(
"Height",
color: Colors.white,
fontSize: 10,
),
],
)
],
),
@ -393,17 +288,28 @@ class _HomePageState extends State<HomePage> {
),
Expanded(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Image.asset(
'assets/images/weight_icon.png',
width: 25,
height: 40,
'assets/images/test-weight.png',
width: 30,
height: 55,
),
Column(
children: [
Texts(
'${model.weightKg}',
color: Colors.white,
bold: true,
),
Texts(
"Weight",
color: Colors.white,
fontSize: 10,
)
],
)
],
),
@ -413,17 +319,26 @@ class _HomePageState extends State<HomePage> {
),
Expanded(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Image.asset(
'assets/images/blood_icon.png',
'assets/images/blood-drop.png',
width: 35,
height: 40,
),
Column(
children: [
Texts(
'${model.bloadType}',
color: Colors.white,
),
Texts(
"Blood Type",
color: Colors.white,
fontSize: 10,
)
],
)
],
),
@ -435,6 +350,7 @@ class _HomePageState extends State<HomePage> {
),
),
),
),
],
),
Container(
@ -442,12 +358,13 @@ class _HomePageState extends State<HomePage> {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
DashboardItem(
Expanded(
child: DashboardItem(
onTap: () {
Navigator.push(
context,
FadePage(
page: HomeHealthCareIndexPage(),
page: VitalSignDetailsScreen(),
),
);
},
@ -456,64 +373,92 @@ class _HomePageState extends State<HomePage> {
padding: const EdgeInsets.all(15.0),
child: Column(
children: <Widget>[
Image.asset(
'assets/images/home_health_care_icon.png',
width: 50,
height: 50,
SizedBox(height: 15,),
Container(
width: 60,
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(12)
),
SizedBox(
height: 3,
child: Center(child: Image.asset('assets/images/vital_sign_icon.png',
width: 80,
height: 50,
fit: BoxFit.contain,)),
),
SizedBox(height: 20,),
Texts(
TranslationBase.of(context)
.homeHealthCareService,
.vitalSigns,
textAlign: TextAlign.center,
color: Colors.white,
bold: true,
fontSize: SizeConfig.textMultiplier * 1.7,
fontWeight: FontWeight.w700,
fontSize: projectViewModel.isArabic? SizeConfig.textMultiplier * 1.5 :SizeConfig.textMultiplier * 1.7,
)
],
),
),
),
height: MediaQuery.of(context).size.width * 0.4,
margin: 4,
height: 170,
imageName: 'home_healthcare_service_bg.png',
opacity: 0.5,
opacity: 1.0,
),
DashboardItem(
),
Expanded(
child: DashboardItem(
onTap: () {
Navigator.push(
context,
FadePage(
page: MedicineSearch(),
),
);
},
opacity: 1.0,
child: Center(
child: Padding(
padding: const EdgeInsets.all(15.0),
child: Column(
children: <Widget>[
Image.asset(
'assets/images/pharmacy_logo.png',
width: 40,
height: 40,
SizedBox(height: 15,),
Container(
width: 50,
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(12)
),
SizedBox(
height: 20,
child: Center(child: Image.asset('assets/images/search_medicine_icon.png',
width: 50,
height: 50,
fit: BoxFit.contain,)),
),
SizedBox(height: 20,),
Texts(
TranslationBase.of(context).onlinePharmacy,
TranslationBase.of(context).searchMedicine,
textAlign: TextAlign.center,
color: Colors.white,
bold: true,
fontSize: SizeConfig.textMultiplier * 1.7,
fontWeight: FontWeight.w700,
fontSize: projectViewModel.isArabic? SizeConfig.textMultiplier * 1.5 :SizeConfig.textMultiplier * 1.7,
)
],
),
),
),
height: MediaQuery.of(context).size.width * 0.4,
margin: 4,
height: 170,
imageName: 'al-habib_onlne_pharmacy_bg.png',
),
DashboardItem(
),
Expanded(
child: DashboardItem(opacity: 1.0,
onTap: (){
Navigator.push(
context,
FadePage(
page: CMCIndexPage(),
page: PaymentService(),
),
);
},
@ -522,28 +467,35 @@ class _HomePageState extends State<HomePage> {
padding: const EdgeInsets.all(15.0),
child: Column(
children: <Widget>[
Image.asset(
'assets/images/comprehensive_medical_checkup_logo.png',
width: 50,
height: 50,
SizedBox(height: 15,),
Container(
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(12)
),
SizedBox(
height: 3,
child: Center(child: Image.asset('assets/images/online_payment_icon.png',
width: 80,
height: 50,
fit: BoxFit.contain,)),
),
SizedBox(height: 15,),
Texts(
TranslationBase.of(context).emergencyService,
TranslationBase.of(context).onlinePaymentService,
textAlign: TextAlign.center,
color: Colors.white,
bold: true,
fontSize: SizeConfig.textMultiplier * 1.7,
fontWeight: FontWeight.w700,
fontSize: projectViewModel.isArabic? SizeConfig.textMultiplier * 1.5 :SizeConfig.textMultiplier * 1.7,
)
],
),
),
),
height: MediaQuery.of(context).size.width * 0.4,
color: HexColor("#747C80"),
imageName: 'emergency_service_image.png',
margin: 4,
height: 170,
imageName: 'online_payments_bg.png',
),
),
],
),
@ -551,121 +503,123 @@ class _HomePageState extends State<HomePage> {
SizedBox(
height: 8,
),
InkWell(
onTap: () =>
Navigator.push(context, FadePage(page: PaymentService())),
child: Container(
margin: EdgeInsets.only(left: 15, right: 15),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width * 0.29,
child: Center(
child: Padding(
padding: const EdgeInsets.all(15.0),
margin: EdgeInsets.only(left: 10, right: 10),
child: Column(
children: <Widget>[
Image.asset(
'assets/images/al-habib_online_payment_service_icon.png',
height: 55,
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Expanded(
//flex: 1,
child: InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: MyAppointments(),
),
SizedBox(
height: 5,
);
},
child: MedicalProfileItem(
title: TranslationBase.of(context)
.myAppointments,
imagePath: 'my_appointment_icon.png',
subTitle: TranslationBase.of(context).myAppointmentsList,
),
Texts(
TranslationBase.of(context)
.onlinePaymentService,
textAlign: TextAlign.center,
color: Colors.black87,
bold: false,
fontSize: SizeConfig.textMultiplier * 1.7,
)
],
),
),
Expanded(
flex: 1,
child: InkWell(
onTap: () => Navigator.push(context,
FadePage(page: LabsHomePage())),
child: MedicalProfileItem(
title: TranslationBase.of(context).lab,
imagePath: 'lab_result_icon.png',
subTitle:
TranslationBase.of(context).lab,
),
height: MediaQuery.of(context).size.width * 0.4,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6.0),
color: Colors.white,
),
),
Container(
child: Center(
child: Padding(
padding: const EdgeInsets.all(15.0),
child: Column(
children: <Widget>[
Image.asset(
'assets/images/ereferral_service_icon.png',
width: 50,
height: 55,
Expanded(
flex: 1,
child: InkWell(
onTap: () => Navigator.push(context,
FadePage(page: RadiologyHomePage())),
child: MedicalProfileItem(
title: TranslationBase.of(context)
.radiology,
imagePath: 'radiology_icon.png',
subTitle: TranslationBase.of(context)
.radiologySubtitle,
),
),
SizedBox(
height: 10,
),
Texts(
TranslationBase.of(context)
.offersAndPackages,
textAlign: TextAlign.center,
color: Colors.black87,
bold: false,
fontSize: SizeConfig.textMultiplier * 1.7,
)
],
),
Row(
children: <Widget>[
Expanded(
flex: 1,
child: InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: HomePrescriptionsPage(),
),
);
},
child: MedicalProfileItem(
title: TranslationBase.of(context)
.medicines,
imagePath: 'prescription_icon.png',
subTitle: TranslationBase.of(context)
.medicinesSubtitle,
),
width: MediaQuery.of(context).size.width * 0.29,
height: MediaQuery.of(context).size.width * 0.4,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6.0),
color: Colors.white,
)),
Container(
width: MediaQuery.of(context).size.width * 0.29,
),
),
Expanded(
flex: 1,
child: InkWell(
onTap: () => Navigator.push(
onTap: () {
Navigator.push(
context,
FadePage(
page: ErOptions(
isAppbar: true,
))),
child: Center(
child: Padding(
padding: const EdgeInsets.all(15.0),
child: Column(
children: <Widget>[
Image.asset(
'assets/images/Dr_Schedule_report.png',
width: 50,
height: 50,
),
SizedBox(
height: 10,
page: DoctorHomePage(),
),
Texts(
TranslationBase.of(context)
.emergencyServices,
textAlign: TextAlign.center,
color: Colors.black87,
bold: false,
fontSize: SizeConfig.textMultiplier * 1.7,
)
],
);
},
child: MedicalProfileItem(
title: TranslationBase.of(context)
.myDoctor,
imagePath: 'doctor_icon.png',
subTitle: TranslationBase.of(context)
.myDoctorSubtitle,
),
),
),
Expanded(
flex: 1,
child: InkWell(
onTap: () {
Navigator.push(context,
FadePage(page: InsuranceCard()));
},
child: MedicalProfileItem(
title: TranslationBase.of(context)
.insurance,
imagePath: 'insurance_card_icon.png',
subTitle: TranslationBase.of(context)
.insuranceSubtitle,
),
height: MediaQuery.of(context).size.width * 0.4,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6.0),
color: Colors.white,
),
),
],
),
],
),
),
SizedBox(
@ -677,6 +631,7 @@ class _HomePageState extends State<HomePage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
DashboardItem(
opacity:1.0,
child: Container(
width: double.infinity,
padding: EdgeInsets.all(10),
@ -707,14 +662,14 @@ class _HomePageState extends State<HomePage> {
),
),
height: 100,
imageName: 'contact_us_bg.png',
opacity: 0.5,
color: Colors.grey[700],
imageName: 'ask_doctor_bg.png',
//color: Colors.grey[700],
width: MediaQuery.of(context).size.width * 0.45,
onTap: () => Navigator.push(
context, FadePage(page: AllHabibMedicalService())),
),
DashboardItem(
opacity:1.0,
onTap: () {
// Navigator.push(
// context, FadePage(page: FeedbackHomePage()));
@ -750,8 +705,7 @@ class _HomePageState extends State<HomePage> {
),
),
height: 100,
imageName: 'contact_us_bg.png',
opacity: 0.5,
imageName: 'rectangle.png',
color: Colors.grey[700],
width: MediaQuery.of(context).size.width * 0.45,
),
@ -759,7 +713,7 @@ class _HomePageState extends State<HomePage> {
),
),
SizedBox(
height: 80,
height: 120,
)
],
),
@ -785,7 +739,7 @@ class DashboardItem extends StatelessWidget {
this.width,
this.height,
this.color,
this.opacity = 0.4})
this.opacity = 1.0,this.icon,this.margin=0})
: super(key: key);
final bool hasBorder;
final String imageName;
@ -795,6 +749,8 @@ class DashboardItem extends StatelessWidget {
final double height;
final Color color;
final double opacity;
final double margin;
final Widget icon;
@override
Widget build(BuildContext context) {
@ -811,7 +767,7 @@ class DashboardItem extends StatelessWidget {
color: !hasBorder
? color != null
? color
: HexColor('#050705').withOpacity(opacity)
: Colors.black.withOpacity(opacity)
: Colors.white,
borderRadius: BorderRadius.circular(6.0),
border: hasBorder
@ -822,10 +778,11 @@ class DashboardItem extends StatelessWidget {
image: ExactAssetImage('assets/images/$imageName'),
fit: BoxFit.cover,
colorFilter: new ColorFilter.mode(
Colors.black.withOpacity(0.2), BlendMode.dstIn),
Colors.black.withOpacity(opacity), BlendMode.dstIn),
)
: null,
: icon,
),
margin: EdgeInsets.all(margin),
child: Center(
child: child,
),

@ -3,6 +3,7 @@ import 'dart:typed_data';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/Authentication/select_device_imei_res.dart';
@ -18,8 +19,11 @@ import 'package:diplomaticquarterapp/uitl/CalendarUtils.dart';
import 'package:diplomaticquarterapp/uitl/LocalNotification.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/bottom_navigation/bottom_nav_bar.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/floatingActionButton.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/drawer/app_drawer_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/slide_up_page.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -29,6 +33,7 @@ import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart';
import 'package:rxdart/rxdart.dart';
import '../../locator.dart';
import 'home_page.dart';
class LandingPage extends StatefulWidget {
@ -44,6 +49,9 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
int currentTab = 0;
PageController pageController;
ProjectViewModel projectProvider;
///inject the user data
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
final authService = new AuthProvider();
var event = RobotProvider();
@ -332,8 +340,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
appBar: AppBar(
elevation: 0,
textTheme: TextTheme(
headline6:
TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
headline6: TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
),
title: Text(getText(currentTab).toUpperCase()),
leading: Builder(
@ -363,21 +370,22 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
physics: NeverScrollableScrollPhysics(),
controller: pageController,
children: [
HomePage(
goToMyProfile: () {
_changeCurrentTab(1);
},
),
HomePage(goToMyProfile: () {_changeCurrentTab(1);},),
MedicalProfilePage(),
MyAdmissionsPage(),
BookingOptions(),
Container(),
ToDo(),
BookingOptions()
], // Please do not remove the BookingOptions from this array
),
bottomNavigationBar: BottomNavBar(
changeIndex: _changeCurrentTab,
index: currentTab,
),
bottomNavigationBar: BottomNavBar(changeIndex: _changeCurrentTab, index: currentTab,),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
floatingActionButton: currentTab ==0? FloatingButton(
elevation: true,
onTap: () {
_changeCurrentTab(2);
}):null
);
}
@ -392,11 +400,12 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
case 1:
return TranslationBase.of(context).medicalProfile;
case 2:
return TranslationBase.of(context).mySchedule;
return TranslationBase.of(context).bookAppo;
case 3:
return TranslationBase.of(context).services;
return TranslationBase.of(context).mySchedule;
case 4:
return TranslationBase.of(context).bookAppo;
return TranslationBase.of(context).services;
}
}

@ -96,7 +96,7 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
children: <Widget>[
Container(
width: double.infinity,
height: 30,
height: 55,
),
Row(
children: <Widget>[
@ -492,6 +492,7 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
child: Container(),
),
]),
SizedBox(height: MediaQuery.of(context).size.height * 0.12,)
],
),
)
@ -499,14 +500,14 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
),
if (model.user != null)
Positioned(
top: 175,
top: 185,
left: 20,
right: 20,
child: Container(
width: double.infinity,
height: 70,
height: 80,
decoration: BoxDecoration(
color: Colors.grey[600],
color: Theme.of(context).primaryColor,
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent, width: 0.5),
@ -518,6 +519,7 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
fit: BoxFit.cover)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
SizedBox(
height: 8,
@ -528,9 +530,7 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
model.user.lastName,
color: Colors.white,
),
SizedBox(
height: 8,
),
Texts(
'${model.user.patientID}',
color: Colors.white,

@ -51,26 +51,26 @@ class _BottomNavBarState extends State<BottomNavBar> {
currentIndex: 1,
name: TranslationBase.of(context).medicalProfile,
),
// Expanded(
// child: SizedBox(
// height: 50,
// child: Column(
// mainAxisSize: MainAxisSize.min,
// mainAxisAlignment: MainAxisAlignment.center,
// children: <Widget>[
// SizedBox(height: 22),
// ],
// ),
// ),
// ),
// Added Calendar Icon to access book appointment flow
if(widget.index == 0)
Expanded(
child: SizedBox(
height: 50,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
SizedBox(height: 22),
],
),
),
),
if(widget.index != 0)
BottomNavigationItem(
icon: EvaIcons.calendar,
activeIcon: EvaIcons.calendarOutline,
changeIndex: _changeIndex,
index: _index,
currentIndex: 4,
currentIndex: 2,
name: TranslationBase.of(context).bookAppo,
),
@ -79,7 +79,7 @@ class _BottomNavBarState extends State<BottomNavBar> {
activeIcon: EvaIcons.person,
changeIndex: _changeIndex,
index: widget.index,
currentIndex: 2,
currentIndex: 3,
name: TranslationBase.of(context).mySchedule,
),
BottomNavigationItem(
@ -87,7 +87,7 @@ class _BottomNavBarState extends State<BottomNavBar> {
activeIcon: EvaIcons.calendar,
changeIndex: _changeIndex,
index: widget.index,
currentIndex: 3,
currentIndex: 4,
name: TranslationBase.of(context).todoList,
)
],

@ -105,7 +105,7 @@ class _ButtonState extends State<Button> with TickerProviderStateMixin {
: 19),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
color: widget.backgroundColor ?? HexColor('#515b5d'),
color: widget.backgroundColor ?? Theme.of(context).primaryColor,
boxShadow: [
BoxShadow(
color: Color.fromRGBO(

@ -0,0 +1,117 @@
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
/// Button widget
/// [label] button label
/// [icon] button icon its optional
/// [onTap] button function
/// [loading] show the progress indicator
/// [elevation] color elevation value
class FloatingButton extends StatefulWidget {
FloatingButton(
{Key key,
this.onTap,
this.elevation: true})
: super(key: key);
final VoidCallback onTap;
final bool elevation;
@override
_FloatingButtonState createState() => _FloatingButtonState();
}
class _FloatingButtonState extends State<FloatingButton>
with TickerProviderStateMixin {
double _buttonSize = 1.0;
AnimationController _animationController;
Animation _animation;
@override
void initState() {
_animationController = AnimationController(
vsync: this,
lowerBound: 0.7,
upperBound: 1.0,
duration: Duration(milliseconds: 120));
_animation = CurvedAnimation(
parent: _animationController,
curve: Curves.easeOutQuad,
reverseCurve: Curves.easeOutQuad);
_animation.addListener(() {
setState(() {
_buttonSize = _animation.value;
});
});
super.initState();
}
@override
void dispose() {
_animationController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return (GestureDetector(
onTapDown: (TapDownDetails tap) {
_animationController.reverse(from: 1.0);
},
onTapUp: (TapUpDetails tap) {
_animationController.forward();
},
onTapCancel: () {
_animationController.forward();
},
onTap: Feedback.wrapForTap(widget.onTap, context),
behavior: HitTestBehavior.opaque,
child: Transform.scale(
scale: _buttonSize,
child: AnimatedContainer(
duration: Duration(milliseconds: 150),
margin: EdgeInsets.only(bottom: 4),
padding: EdgeInsets.symmetric(vertical: 22, horizontal: 22),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(45.0)),
color: Theme.of(context).primaryColor,
boxShadow: [
BoxShadow(
color: Color.fromRGBO(
120, 71, 80, widget.elevation ? 0.28 : 0.0),
spreadRadius:
_buttonSize < 1.0 ? -(1 - _buttonSize) * 50 : 0.0,
offset: Offset(0, 7.0),
blurRadius: 55.0)
]),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
child: Center(
child: Column(
children: [
//TODO change the icon
Image.asset("assets/images/blood-drop.png", fit: BoxFit.cover),
Texts('BOOK',bold: true,color: Colors.white,),
Texts('APPPINTEMNT',color: Colors.white,fontSize: 7,),
],
),
),
width: 50,
height: 50,
decoration: BoxDecoration(
shape: BoxShape.circle,
),
)
],
),
)),
));
}
}

@ -3,6 +3,8 @@ import 'package:diplomaticquarterapp/widgets/others/rounded_container_widget.dar
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import '../text.dart';
class MedicalProfileItem extends StatelessWidget {
MedicalProfileItem({
@required this.imagePath,
@ -17,19 +19,23 @@ class MedicalProfileItem extends StatelessWidget {
@override
Widget build(BuildContext context) {
return RoundedContainer(
showBorder: true,
borderWidth: 0,
margin: 4,
height:120,// MediaQuery.of(context).size.height * 0.12,
child: Container(
padding: EdgeInsets.all(5),
//width: MediaQuery.of(context).size.width * 0.25,
// width: MediaQuery.of(context).size.width* 0.40,
padding: EdgeInsets.all(10),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
title,
style: TextStyle(
Texts(title,
fontSize: 1.5 * SizeConfig.textMultiplier,
color: HexColor('#B8382C'),
color: Theme.of(context).primaryColor,
fontWeight: FontWeight.bold),
),
RichText(
text: TextSpan(
style: TextStyle(color: Colors.black),

@ -31,7 +31,7 @@ class TimeLineWidget extends StatelessWidget {
),
if (isUp)
Positioned(
top: 20,
top: 15,
child: Container(
margin: EdgeInsets.only(left: 2, right: 2),
child: Column(
@ -90,7 +90,7 @@ class TimeLineWidget extends StatelessWidget {
)
else
Positioned(
top: 70,
top: 65,
child: Container(
margin: EdgeInsets.only(left: 2, right: 2),
child: Column(

@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/bottom_bar.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_loader_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@ -67,9 +68,9 @@ class AppScaffold extends StatelessWidget {
headline6:
TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
),
title: Text(authenticatedUserObject.isLogin
title: Texts(authenticatedUserObject.isLogin || !isShowDecPage
? appBarTitle.toUpperCase()
: TranslationBase.of(context).serviceInformationTitle),
: TranslationBase.of(context).serviceInformationTitle,color: Colors.white,),
leading: Builder(
builder: (BuildContext context) {
return ArrowBack();
@ -115,6 +116,6 @@ class AppScaffold extends StatelessWidget {
buildBodyWidget() {
// return body; //Stack(children: <Widget>[body, buildAppLoaderWidget(isLoading)]);
return Stack(children: <Widget>[body, FloatingSearchButton()]);
return Stack(children: <Widget>[body, /*FloatingSearchButton()*/]);
}
}

Loading…
Cancel
Save