produceWidget static method

Widget produceWidget(
  1. Trait trait, {
  2. Color iconColor = WidgetStyleConstants.deviceDetailIconColorActive,
  3. Color textColor = WidgetStyleConstants.deviceDetailIconColorActive,
})

Implementation

static Widget produceWidget(
  Trait trait, {
  Color iconColor = WidgetStyleConstants.deviceDetailIconColorActive,
  Color textColor = WidgetStyleConstants.deviceDetailIconColorActive,
}) {
  switch (trait.runtimeType) {
    case LockTrait:
      return Consumer<LockProvider>(builder: (_, lockProvider, __) {
        return LockWidget(lockProvider,
            iconColor: iconColor, textColor: textColor);
      });
    case PowerTrait:
      return Consumer<PowerTraitProvider>(builder: (_, powerProvider, __) {
        return PowerWidget(powerProvider,
            iconColor: iconColor, textColor: textColor);
      });
    case BatteryLevelTrait:
      return Consumer<BatteryLevelProvider>(
          builder: (_, batteryLevelProvider, __) {
        return BatteryWidget(batteryLevelProvider,
            iconColor: iconColor, textColor: textColor);
      });
    case ThermostatTrait:
      return Consumer<ThermostatProvider>(
        builder: (_, thermostatProvider, __) {
          return ThermostatWidget(
            thermostatProvider,
            textColor: textColor,
          );
        },
      );
    case BrightnessTrait:
      return Consumer<BrightnessProvider>(
        builder: (_, brightnessProvider, __) {
          return BrightnessWidget(brightnessProvider, textColor: textColor);
        },
      );
    case ColorTrait:
      return Consumer<ColorProvider>(builder: (_, colorProvider, __) {
        return ColorWidget(colorProvider, textColor: textColor);
      });
    case ColorTemperatureTrait:
      return Consumer<ColorTemperatureProvider>(
        builder: (_, ColorTemperatureProvider, __) {
          return ColorTemperatureWidget(ColorTemperatureProvider,
              textColor: textColor);
        },
      );
    case PinCodeTrait:
      return Consumer<PinCodeProvider>(
        builder: (_, PinCodeProvider, __) {
          return PinCodeWidget(PinCodeProvider, textColor: textColor);
        },
      );
    default:
      return UnknownWidget(name: trait.name, iconColor: iconColor);
  }
}