Finish medicine search design

pull/161/head
Elham Rababah 6 years ago
parent 871bd6ab20
commit 0d8455faa7

@ -142,4 +142,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: 649616dc336b3659ac6b2b25159d8e488e042b69 PODFILE CHECKSUM: 649616dc336b3659ac6b2b25159d8e488e042b69
COCOAPODS: 1.10.0.beta.1 COCOAPODS: 1.9.3

@ -59,7 +59,7 @@ class BaseAppClient {
body['stamp'] = STAMP; body['stamp'] = STAMP;
body['IPAdress'] = IP_ADDRESS; body['IPAdress'] = IP_ADDRESS;
body['VersionID'] = VERSION_ID; body['VersionID'] = VERSION_ID;
if (body['Channel'] == null) body['Channel'] = CHANNEL; body['Channel'] = CHANNEL;
body['SessionID'] = SESSION_ID; body['SessionID'] = SESSION_ID;
body['IsLoginForDoctorApp'] = IS_LOGIN_FOR_DOCTOR_APP; body['IsLoginForDoctorApp'] = IS_LOGIN_FOR_DOCTOR_APP;
body['PatientOutSA'] = 0; // PATIENT_OUT_SA; body['PatientOutSA'] = 0; // PATIENT_OUT_SA;

@ -2,8 +2,8 @@ const MAX_SMALL_SCREEN = 660;
const ONLY_NUMBERS = "[0-9]"; const ONLY_NUMBERS = "[0-9]";
const ONLY_LETTERS = "[a-zA-Z &'\"]"; const ONLY_LETTERS = "[a-zA-Z &'\"]";
const ONLY_DATE = "[0-9/]"; const ONLY_DATE = "[0-9/]";
const BASE_URL = 'https://hmgwebservices.com/'; //const BASE_URL = 'https://hmgwebservices.com/';
//const BASE_URL = 'https://uat.hmgwebservices.com/'; const BASE_URL = 'https://uat.hmgwebservices.com/';
const PHARMACY_ITEMS_URL = "Services/Lists.svc/REST/GetPharmcyItems_Region_enh"; const PHARMACY_ITEMS_URL = "Services/Lists.svc/REST/GetPharmcyItems_Region_enh";
const PHARMACY_LIST_URL = "Services/Patients.svc/REST/GetPharmcyList"; const PHARMACY_LIST_URL = "Services/Patients.svc/REST/GetPharmcyList";
const PATIENT_PROGRESS_NOTE_URL = const PATIENT_PROGRESS_NOTE_URL =

@ -57,7 +57,7 @@ const Map<String, Map<String, String>> localizedValues = {
'ar': 'المريض الذي حضر للموعد' 'ar': 'المريض الذي حضر للموعد'
}, },
'searchMedicineNameHere': {'en': 'Search Medicine ', 'ar': 'ابحث هنا'}, 'searchMedicineNameHere': {'en': 'Search Medicine ', 'ar': 'ابحث هنا'},
'youCanFind': {'en': 'You Can Find', 'ar': 'تستطيع ان تجد '}, 'youCanFind': {'en': 'You Can Find ', 'ar': 'تستطيع ان تجد '},
'itemsInSearch': {'en': 'items in search', 'ar': 'عناصر في البحث'}, 'itemsInSearch': {'en': 'items in search', 'ar': 'عناصر في البحث'},
'qrReader': {'en': 'QR Reader', 'ar': 'قارىء رمز الQR'}, 'qrReader': {'en': 'QR Reader', 'ar': 'قارىء رمز الQR'},
'startScanning': {'en': 'Start Scanning', 'ar': 'بدء المسح'}, 'startScanning': {'en': 'Start Scanning', 'ar': 'بدء المسح'},
@ -218,11 +218,11 @@ const Map<String, Map<String, String>> localizedValues = {
'endcall': {'en': 'End Call', 'ar': 'إنهاء المكالمة'}, 'endcall': {'en': 'End Call', 'ar': 'إنهاء المكالمة'},
'transfertoadmin': {'en': 'Transfer to admin', 'ar': 'نقل إلى المسؤول'}, 'transfertoadmin': {'en': 'Transfer to admin', 'ar': 'نقل إلى المسؤول'},
"searchMedicineImageCaption": { "searchMedicineImageCaption": {
'en': 'Type the medicine name to search', 'en': 'Type or speak the medicine name to search',
'ar': 'اكتب اسم الدواء الذي تبحت عنه ' 'ar': ' اكتب أو انطق اسم الدواء للبحث'
}, },
"type": { "type": {
'en': 'Type', 'en': 'Type or Speak',
'ar': 'اكتب اسم الدواء ' 'ar': 'اكتب أو تحدث '
} }
}; };

