Select Git revision
settings_cubit.dart 1.10 KiB
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:petitbac/config/default_settings.dart';
part 'settings_state.dart';
class SettingsCubit extends HydratedCubit<SettingsState> {
SettingsCubit() : super(const SettingsState());
Object getSetting(String key, [String? defaultValue]) {
if (state.values.keys.contains(key)) {
return state.values[key] ?? defaultValue ?? '';
}
return defaultValue ?? '';
}
int getTimerValue() {
return state.timerValue ?? DefaultSettings.defaultTimerValue;
}
void setValues({
int? timerValue,
}) {
emit(SettingsState(
timerValue: timerValue ?? state.timerValue,
));
}
@override
SettingsState? fromJson(Map<String, dynamic> json) {
int timerValue = json['timerValue'] as int;
return SettingsState(
timerValue: timerValue,
);
}
@override
Map<String, dynamic>? toJson(SettingsState state) {
return <String, dynamic>{
'timerValue': state.timerValue ?? DefaultSettings.defaultTimerValue,
};
}
}