blood sugar dialog improvement.

merge-update-with-lab-changes
Sikander Saleem 4 years ago
parent d38de8c494
commit c1ce3a0489

@ -227,17 +227,18 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
child: InkWell( child: InkWell(
onTap: () { onTap: () {
showDialog( showDialog(
context: context, context: context,
builder: (_) => AssetGiffyDialog( builder: (_) => AssetGiffyDialog(
title: Text( title: Text(
"", "",
style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.w600), style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.w600),
), ),
image: Image.asset('assets/images/BloodChrt_EN.png'), image: Image.asset('assets/images/BloodChrt_EN.png'),
buttonCancelText: Text(TranslationBase.of(context).cancel), buttonCancelText: Text(TranslationBase.of(context).cancel),
buttonCancelColor: Colors.grey, buttonCancelColor: Colors.grey,
onlyCancelButton: true, onlyCancelButton: true,
)); ),
);
}, },
child: Container(width: 250, height: 200, child: Image.asset('assets/images/BloodChrt_EN.png'), color: Colors.white), child: Container(width: 250, height: 200, child: Image.asset('assets/images/BloodChrt_EN.png'), color: Colors.white),
), ),

@ -8,8 +8,8 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/RadioStringDialog.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/radio_selection_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -41,6 +41,8 @@ class _AddBloodSugarPageState extends State<AddBloodSugarPage> {
String measureUnitSelectedType = 'mg/dlt'; String measureUnitSelectedType = 'mg/dlt';
int measuredTime = 1; int measuredTime = 1;
bool isButtonDisabled = true; bool isButtonDisabled = true;
int _selectedMeasureUnitIndex = 0;
final List<String> measureUnitList = ['mg/dlt', 'mol/L']; final List<String> measureUnitList = ['mg/dlt', 'mol/L'];
final List<String> measureTimeEnList = [ final List<String> measureTimeEnList = [
'Before Breakfast', 'Before Breakfast',
@ -66,6 +68,7 @@ class _AddBloodSugarPageState extends State<AddBloodSugarPage> {
"صائم", "صائم",
"آخر", "آخر",
]; ];
int _selectedMeasureTimeIndex;
String measureTimeSelectedType; String measureTimeSelectedType;
@override @override
@ -88,212 +91,198 @@ class _AddBloodSugarPageState extends State<AddBloodSugarPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
return AppScaffold( return AppScaffold(
isShowAppBar: true, isShowAppBar: true,
showNewAppBar: true, showNewAppBar: true,
showNewAppBarTitle: true, showNewAppBarTitle: true,
appBarTitle: widget.isUpdate ? TranslationBase.of(context).update : TranslationBase.of(context).add, appBarTitle: widget.isUpdate ? TranslationBase.of(context).update : TranslationBase.of(context).add,
body: SingleChildScrollView( body: Column(
physics: BouncingScrollPhysics(), children: [
child: Container( Expanded(
margin: EdgeInsets.all(15), child: SingleChildScrollView(
child: Column( physics: BouncingScrollPhysics(),
children: [ padding: EdgeInsets.all(21),
SizedBox( child: Column(
height: 15, children: [
), NewTextFields(
NewTextFields( hintText: TranslationBase.of(context).sugarAdd,
hintText: TranslationBase.of(context).sugarAdd, controller: _bloodSugarValueController,
controller: _bloodSugarValueController, keyboardType: TextInputType.number,
keyboardType: TextInputType.number, onChanged: (value) => validateForm(),
onChanged: (value) => validateForm(), fontWeight: FontWeight.normal,
fontWeight: FontWeight.normal, fontSize: 14,
fontSize: 14, ),
), SizedBox(height: 12),
SizedBox( InkWell(
height: 8, onTap: () {
), confirmSelectMeasureUnitDialog();
InkWell( },
onTap: () { child: Container(
confirmSelectMeasureUnitDialog(); padding: EdgeInsets.all(12),
}, width: double.infinity,
child: Container( height: 65,
padding: EdgeInsets.all(12), decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
width: double.infinity, child: Row(
height: 65, mainAxisAlignment: MainAxisAlignment.spaceBetween,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), children: [
child: Row( Texts(measureUnitSelectedType),
mainAxisAlignment: MainAxisAlignment.spaceBetween, Icon(
children: [ Icons.arrow_drop_down,
Texts(measureUnitSelectedType), color: Colors.grey,
Icon( )
Icons.arrow_drop_down, ],
color: Colors.grey, ),
)
],
), ),
), ),
), SizedBox(height: 12),
SizedBox( InkWell(
height: 8, onTap: () {
), DatePicker.showDatePicker(context, showTitleActions: true, minTime: DateTime(DateTime.now().year - 1, 1, 1), maxTime: DateTime.now(), onConfirm: (date) {
InkWell( setState(() {
onTap: () { bloodSugarDate = date;
DatePicker.showDatePicker(context, showTitleActions: true, minTime: DateTime(DateTime.now().year - 1, 1, 1), maxTime: DateTime.now(), onConfirm: (date) { });
setState(() { }, currentTime: bloodSugarDate, locale: projectViewModel.localeType);
bloodSugarDate = date; },
}); child: Container(
}, currentTime: bloodSugarDate, locale: projectViewModel.localeType); padding: EdgeInsets.all(12),
}, width: double.infinity,
child: Container( height: 65,
padding: EdgeInsets.all(12), decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
width: double.infinity, child: Row(
height: 65, mainAxisAlignment: MainAxisAlignment.spaceBetween,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), children: [
child: Row( Texts(TranslationBase.of(context).date),
mainAxisAlignment: MainAxisAlignment.spaceBetween, Texts(getDate()),
children: [ ],
Texts(TranslationBase.of(context).date), ),
Texts(getDate()),
],
), ),
), ),
), SizedBox(height: 12),
SizedBox( InkWell(
height: 8, onTap: () {
), DatePicker.showTimePicker(context, showTitleActions: true, onConfirm: (date) {
InkWell( setState(() {
onTap: () { timeSugarDate = date;
DatePicker.showTimePicker(context, showTitleActions: true, onConfirm: (date) { });
setState(() { }, currentTime: timeSugarDate, locale: projectViewModel.localeType);
timeSugarDate = date; },
}); child: Container(
}, currentTime: timeSugarDate, locale: projectViewModel.localeType); padding: EdgeInsets.all(12),
}, width: double.infinity,
child: Container( height: 65,
padding: EdgeInsets.all(12), decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
width: double.infinity, child: Row(
height: 65, mainAxisAlignment: MainAxisAlignment.spaceBetween,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), children: [Texts(TranslationBase.of(context).time), Texts(getTime())],
child: Row( ),
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [Texts(TranslationBase.of(context).time), Texts(getTime())],
), ),
), ),
), SizedBox(height: 12),
SizedBox( InkWell(
height: 8, onTap: () {
), confirmSelectMeasureTimeDialog(projectViewModel.isArabic ? measureTimeArList : measureTimeEnList);
InkWell( },
onTap: () { child: Container(
confirmSelectMeasureTimeDialog(projectViewModel.isArabic ? measureTimeArList : measureTimeEnList); padding: EdgeInsets.all(12),
}, width: double.infinity,
child: Container( height: 65,
padding: EdgeInsets.all(12), decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
width: double.infinity, child: Row(
height: 65, mainAxisAlignment: MainAxisAlignment.spaceBetween,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), children: [
child: Row( Texts(measureTimeSelectedType ?? TranslationBase.of(context).other),
mainAxisAlignment: MainAxisAlignment.spaceBetween, Icon(
children: [ Icons.arrow_drop_down,
Texts(measureTimeSelectedType ?? TranslationBase.of(context).other), color: Colors.grey,
Icon( )
Icons.arrow_drop_down, ],
color: Colors.grey, ),
)
],
), ),
), ),
), widget.isUpdate
widget.isUpdate ? Container(
? Container( padding: EdgeInsets.all(10),
padding: EdgeInsets.all(10), child: Row(
child: Row( mainAxisAlignment: MainAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.end, children: [
children: [ InkWell(
InkWell( child: Texts(
child: Texts( TranslationBase.of(context).delete,
TranslationBase.of(context).delete, decoration: TextDecoration.underline,
decoration: TextDecoration.underline, fontWeight: FontWeight.bold,
fontWeight: FontWeight.bold, color: Colors.red[900],
color: Colors.red[900], ),
), onTap: () {
onTap: () { showDialog(
ConfirmDialog dialog = new ConfirmDialog(
context: context, context: context,
confirmMessage: TranslationBase.of(context).removeMeasure, child: ConfirmWithMessageDialog(
okText: TranslationBase.of(context).ok, message: TranslationBase.of(context).removeMeasure,
cancelText: TranslationBase.of(context).cancel, onTap: () async {
okFunction: () async { GifLoaderDialogUtils.showMyDialog(context);
ConfirmDialog.closeAlertDialog(context); widget.bloodSugarViewMode.deactivateDiabeticStatus(lineItemNo: widget.lineItemNo).then((value) {
GifLoaderDialogUtils.hideDialog(context);
GifLoaderDialogUtils.showMyDialog(context); if (widget.bloodSugarViewMode.state == ViewState.ErrorLocal)
widget.bloodSugarViewMode.deactivateDiabeticStatus(lineItemNo: widget.lineItemNo).then((value) { AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
GifLoaderDialogUtils.hideDialog(context); else
if (widget.bloodSugarViewMode.state == ViewState.ErrorLocal) Navigator.pop(context);
}).catchError((e) {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: widget.bloodSugarViewMode.error); AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
else });
Navigator.pop(context); },
}).catchError((e) { ),
GifLoaderDialogUtils.hideDialog(context); );
AppToast.showErrorToast(message: widget.bloodSugarViewMode.error); },
}); )
}, ],
cancelFunction: () => {}); ),
dialog.showAlertDialog(context); )
}, : Container()
) ],
], ),
))
: Container()
],
), ),
), ),
), DefaultButton(
bottomSheet: Container( TranslationBase.of(context).save,
color: Theme.of(context).scaffoldBackgroundColor, isButtonDisabled
child: Padding( ? null
padding: const EdgeInsets.all(20.0), : () async {
child: DefaultButton( if (_bloodSugarValueController.text.isNotEmpty) {
TranslationBase.of(context).save.toUpperCase(), GifLoaderDialogUtils.showMyDialog(context);
isButtonDisabled if (widget.isUpdate) {
? null await widget.bloodSugarViewMode.updateDiabtecResult(
: () async { month: bloodSugarDate,
if (_bloodSugarValueController.text.isNotEmpty) { hour: timeSugarDate,
GifLoaderDialogUtils.showMyDialog(context);
if (widget.isUpdate) {
await widget.bloodSugarViewMode.updateDiabtecResult(
month: bloodSugarDate,
hour: timeSugarDate,
diabtecUnit: measureUnitSelectedType,
measuredTime: measuredTime,
lineItemNo: widget.lineItemNo,
bloodSugerResult: _bloodSugarValueController.text.toString());
GifLoaderDialogUtils.hideDialog(context);
if (widget.bloodSugarViewMode.state == ViewState.ErrorLocal)
AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
else
Navigator.pop(context);
} else {
await widget.bloodSugarViewMode.addDiabtecResult(
diabtecUnit: measureUnitSelectedType, diabtecUnit: measureUnitSelectedType,
measuredTime: measuredTime, measuredTime: measuredTime,
bloodSugerResult: _bloodSugarValueController.text.toString(), lineItemNo: widget.lineItemNo,
bloodSugerDateChart: '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', bloodSugerResult: _bloodSugarValueController.text.toString());
);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
if (widget.bloodSugarViewMode.state == ViewState.Error) if (widget.bloodSugarViewMode.state == ViewState.ErrorLocal)
AppToast.showErrorToast(message: widget.bloodSugarViewMode.error); AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
else else
Navigator.pop(context); Navigator.pop(context);
} } else {
await widget.bloodSugarViewMode.addDiabtecResult(
diabtecUnit: measureUnitSelectedType,
measuredTime: measuredTime,
bloodSugerResult: _bloodSugarValueController.text.toString(),
bloodSugerDateChart: '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00',
);
GifLoaderDialogUtils.hideDialog(context);
if (widget.bloodSugarViewMode.state == ViewState.Error)
AppToast.showErrorToast(message: widget.bloodSugarViewMode.error);
else
Navigator.pop(context);
} }
}, }
disabledColor: Colors.grey, },
), disabledColor: Colors.grey,
), ).insideContainer,
)); ],
),
);
} }
String getDate() { String getDate() {
@ -305,33 +294,41 @@ class _AddBloodSugarPageState extends State<AddBloodSugarPage> {
} }
void confirmSelectMeasureUnitDialog() { void confirmSelectMeasureUnitDialog() {
List<RadioSelectionDialogModel> list = [
RadioSelectionDialogModel("mg/dlt", 0),
RadioSelectionDialogModel("mol/L", 1),
];
showDialog( showDialog(
context: context, context: context,
child: RadioStringDialog( child: RadioSelectionDialog(
radioList: measureUnitList, listData: list,
title: TranslationBase.of(context).measureUnit, selectedIndex: _selectedMeasureUnitIndex,
selectedValue: measureUnitSelectedType, onValueSelected: (index) {
onValueSelected: (value) { _selectedMeasureUnitIndex = index;
setState(() { measureUnitSelectedType = list[index].title;
measureUnitSelectedType = value; setState(() {});
});
}, },
), ),
); );
} }
void confirmSelectMeasureTimeDialog(List<String> list) { void confirmSelectMeasureTimeDialog(List<String> dataList) {
List<RadioSelectionDialogModel> list = [
for (int i = 0; i < dataList.length; i++) RadioSelectionDialogModel(dataList[i], i),
];
showDialog( showDialog(
context: context, context: context,
child: RadioStringDialog( child: RadioSelectionDialog(
radioList: list, listData: list,
title: TranslationBase.of(context).measureTime, selectedIndex: _selectedMeasureTimeIndex,
selectedValue: measureTimeSelectedType, isScrollable: true,
onValueSelected: (value) { onValueSelected: (index) {
setState(() { _selectedMeasureTimeIndex = index;
measureTimeSelectedType = value; measureTimeSelectedType = list[index].title;
measuredTime = list.indexOf(value); measuredTime = index;
}); setState(() {});
}, },
), ),
); );

Loading…
Cancel
Save