@ -41,7 +41,7 @@ class _LandingPageState extends State<LandingPage> {
backgroundColor: Hexcolor('#515B5D'), backgroundColor: Hexcolor('#515B5D'),
textTheme: TextTheme( textTheme: TextTheme(
headline6: headline6:
TextStyle(color: Colors.white, fontWeight: FontWeight.bold)), TextStyle(color: Colors.white)),
title: Text(getText(currentTab).toUpperCase()), title: Text(getText(currentTab).toUpperCase()),
leading: Builder( leading: Builder(
builder: (BuildContext context) { builder: (BuildContext context) {

@ -85,7 +85,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
Column( Column(
children: <Widget>[ children: <Widget>[
Container( Container(
height: 150, height: 140,
color: Hexcolor('#515B5D'), color: Hexcolor('#515B5D'),
width: double.infinity, width: double.infinity,
child: FractionallySizedBox( child: FractionallySizedBox(
@ -101,7 +101,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
children: <Widget>[ children: <Widget>[
AppText( AppText(
"Welcome", "Welcome",
fontSize: SizeConfig.textMultiplier * 2, fontSize: SizeConfig.textMultiplier * 1.7,
color: Colors.white, color: Colors.white,
) )
], ],
@ -130,7 +130,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
: authProvider.doctorProfile : authProvider.doctorProfile
.clinicDescription, .clinicDescription,
fontSize: fontSize:
SizeConfig.textMultiplier * 2, SizeConfig.textMultiplier * 1.7,
color: Colors.white, color: Colors.white,
), ),
alignment: projectsProvider.isArabic alignment: projectsProvider.isArabic
@ -201,14 +201,14 @@ class _DashboardScreenState extends State<DashboardScreen> {
), ),
Container( Container(
color: Colors.white, color: Colors.white,
height: 150, height: 90,
), ),
], ],
), ),
Positioned( Positioned(
right: 0.0, right: 9.0,
left: 0, left: 9,
bottom: 40, bottom: 19,
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Hexcolor("#DED8CF"), color: Hexcolor("#DED8CF"),
@ -376,10 +376,11 @@ class _DashboardScreenState extends State<DashboardScreen> {
) )
]), ]),
FractionallySizedBox( FractionallySizedBox(
widthFactor: 0.95, widthFactor: 0.90,
child: Container( child: Container(
color: Colors.white, color: Colors.white,
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -544,7 +545,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
width: MediaQuery width: MediaQuery
.of(context) .of(context)
.size .size
.width * 0.45, .width * 0.44,
height: MediaQuery height: MediaQuery
.of(context) .of(context)
.orientation == Orientation.portrait .orientation == Orientation.portrait
@ -598,7 +599,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
width: MediaQuery width: MediaQuery
.of(context) .of(context)
.size .size
.width * 0.45, .width * 0.44,
height: MediaQuery height: MediaQuery
.of(context) .of(context)
.orientation == Orientation.portrait .orientation == Orientation.portrait

@ -90,156 +90,154 @@ class _MedicineSearchState extends State<MedicineSearchScreen> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( return AppScaffold(
appBarTitle: TranslationBase.of(context).searchMedicine, appBarTitle: TranslationBase.of(context).searchMedicine,
body: Column( body: FractionallySizedBox(
children: <Widget>[ widthFactor: 0.97,
Column( child: ListView(
children: <Widget>[ children: <Widget>[
Container( Column(
child: Icon(
DoctorApp.medicinesearch,
size: 100,
color: Colors.black,
),
margin: EdgeInsets.only(top: 50),
),
Padding(
padding: const EdgeInsets.only(top: 12.0),
child: AppText(
TranslationBase.of(context).type.toUpperCase(),
fontWeight: FontWeight.bold,
fontSize: SizeConfig.heightMultiplier * 2.5,
),
),
Padding(
padding: const EdgeInsets.only(top: 5.0),
child: AppText(
TranslationBase.of(context).searchMedicineImageCaption,
fontSize: SizeConfig.heightMultiplier * 2,
),
)
],
),
Padding(
padding: EdgeInsets.only(
bottom: SizeConfig.heightMultiplier * 1,
right: SizeConfig.heightMultiplier * 2,
left: SizeConfig.heightMultiplier * 2,
top: SizeConfig.heightMultiplier * 3),
child: AppTextFormField(
hintText: TranslationBase.of(context).searchMedicineNameHere,
controller: myController,
onSaved: (value) {},
onFieldSubmitted: (value) {
searchMedicine(context);
},
textInputAction: TextInputAction.search,
prefix: IconButton(
icon: Icon(Icons.mic),
color:
lastStatus == 'listening' ? Colors.red : Colors.grey,
onPressed: () {
myController.text = '';
setState(() {
lastStatus = 'listening';
});
startVoiceSearch();
}),
inputFormatter: ONLY_LETTERS),
),
Container(
margin: EdgeInsets.only(
bottom: SizeConfig.heightMultiplier * 1,
right: SizeConfig.heightMultiplier * 2,
left: SizeConfig.heightMultiplier * 2,
top: SizeConfig.heightMultiplier * 1),
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[ children: <Widget>[
AppButton( Container(
title: TranslationBase child: Icon(
.of(context) DoctorApp.medicinesearch,
.search, size: 100,
onPressed: () { color: Colors.black,
searchMedicine(context); ),
}, margin: EdgeInsets.only(top: 50),
), ),
], Padding(
), padding: const EdgeInsets.only(top: 12.0),
), child: AppText(
Container( TranslationBase.of(context).type.toUpperCase(),
margin: EdgeInsets.only(left: SizeConfig.heightMultiplier * 2), fontWeight: FontWeight.bold,
child: Row( fontSize: SizeConfig.heightMultiplier * 2.5,
crossAxisAlignment: CrossAxisAlignment.start, ),
children: <Widget>[
AppText(
TranslationBase
.of(context)
.youCanFind +
(_medicineProvider.pharmacyItemsList == null
? " 0 "
: _medicineProvider.pharmacyItemsList.length
.toString()) +
TranslationBase
.of(context)
.itemsInSearch,
fontWeight: FontWeight.bold,
margin: 5,
), ),
Padding(
padding: const EdgeInsets.only(top: 5.0),
child: AppText(
TranslationBase.of(context).searchMedicineImageCaption,
fontSize: SizeConfig.heightMultiplier * 2,
),
)
], ],
), ),
), SizedBox(height: 15,),
Expanded( FractionallySizedBox(
child: Container( widthFactor: 0.9,
width: SizeConfig.screenWidth * 0.90, child: Column(
child: !_medicineProvider.isFinished children: <Widget>[
? DrAppCircularProgressIndeicator() Container(
: _medicineProvider.hasError child: AppTextFormField(
? Center( hintText: TranslationBase.of(context).searchMedicineNameHere,
child: Text( controller: myController,
_medicineProvider.errorMsg, onSaved: (value) {},
style: TextStyle( onFieldSubmitted: (value) {
color: Theme.of(context).errorColor), searchMedicine(context);
},
textInputAction: TextInputAction.search,
prefix: IconButton(
icon: Icon(Icons.mic),
color:
lastStatus == 'listening' ? Colors.red : Colors.grey,
onPressed: () {
myController.text = '';
setState(() {
lastStatus = 'listening';
});
startVoiceSearch();
}),
inputFormatter: ONLY_LETTERS),
),
SizedBox(height: 15,),
Container(
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title: TranslationBase
.of(context)
.search,
onPressed: () {
searchMedicine(context);
},
),
],
),
),
Container(
margin: EdgeInsets.only(left: SizeConfig.heightMultiplier * 2),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase
.of(context)
.youCanFind +
_medicineProvider.pharmacyItemsList.length
.toString() +" "+
TranslationBase
.of(context)
.itemsInSearch,
fontWeight: FontWeight.bold,
),
],
),
),
Container(
child: !_medicineProvider.isFinished
? DrAppCircularProgressIndeicator()
: _medicineProvider.hasError
? Center(
child: Text(
_medicineProvider.errorMsg,
style: TextStyle(
color: Theme.of(context).errorColor),
),
)
: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: _medicineProvider.pharmacyItemsList ==
null
? 0
: _medicineProvider.pharmacyItemsList.length,
itemBuilder: (BuildContext context, int index) {
return InkWell(
child: MedicineItemWidget(
label:
_medicineProvider.pharmacyItemsList[index]
["ItemDescription"],
url:
_medicineProvider.pharmacyItemsList[index]
["ProductImageBase64"],
), ),
) onTap: () {
: ListView.builder( Navigator.push(
scrollDirection: Axis.vertical, context,
shrinkWrap: true, MaterialPageRoute(
itemCount: _medicineProvider.pharmacyItemsList == builder: (context) =>
null PharmaciesListScreen(
? 0 itemID: _medicineProvider
: _medicineProvider.pharmacyItemsList.length, .pharmacyItemsList[index]
itemBuilder: (BuildContext context, int index) { ["ItemID"],
return InkWell( url: _medicineProvider
child: MedicineItemWidget( .pharmacyItemsList[index]
label: ["ProductImageBase64"]),
_medicineProvider.pharmacyItemsList[index]
["ItemDescription"],
url:
_medicineProvider.pharmacyItemsList[index]
["ProductImageBase64"],
), ),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
PharmaciesListScreen(
itemID: _medicineProvider
.pharmacyItemsList[index]
["ItemID"],
url: _medicineProvider
.pharmacyItemsList[index]
["ProductImageBase64"]),
),
);
},
); );
}, },
), );
},
),
),
],
),
), ),
),
], ],
),
)); ));
} }

@ -25,14 +25,14 @@ class AppScaffold extends StatelessWidget {
AppGlobal.CONTEX = context; AppGlobal.CONTEX = context;
ProjectProvider projectProvider = Provider.of(context); ProjectProvider projectProvider = Provider.of(context);
return Scaffold( return Scaffold(
backgroundColor: Hexcolor('#F5F5F5'), backgroundColor: Colors.white,
appBar: isShowAppBar appBar: isShowAppBar
? AppBar( ? AppBar(
elevation: 0, elevation: 0,
backgroundColor: Hexcolor('#515B5D'), backgroundColor: Hexcolor('#515B5D'),
textTheme: TextTheme( textTheme: TextTheme(
headline6: TextStyle( headline6: TextStyle(
color: Colors.white, fontWeight: FontWeight.bold)), color: Colors.white)),
title: Text(appBarTitle.toUpperCase()), title: Text(appBarTitle.toUpperCase()),
leading: Builder(builder: (BuildContext context) { leading: Builder(builder: (BuildContext context) {
return IconButton( return IconButton(

Loading…
Cancel
Save