fromDynamic static method

JsonSemanticsBuilder? fromDynamic(
  1. dynamic map, {
  2. JsonWidgetRegistry? registry,
})

Builds the builder from a Map-like dynamic structure. This expects the JSON format to be of the following structure:

{
  "attributedDecreasedValue": <AttributedString>,
  "attributedHint": <AttributedString>,
  "attributedIncreasedValue": <AttributedString>,
  "attributedLabel": <AttributedString>,
  "attributedValue": <AttributedString>,
  "customSemanticsActions": <Map<CustomSemanticsAction, VoidCallback>>,
  "button": <bool>,
  "checked": <bool>,
  "container": <bool>,
  "currentValueLength": <int>,
  "decreasedValue": <String>,
  "enabled": <bool>,
  "excludeSemantics": <bool>,
  "explicitChildNodes": <bool>,
  "focusable": <bool>,
  "focused": <bool>,
  "header": <bool>,
  "hidden": <bool>,
  "hint": <String>>,
  "image": <bool>,
  "inMutuallyExclusiveGroup": <bool>
  "increasedValue": <String>,
  "keyboardKey": <bool>,
  "label": <String>,
  "link": <bool>,
  "liveRegion": <bool>,
  "maxValueLength": <int>,
  "multiline": <bool>,
  "namesRoute": <bool>,
  "obscured": <bool>,
  "onCopy": <VoidCallback>,
  "onCut": <VoidCallback>,
  "onDecrease": <VoidCallback>,
  "onDidGainAccessibilityFocus": <VoidCallback>,
  "onDidLoseAccessibilityFocus": <VoidCallback>,
  "onDismiss": <VoidCallback>,
  "onIncrease": <VoidCallback>,
  "onLongPress": <VoidCallback>,
  "onLongPressHint": <String>,
  "onMoveCursorBackwardByCharacter": <ValueChaned<bool>>,
  "onMoveCursorForwardByCharacter": <ValueChanged<bool>>,
  "onPaste": <VoidCallback>,
  "onScrollDown": <VoidCallback>,
  "onScrollLeft": <VoidCallback>,
  "onScrollRight": <VoidCallback>,
  "onScrollUp": <VoidCallback>,
  "onSetSelection": <ValueChanged<TextSelection>>,
  "onSetText": <ValueChanged<String>>,
  "onTap": <VoidCallback>,
  "onTapHint": <String>,
  "readOnly": <bool>,
  "scopesRoute": <bool>,
  "selected": <bool>,
  "slider": <bool>,
  "sortKey": <OrdinalSortKey>,
  "tagForChildren": <SemanticsTag>,
  "textDirection": <TextDirection>,
  "textField": <bool>,
  "toggled": <bool>,
  "value": <String>
}

Implementation

static JsonSemanticsBuilder? fromDynamic(
  dynamic map, {
  JsonWidgetRegistry? registry,
}) {
  JsonSemanticsBuilder? result;

  if (map != null) {
    result = JsonSemanticsBuilder(
      button:
          map['button'] == null ? null : JsonClass.parseBool(map['button']),
      checked:
          map['checked'] == null ? null : JsonClass.parseBool(map['checked']),
      container: JsonClass.parseBool(map['container']),
      currentValueLength: JsonClass.parseInt(map['currentValueLength']),
      decreasedValue: map['decreasedValue'],
      enabled:
          map['enabled'] == null ? null : JsonClass.parseBool(map['enabled']),
      excludeSemantics: JsonClass.parseBool(map['excludeSemantics']),
      explicitChildNodes: JsonClass.parseBool(map['explicitChildNodes']),
      focusable: map['focusable'] == null
          ? null
          : JsonClass.parseBool(map['focusable']),
      focused:
          map['focused'] == null ? null : JsonClass.parseBool(map['focused']),
      header:
          map['header'] == null ? null : JsonClass.parseBool(map['header']),
      hidden:
          map['hidden'] == null ? null : JsonClass.parseBool(map['hidden']),
      hint: map['hint'],
      image: map['image'] == null ? null : JsonClass.parseBool(map['image']),
      inMutuallyExclusiveGroup:
          JsonClass.parseBool(map['inMutuallyExclusiveGroup']),
      increasedValue: map['increasedValue'],
      keyboardKey: map['keyboardKey'] == null
          ? null
          : JsonClass.parseBool(map['keyboardKey']),
      label: map['label'],
      link: map['link'] == null ? null : JsonClass.parseBool(map['link']),
      liveRegion: map['liveRegion'] == null
          ? null
          : JsonClass.parseBool(map['liveRegion']),
      maxValueLength: map['maxValueLength'] == null
          ? null
          : JsonClass.parseInt(map['maxValueLength']),
      multiline: map['multiline'] == null
          ? null
          : JsonClass.parseBool(map['multiline']),
      namesRoute: map['namesRoute'] == null
          ? null
          : JsonClass.parseBool(map['namesRoute']),
      obscured: map['obscured'] == null
          ? null
          : JsonClass.parseBool(map['obscured']),
      onCopy: map['onCopy'],
      onCut: map['onCut'],
      onDecrease: map['onDecrease'],
      onDidGainAccessibilityFocus: map['onDidGainAccessibilityFocus'],
      onDidLoseAccessibilityFocus: map['onDidLoseAccessibilityFocus'],
      onDismiss: map['onDismiss'],
      onIncrease: map['onIncrease'],
      onLongPress: map['onLongPress'],
      onLongPressHint: map['onLongPressHint'],
      onMoveCursorBackwardByCharacter: map['onMoveCursorBackwardByCharacter'],
      onMoveCursorForwardByCharacter: map['onMoveCursorForwardByCharacter'],
      onPaste: map['onPaste'],
      onScrollDown: map['onScrollDown'],
      onScrollLeft: map['onScrollLeft'],
      onScrollRight: map['onScrollRight'],
      onScrollUp: map['onScrollUp'],
      onSetSelection: map['onSetSelection'],
      onSetText: map['onSetText'],
      onTap: map['onTap'],
      onTapHint: map['onTapHint'],
      readOnly: map['readOnly'] == null
          ? null
          : JsonClass.parseBool(map['readOnly']),
      scopesRoute: map['scopesRoute'] == null
          ? null
          : JsonClass.parseBool(map['scopesRoute']),
      selected: map['selected'] == null
          ? null
          : JsonClass.parseBool(map['selected']),
      slider:
          map['slider'] == null ? null : JsonClass.parseBool(map['slider']),
      sortKey: ThemeDecoder.decodeOrdinalSortKey(map['sortKey']),
      tagForChildren: ThemeDecoder.decodeSemanticsTag(map['tagForChildren']),
      textDirection: ThemeDecoder.decodeTextDirection(map['textDirection']),
      textField: map['textField'] == null
          ? null
          : JsonClass.parseBool(map['textField']),
      toggled:
          map['toggled'] == null ? null : JsonClass.parseBool(map['toggled']),
      value: map['value'],
    );
  }

  return result;
}