answer method

  1. @override
Future<bool> answer(
  1. dynamic v, {
  2. bool range = false,
})
override

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;
}