getPreviewData method
- void onResult(
- GemError error,
- TrafficParameters? data
Asynchronously retrieve traffic preview data for the event.
The preview data contains a list of TrafficParameters with additional
metadata useful for UI and diagnostics.
Parameters
onResult: Function called when the operation completes. The function is called with:- GemError.success for
errorand TrafficParameters fordatawhen preview data is available. - GemError.notSupported for
errorandnullfordatawhen preview is not available for this event. - GemError.noConnection, GemError.networkFailed, GemError.networkTimeout for
errorandnullfordatawhen network issues prevented retrieval. - GemError.notFound for
errorandnullfordatawhen no preview data exists for this event. - GemError.general for
errorandnullfordatawhen the request failed for other reasons. - Other values for
errorandnullfordataindicate other failures.
- GemError.success for
Returns
- ProgressListener?: listener that can be used to cancel the
operation, or
nullwhen the operation could not be started.
Example
event.getPreviewData(
(GemError error, TrafficParameters? data) {
if (error == GemError.success && data != null) {
print('Preview id: ${data.id}');
print('Description: ${data.description}');
print('Delay (s): ${data.delay}');
} else {
print('Failed to get preview data: $error');
}
},
);
Also see:
- TrafficParameters - Class representing traffic preview data.
- cancelGetPreviewData - Cancel an active preview data request.
Implementation
// // Handle error cases (not supported, network issues, not found, ...)
/// print('Failed to get preview data: $error');
/// }
/// },
/// );
/// ```
///
/// ## Also see:
///
/// - [TrafficParameters] - Class representing traffic preview data.
/// - [cancelGetPreviewData] - Cancel an active preview data request.
ProgressListener? getPreviewData(
void Function(GemError error, TrafficParameters? data) onResult,
) {
final EventDrivenProgressListener listener = EventDrivenProgressListener();
GemKitPlatform.instance.registerEventHandler(listener.id, listener);
final SearchableParameterList parameterList = SearchableParameterList();
listener.registerOnCompleteWithData((int code, _, _) {
final GemError error = GemErrorExtension.fromCode(code);
GemKitPlatform.instance.unregisterEventHandler(listener.id);
if (error != GemError.success) {
onResult(error, null);
} else {
final TrafficParameters trafficParams =
TrafficParameters.fromParameters(parameterList.toList());
onResult(error, trafficParams);
}
});
final OperationResult resultString = objectMethod(
pointerId,
'TrafficEvent',
'getPreviewData',
args: <String, dynamic>{
'first': parameterList.pointerId,
'second': listener.id,
},
);
if (resultString['result'] != 0) {
GemKitPlatform.instance.unregisterEventHandler(listener.id);
onResult(GemErrorExtension.fromCode(resultString['result']), null);
return null;
}
return listener;
}