import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; import 'package:momomotus/config/default_activity_settings.dart'; class ActivitySettings { final String lang; final String length; final String level; ActivitySettings({ required this.lang, required this.length, required this.level, }); static String getLangValueFromUnsafe(String lang) { if (DefaultActivitySettings.allowedLangValues.contains(lang)) { return lang; } return DefaultActivitySettings.defaultLangValue; } static String getLengthValueFromUnsafe(String length) { if (DefaultActivitySettings.allowedLengthValues.contains(length)) { return length; } return DefaultActivitySettings.defaultLengthValue; } static String getLevelValueFromUnsafe(String level) { if (DefaultActivitySettings.allowedLevelValues.contains(level)) { return level; } return DefaultActivitySettings.defaultLevelValue; } factory ActivitySettings.createDefault() { return ActivitySettings( lang: DefaultActivitySettings.defaultLangValue, length: DefaultActivitySettings.defaultLengthValue, level: DefaultActivitySettings.defaultLevelValue, ); } void dump() { printlog('$ActivitySettings:'); printlog(' ${DefaultActivitySettings.parameterCodeLang}: $lang'); printlog(' ${DefaultActivitySettings.parameterCodeLength}: $length'); printlog(' ${DefaultActivitySettings.parameterCodeLevel}: $level'); printlog(''); } @override String toString() { return '$ActivitySettings(${toJson()})'; } Map<String, dynamic>? toJson() { return <String, dynamic>{ DefaultActivitySettings.parameterCodeLang: lang, DefaultActivitySettings.parameterCodeLength: length, DefaultActivitySettings.parameterCodeLevel: level, }; } }