import 'package:flutter/material.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; import 'package:reversi/config/default_global_settings.dart'; import 'package:reversi/models/settings/settings_global.dart'; part 'settings_global_state.dart'; class GlobalSettingsCubit extends HydratedCubit<GlobalSettingsState> { GlobalSettingsCubit() : super(GlobalSettingsState(settings: GlobalSettings.createDefault())); void setValues({ String? skin, }) { emit( GlobalSettingsState( settings: GlobalSettings( skin: skin ?? state.settings.skin, ), ), ); } String getParameterValue(String code) { switch (code) { case DefaultGlobalSettings.parameterCodeSkin: return GlobalSettings.getSkinValueFromUnsafe(state.settings.skin); } return ''; } void setParameterValue(String code, String value) { final String skin = (code == DefaultGlobalSettings.parameterCodeSkin) ? value : getParameterValue(DefaultGlobalSettings.parameterCodeSkin); setValues( skin: skin, ); } @override GlobalSettingsState? fromJson(Map<String, dynamic> json) { final String skin = json[DefaultGlobalSettings.parameterCodeSkin] as String; return GlobalSettingsState( settings: GlobalSettings( skin: skin, ), ); } @override Map<String, dynamic>? toJson(GlobalSettingsState state) { return <String, dynamic>{ DefaultGlobalSettings.parameterCodeSkin: state.settings.skin, }; } }