Skip to content
Snippets Groups Projects

Resolve "Add ActivityParameters widgets"

Merged Benoît Harrault requested to merge 4-add-activityparameters-widgets into master
8 files
+ 463
1
Compare changes
  • Side-by-side
  • Inline

Files

import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
class ActivitySettings {
final Map<String, String> values;
final ApplicationConfigDefinition appConfig;
ActivitySettings({
required this.appConfig,
required this.values,
});
factory ActivitySettings.createDefault({
required ApplicationConfigDefinition appConfig,
}) {
Map<String, String> values = {};
for (var setting in appConfig.activitySettings) {
values[setting.code] = setting.defaultValue;
}
return ActivitySettings(
appConfig: appConfig,
values: values,
);
}
String get(String code) {
if (values.keys.contains(code)) {
if (appConfig.getFromCode(code).allowedValues.contains(values[code])) {
return values[code] ?? appConfig.getFromCode(code).defaultValue;
}
}
return appConfig.getFromCode(code).defaultValue;
}
int getAsInt(String parameterCode) {
final ApplicationSettingsParameter parameter = appConfig.getFromCode(parameterCode);
if (values.keys.contains(parameterCode)) {
if (parameter.allowedValues.contains(values[parameterCode])) {
if (parameter.intValueGetter != null) {
return parameter.intValueGetter!(get(parameterCode));
} else {
return int.parse(get(parameterCode));
}
}
}
if (parameter.intValueGetter != null) {
return parameter.intValueGetter!(parameter.defaultValue);
} else {
return int.parse(parameter.defaultValue);
}
}
void dump() {
printlog('$ActivitySettings:');
values.forEach((code, value) {
printlog(' $code: $value');
});
printlog('');
}
@override
String toString() {
return '$ActivitySettings(${toJson()})';
}
Map<String, dynamic>? toJson() {
return values;
}
}
Loading