answer method

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

///////// /////////

Implementation

/* Answer */
////////////
@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 = S.toDouble(answerValues[0]) ??  minimum ?? 0;
      double value2 = (answerValues.length > 1 ?  S.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.app?.user.claim('key'),
        username: System.app?.user.claim('name'));

    //////////
    /* Save */
    //////////
    //ok = await save();

    /////////////////
    /* Save Failed */
    /////////////////
    if (ok == false) {
      value = oldValue;
      geocode = oldGeocode;
    }

    //////////////////
    /* Save Success */
    //////////////////
    else {
      dirty = true;
    }
  }

  return ok;
}