ImportStateHistory.fromMap constructor
ImportStateHistory.fromMap(
- Map map, {
- ImportEditorConfigs configs = const ImportEditorConfigs(),
Creates an ImportStateHistory instance from a map representation.
Implementation
factory ImportStateHistory.fromMap(
Map map, {
ImportEditorConfigs configs = const ImportEditorConfigs(),
}) {
List<EditorStateHistory> stateHistory = [];
List<Uint8List> stickers = [];
String version = map['version'] ?? ExportImportVersion.version_1_0_0;
for (var sticker in List.from(map['stickers'] ?? [])) {
stickers.add(Uint8List.fromList(List.from(sticker)));
}
for (var el in List.from(map['history'] ?? [])) {
double blur = 0;
List<Layer> layers = [];
if (el['blur'] != null) {
blur = double.tryParse((el['blur'] ?? '0').toString()) ?? 0;
}
for (var layer in List.from(el['layers'] ?? [])) {
layers.add(Layer.fromMap(layer, stickers));
}
List<List<double>> filters = [];
if (version == ExportImportVersion.version_1_0_0) {
for (var el in List.from(el['filters'] ?? [])) {
List<List<double>> filterMatrix = List.from(el['filters'] ?? []);
double opacity =
double.tryParse((el['opacity'] ?? '1').toString()) ?? 1;
if (opacity != 1) {
filterMatrix.add(ColorFilterAddons.opacity(opacity));
}
filters.addAll(filterMatrix);
}
} else {
List<List<double>> filterList = [];
for (var el in List.from(el['filters'] ?? [])) {
List<double> filtersRaw = [];
for (var raw in List.from(el)) {
filtersRaw.add(raw);
}
filterList.add(filtersRaw);
}
filters = filterList;
}
stateHistory.add(
EditorStateHistory(
blur: blur,
layers: layers,
filters: filters,
transformConfigs:
el['transform'] != null && Map.from(el['transform']).isNotEmpty
? TransformConfigs.fromMap(el['transform'])
: TransformConfigs.empty(),
),
);
}
return ImportStateHistory._(
editorPosition: map['position'],
imgSize:
Size(map['imgSize']?['width'] ?? 0, map['imgSize']?['height'] ?? 0),
stateHistory: stateHistory,
configs: configs,
version: version,
);
}