decodeMaterialType static method

MaterialType? decodeMaterialType(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the value to a MaterialType. Supported values are:

  • button
  • canvas
  • card
  • circle
  • transparency

Implementation

static MaterialType? decodeMaterialType(
  dynamic value, {
  bool validate = true,
}) {
  MaterialType? result;
  if (value is MaterialType) {
    result = value;
  } else {
    _checkSupported(
      'MaterialType',
      [
        'button',
        'canvas',
        'card',
        'circle',
        'transparency',
      ],
      value,
    );

    if (value != null) {
      assert(SchemaValidator.validate(
        schemaId: '$_baseSchemaUrl/material_type',
        value: value,
        validate: validate,
      ));
      switch (value) {
        case 'button':
          result = MaterialType.button;
          break;
        case 'canvas':
          result = MaterialType.canvas;
          break;
        case 'card':
          result = MaterialType.card;
          break;
        case 'circle':
          result = MaterialType.circle;
          break;
        case 'transparency':
          result = MaterialType.transparency;
          break;
      }
    }
  }

  return result;
}