import 'package:flutter/material.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; import 'package:scrobbles/config/default_global_settings.dart'; part 'settings_global_state.dart'; class GlobalSettingsCubit extends HydratedCubit<GlobalSettingsState> { GlobalSettingsCubit() : super(const GlobalSettingsState()); void setValues({ String? username, String? securityToken, int? discoveriesDaysCount, int? distributionDaysCount, int? statisticsRecentDaysCount, int? timelineDaysCount, int? topArtistsDaysCount, int? newArtistsCount, int? newTracksCount, }) { emit(GlobalSettingsState( username: username ?? state.username, securityToken: securityToken ?? state.securityToken, discoveriesDaysCount: discoveriesDaysCount ?? state.discoveriesDaysCount, distributionDaysCount: distributionDaysCount ?? state.distributionDaysCount, statisticsRecentDaysCount: statisticsRecentDaysCount ?? state.statisticsRecentDaysCount, timelineDaysCount: timelineDaysCount ?? state.timelineDaysCount, topArtistsDaysCount: topArtistsDaysCount ?? state.topArtistsDaysCount, newArtistsCount: newArtistsCount ?? state.newArtistsCount, newTracksCount: newTracksCount ?? state.newTracksCount, )); } String getUsername() { return state.username ?? ''; } String getSecurityToken() { return state.securityToken ?? ''; } int getDiscoveriesDaysCount() { return state.discoveriesDaysCount ?? DefaultGlobalSettings.defaultDiscoveriesDaysCount; } int getDistributionDaysCount() { return state.distributionDaysCount ?? DefaultGlobalSettings.defaultDistributionDaysCount; } int getStatisticsRecentDaysCount() { return state.statisticsRecentDaysCount ?? DefaultGlobalSettings.defaultStatisticsRecentDaysCount; } int getTimelineDaysCount() { return state.timelineDaysCount ?? DefaultGlobalSettings.defaultTimelineDaysCount; } int getTopArtistsDaysCount() { return state.topArtistsDaysCount ?? DefaultGlobalSettings.defaultTopArtistsDaysCount; } int getNewArtistsCount() { return state.newArtistsCount ?? DefaultGlobalSettings.defaultNewArtistsCount; } int getNewTracksCount() { return state.newTracksCount ?? DefaultGlobalSettings.defaultNewTracksCount; } @override GlobalSettingsState? fromJson(Map<String, dynamic> json) { String username = json['username'] as String; String securityToken = json['securityToken'] as String; int discoveriesDaysCount = json['discoveriesDaysCount'] as int; int distributionDaysCount = json['distributionDaysCount'] as int; int statisticsRecentDaysCount = json['statisticsRecentDaysCount'] as int; int timelineDaysCount = json['timelineDaysCount'] as int; int topArtistsDaysCount = json['topArtistsDaysCount'] as int; int newArtistsCount = json['newArtistsCount'] as int; int newTracksCount = json['newTracksCount'] as int; return GlobalSettingsState( username: username, securityToken: securityToken, discoveriesDaysCount: discoveriesDaysCount, distributionDaysCount: distributionDaysCount, statisticsRecentDaysCount: statisticsRecentDaysCount, timelineDaysCount: timelineDaysCount, topArtistsDaysCount: topArtistsDaysCount, newArtistsCount: newArtistsCount, newTracksCount: newTracksCount, ); } @override Map<String, dynamic>? toJson(GlobalSettingsState state) { return <String, dynamic>{ 'username': state.username ?? '', 'securityToken': state.securityToken ?? '', 'discoveriesDaysCount': state.discoveriesDaysCount ?? DefaultGlobalSettings.defaultDiscoveriesDaysCount, 'distributionDaysCount': state.distributionDaysCount ?? DefaultGlobalSettings.defaultDistributionDaysCount, 'statisticsRecentDaysCount': state.statisticsRecentDaysCount ?? DefaultGlobalSettings.defaultStatisticsRecentDaysCount, 'timelineDaysCount': state.timelineDaysCount ?? DefaultGlobalSettings.defaultTimelineDaysCount, 'topArtistsDaysCount': state.topArtistsDaysCount ?? DefaultGlobalSettings.defaultTopArtistsDaysCount, 'newArtistsCount': state.newArtistsCount ?? DefaultGlobalSettings.defaultNewArtistsCount, 'newTracksCount': state.newTracksCount ?? DefaultGlobalSettings.defaultNewTracksCount, }; } }