presentModal static method
Future<bool>
presentModal(
- CPTemplate template,
- FCPChannelTypes method,
- Map<
String, dynamic> arguments
Implementation
static Future<bool> presentModal(
CPTemplate template,
FCPChannelTypes method,
Map<String, dynamic> arguments,
) async {
if (_modalRequest != null || currentPresentTemplate != null) return false;
final request = _ModalRequest(template);
_modalRequest = request;
try {
final completed = await Future.any<bool?>([
flutterToNativeModule(method, arguments, () {
if (!identical(_modalRequest, request)) return false;
request.invoked = true;
return true;
}),
request.cancelled.future,
]);
if (!identical(_modalRequest, request)) return false;
if (completed != true) {
_modalRequest = null;
return false;
}
currentPresentTemplate = template;
return true;
} catch (_) {
if (identical(_modalRequest, request)) _modalRequest = null;
rethrow;
}
}