answer method
Implementation
@override
Future<bool> answer(dynamic v, {bool range = false}) async {
bool ok = true;
touched = true;
if (value != v) {
// Old Value
var oldValue = value;
if (range != true) {
value = v.round();
} else if (range == true && v != null) {
List answerValues = v?.split(',') ?? [minimum, maximum];
double value1 = toDouble(answerValues[0]) ?? minimum ?? 0;
double value2 =
(answerValues.length > 1 ? toDouble(answerValues[1]) : value1) ??
maximum ??
0;
value = '${value1.round()},${value2.round()}';
}
// Old GeoCode
var oldGeocode = geocode;
geocode = Payload(
latitude: System().currentLocation?.latitude,
longitude: System().currentLocation?.longitude,
altitude: System().currentLocation?.altitude,
epoch: DateTime.now().millisecondsSinceEpoch,
user: System.currentApp?.user.claim('key'),
username: System.currentApp?.user.claim('name'));
// Save
//ok = await save();
// Save Failed
if (ok == false) {
value = oldValue;
geocode = oldGeocode;
}
// Save Success
else {
dirty = true;
}
}
return ok;
}