describeScreen function

Future<DescribeResult> describeScreen(
  1. DescribeInput _
)

Returns a compact snapshot of the current screen via ext.fdb.describe.

Never throws; all error conditions are represented as sealed result cases.

Implementation

Future<DescribeResult> describeScreen(DescribeInput _) async {
  try {
    final isolateId = await checkFdbHelper();
    if (isolateId == null) return const DescribeNoFdbHelper();

    final result = await fdbDescribe(isolateId);

    if (result.snapshot == null) return const DescribeUnexpectedResponse();

    if (result.error != null) return DescribeRelayedError(result.error!);

    return DescribeSuccess(result.snapshot!);
  } on AppDiedException catch (e) {
    return DescribeAppDied(logLines: e.logLines, reason: e.reason);
  } catch (e) {
    return DescribeError(e.toString());
  }
}