import 'package:equatable/equatable.dart'; import 'package:flutter/material.dart'; import 'package:hydrated_bloc/hydrated_bloc.dart'; part 'settings_state.dart'; class SettingsCubit extends HydratedCubit<SettingsState> { SettingsCubit() : super(const SettingsState()); String getSetting(String key, [String? defaultValue]) { if (state.values.keys.contains(key)) { return state.values[key] ?? defaultValue ?? ''; } return defaultValue ?? ''; } void setValues({ String? apiUrl, String? securityToken, }) { emit(SettingsState( apiUrl: apiUrl != null ? apiUrl : state.apiUrl, securityToken: securityToken != null ? securityToken : state.securityToken, )); } @override SettingsState? fromJson(Map<String, dynamic> json) { String apiUrl = json['apiUrl'] as String; String securityToken = json['securityToken'] as String; return SettingsState( apiUrl: apiUrl, securityToken: securityToken, ); } @override Map<String, String>? toJson(SettingsState state) { return <String, String>{ 'apiUrl': state.apiUrl ?? '', 'securityToken': state.securityToken ?? '', }; } }