decodeSystemUiOverlayStyle static method

SystemUiOverlayStyle? decodeSystemUiOverlayStyle(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes a value to a SystemUiOverlayStyle. Supported values are:

  • dark
  • light

Implementation

static SystemUiOverlayStyle? decodeSystemUiOverlayStyle(
  dynamic value, {
  bool validate = true,
}) {
  SystemUiOverlayStyle? result;
  if (value is SystemUiOverlayStyle) {
    result = value;
  } else if (value is Map) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/system_ui_overlay_style',
      value: value,
      validate: validate,
    ));

    result = SystemUiOverlayStyle(
      statusBarBrightness: decodeBrightness(
        value['statusBarBrightness'],
        validate: false,
      ),
      statusBarColor: decodeColor(
        value['statusBarColor'],
        validate: false,
      ),
      statusBarIconBrightness: decodeBrightness(
        value['statusBarIconBrightness'],
        validate: false,
      ),
      systemNavigationBarColor: decodeColor(
        value['systemNavigationBarColor'],
        validate: false,
      ),
      systemNavigationBarContrastEnforced: JsonClass.maybeParseBool(
        value['systemNavigationBarContrastEnforced'],
      ),
      systemNavigationBarDividerColor: decodeColor(
        value['systemNavigationBarDividerColor'],
        validate: false,
      ),
      systemNavigationBarIconBrightness: decodeBrightness(
        value['systemNavigationBarIconBrightness'],
        validate: false,
      ),
      systemStatusBarContrastEnforced: JsonClass.maybeParseBool(
        value['systemStatusBarContrastEnforced'],
      ),
    );
  } else {
    _checkSupported(
      'SystemUiOverlayStyle',
      [
        'dark',
        'light',
      ],
      value,
    );

    if (value != null) {
      assert(SchemaValidator.validate(
        schemaId: '$_baseSchemaUrl/system_ui_overlay_style',
        value: value,
        validate: validate,
      ));
      switch (value) {
        case 'dark':
          result = SystemUiOverlayStyle.dark;
          break;

        case 'light':
          result = SystemUiOverlayStyle.light;
          break;
      }
    }
  }

  return result;
}