Select Git revision
timeline_chart_counts.dart
-
Benoît Harrault authoredBenoît Harrault authored
settings_game_cubit.dart 2.08 KiB
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:wordguessing/config/default_game_settings.dart';
import 'package:wordguessing/models/settings/settings_game.dart';
part 'settings_game_state.dart';
class GameSettingsCubit extends HydratedCubit<GameSettingsState> {
GameSettingsCubit() : super(GameSettingsState(settings: GameSettings.createDefault()));
void setValues({
String? gameType,
String? lang,
}) {
emit(
GameSettingsState(
settings: GameSettings(
gameType: gameType ?? state.settings.gameType,
lang: lang ?? state.settings.lang,
),
),
);
}
String getParameterValue(String code) {
switch (code) {
case DefaultGameSettings.parameterCodeGameType:
return GameSettings.getGameTypeValueFromUnsafe(state.settings.gameType);
case DefaultGameSettings.parameterCodeLangValue:
return GameSettings.getLangValueFromUnsafe(state.settings.lang);
}
return '';
}
void setParameterValue(String code, String value) {
final String gameType = code == DefaultGameSettings.parameterCodeGameType
? value
: getParameterValue(DefaultGameSettings.parameterCodeGameType);
final String lang = code == DefaultGameSettings.parameterCodeLangValue
? value
: getParameterValue(DefaultGameSettings.parameterCodeLangValue);
setValues(
gameType: gameType,
lang: lang,
);
}
@override
GameSettingsState? fromJson(Map<String, dynamic> json) {
final String gameType = json[DefaultGameSettings.parameterCodeGameType] as String;
final String lang = json[DefaultGameSettings.parameterCodeLangValue] as String;
return GameSettingsState(
settings: GameSettings(
gameType: gameType,
lang: lang,
),
);
}
@override
Map<String, dynamic>? toJson(GameSettingsState state) {
return <String, dynamic>{
DefaultGameSettings.parameterCodeGameType: state.settings.gameType,
DefaultGameSettings.parameterCodeLangValue: state.settings.lang,
};
}