Skip to content
Snippets Groups Projects
settings_global_cubit.dart 4.35 KiB
Newer Older
  • Learn to ignore specific revisions
  • import 'package:equatable/equatable.dart';
    import 'package:flutter/material.dart';
    import 'package:hydrated_bloc/hydrated_bloc.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,