startTrip static method
Future<void>
startTrip(
- RoamTripCallback roamTripCallback,
- ErrorCallback errorCallback, {
- String? tripId,
- RoamTrip? roamTrip,
- RoamTrackingMode? roamTrackingMode,
Implementation
static Future<void> startTrip(RoamTripCallback roamTripCallback,
ErrorCallback errorCallback,
{
String? tripId,
RoamTrip? roamTrip,
RoamTrackingMode? roamTrackingMode,
}) async {
if (roamTrip != null) {
//start quick trip
if (roamTrackingMode == null) {
roamTrackingMode = RoamTrackingMode.ACTIVE;
}
Map<String, dynamic> json = Map();
Map<String, dynamic> roamTripJson = JsonEncoder.encodeRoamTrip(roamTrip);
json['roamTrip'] = jsonEncode(roamTripJson);
json['roamTrackingMode'] =
jsonEncode(JsonEncoder.encodeRoamTrackingMode(roamTrackingMode));
final String? result = await _channel.invokeMethod(
METHOD_START_QUICK_TRIP, json);
if (result == null) {
log("Update trip result null!");
return;
}
try {
Map json = jsonDecode(result);
if (json.containsKey("error")) {
errorCallback(error: JsonDecoder.decodeError(json['error']));
} else {
roamTripCallback(
roamTripResponse: JsonDecoder.decodeRoamTripResponse(json));
}
} catch (exception) {
log(exception.toString());
}
} else {
//start planned trip
final String? result = await _channel.invokeMethod(
METHOD_START_TRIP, {'tripId': tripId ?? ''});
if (result == null) {
log("Start trip result null!");
return;
}
print(result);
try {
Map json = jsonDecode(result);
if (json.containsKey("error")) {
errorCallback(error: JsonDecoder.decodeError(json['error']));
} else {
roamTripCallback(
roamTripResponse: JsonDecoder.decodeRoamTripResponse(json));
}
} catch (exception) {
log(exception.toString());
}
}
}