readAsBackground method

Theme readAsBackground(
  1. Map<String, dynamic> json, {
  2. required bool layerPredicate(
    1. Map<String, dynamic> layer
    ),
})

reads a theme for use as a background theme

Implementation

Theme readAsBackground(Map<String, dynamic> json,
    {required bool Function(Map<String, dynamic> layer) layerPredicate}) {
  final backgroundTheme = <String, dynamic>{};
  for (final entry in json.entries) {
    backgroundTheme[entry.key] = entry.value;
  }
  final layers = json['layers'] as List<dynamic>?;
  final newLayers = [];
  layers?.forEach((layer) {
    if (layer is Map<String, dynamic> && layerPredicate(layer)) {
      newLayers.add(layer);
    }
  });
  backgroundTheme['id'] = (json['id'] ?? 'default') + '_bg';
  backgroundTheme['layers'] = newLayers;
  return read(backgroundTheme);
}