decodeTimePickerThemeData static method

TimePickerThemeData? decodeTimePickerThemeData(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the given value to a TimePickerThemeData. This expects the value to have the following structure:

{
  "backgroundColor": "<Color>",
  "cancelButtonStyle": "<ButtonStyle>",
  "confirmButtonStyle": "<ButtonStyle>",
  "dayPeriodBorderSide": "<BorderSide>",
  "dayPeriodColor": "<Color>",
  "dayPeriodShape": "<ShapeBorder>",
  "dayPeriodTextColor": "<Color>",
  "dayPeriodTextStyle": "<TextStyle>",
  "dialBackgroundColor": "<Color>",
  "dialHandColor": "<Color>",
  "dialTextColor": "<Color>",
  "dialTextStyle": "<TextStyle>",
  "elevation": "<double>",
  "entryModeIconColor": "<Color>",
  "helpTextStyle": "<TextStyle>",
  "hourMinuteColor": "<Color>",
  "hourMinuteShape": "<ShapeBorder>",
  "hourMinuteTextColor": "<Color>",
  "hourMinuteTextStyle": "<TextStyle>",
  "inputDecorationTheme": "<InputDecorationTheme>",
  "padding": "<EdgeInsetsGeometry>",
  "shape": "<ShapeBorder>"
}

See also:

Implementation

static TimePickerThemeData? decodeTimePickerThemeData(
  dynamic value, {
  bool validate = true,
}) {
  TimePickerThemeData? result;

  if (value is TimePickerThemeData) {
    result = value;
  } else if (value != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/time_picker_theme_data',
      value: value,
      validate: validate,
    ));

    result = TimePickerThemeData(
      backgroundColor: decodeColor(
        value['backgroundColor'],
        validate: false,
      ),
      cancelButtonStyle: decodeButtonStyle(
        value['cancelButtonStyle'],
        validate: false,
      ),
      confirmButtonStyle: decodeButtonStyle(
        value['confirmButtonStyle'],
        validate: false,
      ),
      dayPeriodBorderSide: decodeBorderSide(
        value['dayPeriodBorderSide'],
        validate: false,
      ),
      dayPeriodColor: decodeWidgetStateColor(
        value['dayPeriodColor'],
        validate: false,
      ),
      dayPeriodShape: value['dayPeriodShape'] == null
          ? null
          : decodeShapeBorder(
              value['dayPeriodShape'],
              validate: false,
            ) as OutlinedBorder?,
      dayPeriodTextColor: decodeColor(
        value['dayPeriodTextColor'],
        validate: false,
      ),
      dayPeriodTextStyle: decodeTextStyle(
        value['dayPeriodTextStyle'],
        validate: false,
      ),
      dialBackgroundColor: decodeColor(
        value['dialBackgroundColor'],
        validate: false,
      ),
      dialHandColor: decodeColor(
        value['dialHandColor'],
        validate: false,
      ),
      dialTextColor: decodeColor(
        value['dialTextColor'],
        validate: false,
      ),
      dialTextStyle: decodeTextStyle(
        value['dialTextStyle'],
        validate: false,
      ),
      elevation: JsonClass.maybeParseDouble(value['elevation']),
      entryModeIconColor: decodeColor(
        value['entryModeIconColor'],
        validate: false,
      ),
      helpTextStyle: decodeTextStyle(
        value['helpTextStyle'],
        validate: false,
      ),
      hourMinuteColor: decodeColor(
        value['hourMinuteColor'],
        validate: false,
      ),
      hourMinuteShape: decodeShapeBorder(
        value['hourMinuteShape'],
        validate: false,
      ),
      hourMinuteTextColor: decodeColor(
        value['hourMinuteTextColor'],
        validate: false,
      ),
      hourMinuteTextStyle: decodeTextStyle(
        value['hourMinuteTextStyle'],
        validate: false,
      ),
      inputDecorationTheme: decodeInputDecorationTheme(
        value['inputDecorationTheme'],
        validate: false,
      ),
      padding: decodeEdgeInsetsGeometry(value['padding'], validate: false),
      shape: decodeShapeBorder(
        value['shape'],
        validate: false,
      ),
    );
  }

  return result;
}