import 'package:flutter/material.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; import 'package:midisynth/config/default_activity_settings.dart'; import 'package:midisynth/models/settings/settings_activity.dart'; part 'settings_activity_state.dart'; class ActivitySettingsCubit extends HydratedCubit<ActivitySettingsState> { ActivitySettingsCubit() : super(ActivitySettingsState(settings: ActivitySettings.createDefault())); void setValues({ String? sequenceLength, }) { emit( ActivitySettingsState( settings: ActivitySettings( sequenceLength: sequenceLength ?? state.settings.sequenceLength, ), ), ); } String getParameterValue(String code) { switch (code) { case DefaultActivitySettings.parameterCodeSequenceLength: return ActivitySettings.getSequenceLengthValueFromUnsafe( state.settings.sequenceLength); } return ''; } void setParameterValue(String code, String value) { final String sequenceLength = code == DefaultActivitySettings.parameterCodeSequenceLength ? value : getParameterValue(DefaultActivitySettings.parameterCodeSequenceLength); setValues( sequenceLength: sequenceLength, ); } @override ActivitySettingsState? fromJson(Map<String, dynamic> json) { final String sequenceLength = json[DefaultActivitySettings.parameterCodeSequenceLength] as String; return ActivitySettingsState( settings: ActivitySettings( sequenceLength: sequenceLength, ), ); } @override Map<String, dynamic>? toJson(ActivitySettingsState state) { return <String, dynamic>{ DefaultActivitySettings.parameterCodeSequenceLength: state.settings.sequenceLength, }; } }