import 'package:flutter/material.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; part 'settings_activity_state.dart'; class ActivitySettingsCubit extends HydratedCubit<ActivitySettingsState> { final ApplicationConfigDefinition appConfig; ActivitySettingsCubit({ required this.appConfig, }) : super( ActivitySettingsState( settings: ActivitySettings.createDefault( appConfig: appConfig, ), ), ); void setValues({ Map<String, String>? values, }) { emit( ActivitySettingsState( settings: ActivitySettings( appConfig: appConfig, values: values ?? state.settings.values, ), ), ); } String get(String code) { return state.settings.get(code); } void set(String code, String value) { Map<String, String> values = state.settings.values; values[code] = value; setValues( values: values, ); } @override ActivitySettingsState? fromJson(Map<String, dynamic> json) { Map<String, String> values = {}; json.forEach((key, value) { values[key] = value as String; }); return ActivitySettingsState( settings: ActivitySettings( appConfig: appConfig, values: values, ), ); } @override Map<String, dynamic>? toJson(ActivitySettingsState state) { return state.settings.values; } }