Newer
Older
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:scrobbles/config/default_settings.dart';
part 'settings_state.dart';
class SettingsCubit extends HydratedCubit<SettingsState> {
SettingsCubit() : super(const SettingsState());
String getUsername() {
return state.username ?? '';
}
String getSecurityToken() {
return state.securityToken ?? '';
}
int getDiscoveriesDaysCount() {
return state.discoveriesDaysCount ?? DefaultSettings.defaultDiscoveriesDaysCount;
}
int getDistributionDaysCount() {
return state.distributionDaysCount ?? DefaultSettings.defaultDistributionDaysCount;
}
int getStatisticsRecentDaysCount() {
return state.statisticsRecentDaysCount ?? DefaultSettings.defaultStatisticsRecentDaysCount;
}
int getTimelineDaysCount() {
return state.timelineDaysCount ?? DefaultSettings.defaultTimelineDaysCount;
}
int getTopArtistsDaysCount() {
return state.topArtistsDaysCount ?? DefaultSettings.defaultTopArtistsDaysCount;
}
int getNewArtistsCount() {
return state.newArtistsCount ?? DefaultSettings.defaultNewArtistsCount;
}
int getNewTracksCount() {
return state.newTracksCount ?? DefaultSettings.defaultNewTracksCount;
}
void setValues({
String? username,
String? securityToken,
int? statisticsRecentDaysCount,
int? timelineDaysCount,
int? topArtistsDaysCount,
int? newArtistsCount,
int? newTracksCount,
}) {
emit(SettingsState(
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,
));
}
@override
SettingsState? 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 SettingsState(
username: username,
securityToken: securityToken,
discoveriesDaysCount: discoveriesDaysCount,
distributionDaysCount: distributionDaysCount,
statisticsRecentDaysCount: statisticsRecentDaysCount,
timelineDaysCount: timelineDaysCount,
topArtistsDaysCount: topArtistsDaysCount,
newArtistsCount: newArtistsCount,
newTracksCount: newTracksCount,
Map<String, dynamic>? toJson(SettingsState state) {
return <String, dynamic>{
'username': state.username ?? '',
'securityToken': state.securityToken ?? '',
'discoveriesDaysCount':
state.discoveriesDaysCount ?? DefaultSettings.defaultDiscoveriesDaysCount,
'distributionDaysCount':
state.distributionDaysCount ?? DefaultSettings.defaultDistributionDaysCount,
'statisticsRecentDaysCount':
state.statisticsRecentDaysCount ?? DefaultSettings.defaultStatisticsRecentDaysCount,
'timelineDaysCount': state.timelineDaysCount ?? DefaultSettings.defaultTimelineDaysCount,
'topArtistsDaysCount':
state.topArtistsDaysCount ?? DefaultSettings.defaultTopArtistsDaysCount,
'newArtistsCount': state.newArtistsCount ?? DefaultSettings.defaultNewArtistsCount,
'newTracksCount': state.newTracksCount ?? DefaultSettings.defaultNewTracksCount,