mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-22 23:40:41 +00:00
56 lines
1.5 KiB
Dart
56 lines
1.5 KiB
Dart
|
import 'dart:convert';
|
||
|
|
||
|
class ScreenshotArgs {
|
||
|
final String name;
|
||
|
final String deviceName;
|
||
|
final String platformFolder;
|
||
|
final ({int r, int g, int b, int a}) backgroundColor;
|
||
|
final bool isDark;
|
||
|
|
||
|
const ScreenshotArgs({
|
||
|
required this.name,
|
||
|
required this.deviceName,
|
||
|
required this.platformFolder,
|
||
|
required this.backgroundColor,
|
||
|
required this.isDark,
|
||
|
});
|
||
|
|
||
|
String toPath() => 'screenshots/generated/$platformFolder/$deviceName/$name.png';
|
||
|
|
||
|
@override
|
||
|
String toString() => jsonEncode(_toJson());
|
||
|
|
||
|
factory ScreenshotArgs.fromString(String data) => ScreenshotArgs._fromJson(jsonDecode(data) as Map<String, dynamic>);
|
||
|
|
||
|
factory ScreenshotArgs._fromJson(Map<String, dynamic> data) {
|
||
|
final colorChannels = data['backgroundColor'] as List;
|
||
|
return ScreenshotArgs(
|
||
|
name: data['name'] as String,
|
||
|
deviceName: data['deviceName'] as String,
|
||
|
platformFolder: data['platformFolder'] as String,
|
||
|
backgroundColor: (
|
||
|
r: colorChannels[0] as int,
|
||
|
g: colorChannels[1] as int,
|
||
|
b: colorChannels[2] as int,
|
||
|
a: colorChannels[3] as int,
|
||
|
),
|
||
|
isDark: data['isDark'] as bool,
|
||
|
);
|
||
|
}
|
||
|
|
||
|
Map<String, dynamic> _toJson() {
|
||
|
return {
|
||
|
"name": name,
|
||
|
"deviceName": deviceName,
|
||
|
"platformFolder": platformFolder,
|
||
|
"backgroundColor": [
|
||
|
backgroundColor.r,
|
||
|
backgroundColor.g,
|
||
|
backgroundColor.b,
|
||
|
backgroundColor.a,
|
||
|
],
|
||
|
"isDark": isDark,
|
||
|
};
|
||
|
}
|
||
|
}
|