|
|
|
@@ -43,6 +43,7 @@ class _EditActionUseWaterScreenState extends State<EditActionUseWaterScreen> { |
|
|
|
bool _autoValidate = false; |
|
|
|
UseWater _useWater = UseWater(); |
|
|
|
var pref = LocalPref(); |
|
|
|
|
|
|
|
TextEditingController _waterTypeController = TextEditingController(); |
|
|
|
TextEditingController _amountController = TextEditingController(); |
|
|
|
TextEditingController _descriptionController = TextEditingController(); |
|
|
|
@@ -51,11 +52,13 @@ class _EditActionUseWaterScreenState extends State<EditActionUseWaterScreen> { |
|
|
|
DateTime executeTime = DateTime.now(); |
|
|
|
List<String> filePaths = List<String>(); |
|
|
|
var changeFileController = Get.put(ChangeFileController()); |
|
|
|
var changeRadio = Get.put(ChangeRadioButton()); |
|
|
|
|
|
|
|
@override |
|
|
|
void initState() { |
|
|
|
super.initState(); |
|
|
|
changeFileController.initValue(); |
|
|
|
changeRadio.init(widget.isEdit); |
|
|
|
var parsedExecuteDate = |
|
|
|
DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); |
|
|
|
_useWater.executeDate = "$parsedExecuteDate"; |
|
|
|
@@ -197,34 +200,38 @@ class _EditActionUseWaterScreenState extends State<EditActionUseWaterScreen> { |
|
|
|
} |
|
|
|
|
|
|
|
Widget _typeWater() { |
|
|
|
var waterTypes = List<WaterType>(); |
|
|
|
waterTypes.add(WaterType() |
|
|
|
..waterTypeName = "name" |
|
|
|
..waterTypeDescription = "description"); |
|
|
|
waterTypes.add(WaterType() |
|
|
|
..waterTypeName = "name1" |
|
|
|
..waterTypeDescription = "description1"); |
|
|
|
waterTypes.add(WaterType() |
|
|
|
..waterTypeName = "name2" |
|
|
|
..waterTypeDescription = "description2"); |
|
|
|
return Container( |
|
|
|
height: 150, |
|
|
|
child: ListView.builder( |
|
|
|
physics: NeverScrollableScrollPhysics(), |
|
|
|
shrinkWrap: true, |
|
|
|
itemBuilder: (context, index) { |
|
|
|
return GestureDetector( |
|
|
|
child: RadioListTile( |
|
|
|
title: Text(waterTypes[index].waterTypeDescription ?? ""), |
|
|
|
value: waterTypes[index], |
|
|
|
groupValue: 1 == 1 ? null : waterTypes[0], |
|
|
|
onChanged: (WaterType value) { |
|
|
|
print("selected value: ${value.waterTypeName}"); |
|
|
|
}), |
|
|
|
onTap: () {}); |
|
|
|
}, |
|
|
|
itemCount: waterTypes.length, |
|
|
|
), |
|
|
|
return GetBuilder<ChangeRadioButton>( |
|
|
|
builder: (value) { |
|
|
|
if (value._waterTypes.length > 0) { |
|
|
|
return Container( |
|
|
|
height: 150, |
|
|
|
child: ListView.builder( |
|
|
|
physics: NeverScrollableScrollPhysics(), |
|
|
|
shrinkWrap: true, |
|
|
|
itemBuilder: (context, index) { |
|
|
|
return GestureDetector( |
|
|
|
child: RadioListTile( |
|
|
|
title: Text( |
|
|
|
value._waterTypes[index].waterTypeDescription ?? |
|
|
|
""), |
|
|
|
value: value._waterTypes[index], |
|
|
|
groupValue: value.selectedWaterType == null |
|
|
|
? null |
|
|
|
: value.selectedWaterType, |
|
|
|
onChanged: (WaterType value) { |
|
|
|
changeRadio.changeSelected(value); |
|
|
|
_useWater.waterType = value.waterTypeName; |
|
|
|
print("selected value: ${value.waterTypeName}"); |
|
|
|
}), |
|
|
|
onTap: () {}); |
|
|
|
}, |
|
|
|
itemCount: value._waterTypes.length, |
|
|
|
), |
|
|
|
); |
|
|
|
} else { |
|
|
|
return Container(); |
|
|
|
} |
|
|
|
}, |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
@@ -298,9 +305,13 @@ class _EditActionUseWaterScreenState extends State<EditActionUseWaterScreen> { |
|
|
|
executeTime = |
|
|
|
DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") |
|
|
|
.parse(_useWater.executeDate); |
|
|
|
executeTimeView = DateFormat("dd/MM/yyyy HH:mm") |
|
|
|
.format(executeTime); |
|
|
|
} catch (_) {} |
|
|
|
executeTimeView = DateFormat("dd/MM/yyyy HH:mm") |
|
|
|
.format(executeTime); |
|
|
|
|
|
|
|
changeRadio |
|
|
|
.initWithSelectedByName(_useWater.waterType); |
|
|
|
|
|
|
|
//Show media |
|
|
|
if (_useWater.media != null) { |
|
|
|
await UtilAction.cacheFiles(_useWater.media) |
|
|
|
@@ -370,3 +381,50 @@ class _EditActionUseWaterScreenState extends State<EditActionUseWaterScreen> { |
|
|
|
super.dispose(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class ChangeRadioButton extends GetxController { |
|
|
|
List<WaterType> _waterTypes; |
|
|
|
WaterType selectedWaterType; |
|
|
|
Future<void> init(bool isEditScreen) async { |
|
|
|
//init if is NOT edit screen |
|
|
|
if (!isEditScreen) { |
|
|
|
selectedWaterType = WaterType(); |
|
|
|
_waterTypes = List<WaterType>(); |
|
|
|
//Get action types |
|
|
|
Repository _repo = Repository(); |
|
|
|
try { |
|
|
|
var response = await _repo.getWaterTypes(); |
|
|
|
if (response.length != null) { |
|
|
|
_waterTypes = response; |
|
|
|
update(); |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
print(error.toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void changeSelected(WaterType selected) { |
|
|
|
selectedWaterType = selected; |
|
|
|
update(); |
|
|
|
} |
|
|
|
|
|
|
|
//init and selected item |
|
|
|
Future<void> initWithSelectedByName(String waterTypeName) async { |
|
|
|
Repository _repo = Repository(); |
|
|
|
try { |
|
|
|
var response = await _repo.getWaterTypes(); |
|
|
|
if (response.length != null) { |
|
|
|
_waterTypes = response; |
|
|
|
_waterTypes.forEach((element) { |
|
|
|
if (element.waterTypeName == waterTypeName) { |
|
|
|
selectedWaterType = element; |
|
|
|
} |
|
|
|
}); |
|
|
|
update(); |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
print(error.toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |