Select Git revision
settings_global_cubit.dart
-
Benoît Harrault authoredBenoît Harrault authored
settings_global_cubit.dart 1.99 KiB
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:jeweled/models/settings_global.dart';
import 'package:jeweled/utils/tools.dart';
part 'settings_global_state.dart';
class GlobalSettingsCubit extends HydratedCubit<GlobalSettingsState> {
GlobalSettingsCubit() : super(GlobalSettingsState(settings: GlobalSettings.createDefault()));
void setValues({
int? colorsTheme,
int? graphicTheme,
}) {
emit(
GlobalSettingsState(
settings: GlobalSettings(
colorsTheme: colorsTheme ?? state.settings.colorsTheme,
graphicTheme: graphicTheme ?? state.settings.graphicTheme,
),
),
);
}
int getParameterValue(String code) {
switch (code) {
case 'colorsTheme':
return GlobalSettings.getColorsThemeValueFromUnsafe(state.settings.colorsTheme);
case 'graphicTheme':
return GlobalSettings.getGraphicThemeValueFromUnsafe(state.settings.graphicTheme);
}
return 0;
}
void setParameterValue(String code, int value) {
printlog('GlobalSettingsCubit.setParameterValue');
printlog('code: $code / value: $value');
int colorsTheme = code == 'colorsTheme' ? value : getParameterValue('colorsTheme');
int graphicTheme = code == 'graphicTheme' ? value : getParameterValue('graphicTheme');
setValues(
colorsTheme: colorsTheme,
graphicTheme: graphicTheme,
);
}
@override
GlobalSettingsState? fromJson(Map<String, dynamic> json) {
int colorsTheme = json['colorsTheme'] as int;
int graphicTheme = json['graphicTheme'] as int;
return GlobalSettingsState(
settings: GlobalSettings(
colorsTheme: colorsTheme,
graphicTheme: graphicTheme,
),
);
}
@override
Map<String, dynamic>? toJson(GlobalSettingsState state) {
return <String, dynamic>{
'colorsTheme': state.settings.colorsTheme,
'graphicTheme': state.settings.graphicTheme,
};
}
}