getExternalInfo static method
- Landmark landmark, {
- void onWikiDataAvailable(
- ExternalInfo? externalInfo
Requests information about a landmark on wikipedia.
Parameters
- IN landmark Landmark for which the request will be done.
- IN onWikiDataAvailable callback to be triggered after the wikipedia request is done. It will be called with the external info object on success and null on error.
Returns
- The external info object. The
onWikiDataAvailable
callback should be awaited before accessing data from the object.
Throws
- An exception if it fails.
Implementation
static ExternalInfo getExternalInfo(
final Landmark landmark, {
final void Function(ExternalInfo? externalInfo)? onWikiDataAvailable,
}) {
final ExternalInfo pExternalInfo = ExternalInfo();
if (onWikiDataAvailable != null) {
final bool hasExternalInfo = pExternalInfo.hasWikiInfo(landmark);
if (hasExternalInfo) {
final EventDrivenProgressListener wikiListener =
EventDrivenProgressListener();
wikiListener.registerOnCompleteWithDataCallback((
final int err,
final String hint,
final Map<dynamic, dynamic> json,
) {
GemKitPlatform.instance.unregisterEventHandler(wikiListener.id);
if (err == 0) {
onWikiDataAvailable(pExternalInfo);
}
});
GemKitPlatform.instance.registerEventHandler(
wikiListener.id,
wikiListener,
);
pExternalInfo._requestWikiInfo(landmark, wikiListener);
} else {
onWikiDataAvailable(null);
}
}
return pExternalInfo;
}