Skip to content
Snippets Groups Projects
settings_global_cubit.dart 4.32 KiB
Newer Older
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;
  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,
  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,