Skip to content
Snippets Groups Projects
settings_cubit.dart 3.9 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_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 getCountsByDayDaysCount() {
        return state.countsByDayDaysCount ?? DefaultSettings.defaultCountsByDayDaysCount;
      }
    
      int getCountsByHourDaysCount() {
        return state.countsByHourDaysCount ?? DefaultSettings.defaultCountsByHourDaysCount;
      }
    
      int getDiscoveriesDaysCount() {
        return state.discoveriesDaysCount ?? DefaultSettings.defaultDiscoveriesDaysCount;
      }
    
      int getStatisticsRecentDaysCount() {
        return state.statisticsRecentDaysCount ?? DefaultSettings.defaultStatisticsRecentDaysCount;
      }
    
      int getTimelineDaysCount() {
        return state.timelineDaysCount ?? DefaultSettings.defaultTimelineDaysCount;
      }
    
      int getTopArtistsDaysCount() {
        return state.topArtistsDaysCount ?? DefaultSettings.defaultTopArtistsDaysCount;
      }
    
    
      void setValues({
        String? username,
        String? securityToken,
    
        int? countsByDayDaysCount,
        int? countsByHourDaysCount,
        int? discoveriesDaysCount,
        int? statisticsRecentDaysCount,
        int? timelineDaysCount,
        int? topArtistsDaysCount,
    
      }) {
        emit(SettingsState(
    
          username: username ?? state.username,
          securityToken: securityToken ?? state.securityToken,
          countsByDayDaysCount: countsByDayDaysCount ?? state.countsByDayDaysCount,
          countsByHourDaysCount: countsByHourDaysCount ?? state.countsByHourDaysCount,
          discoveriesDaysCount: discoveriesDaysCount ?? state.discoveriesDaysCount,
          statisticsRecentDaysCount: statisticsRecentDaysCount ?? state.statisticsRecentDaysCount,
          timelineDaysCount: timelineDaysCount ?? state.timelineDaysCount,
          topArtistsDaysCount: topArtistsDaysCount ?? state.topArtistsDaysCount,
    
        ));
      }
    
      @override
      SettingsState? fromJson(Map<String, dynamic> json) {
        String username = json['username'] as String;
        String securityToken = json['securityToken'] as String;
    
        int countsByDayDaysCount = json['countsByDayDaysCount'] as int;
        int countsByHourDaysCount = json['countsByHourDaysCount'] as int;
        int discoveriesDaysCount = json['discoveriesDaysCount'] as int;
        int statisticsRecentDaysCount = json['statisticsRecentDaysCount'] as int;
        int timelineDaysCount = json['timelineDaysCount'] as int;
        int topArtistsDaysCount = json['topArtistsDaysCount'] as int;
    
    
        return SettingsState(
          username: username,
          securityToken: securityToken,
    
          countsByDayDaysCount: countsByDayDaysCount,
          countsByHourDaysCount: countsByHourDaysCount,
          discoveriesDaysCount: discoveriesDaysCount,
          statisticsRecentDaysCount: statisticsRecentDaysCount,
          timelineDaysCount: timelineDaysCount,
          topArtistsDaysCount: topArtistsDaysCount,
    
      Map<String, dynamic>? toJson(SettingsState state) {
        return <String, dynamic>{
    
          'username': state.username ?? '',
          'securityToken': state.securityToken ?? '',
    
          'countsByDayDaysCount':
              state.countsByDayDaysCount ?? DefaultSettings.defaultCountsByDayDaysCount,
          'countsByHourDaysCount':
              state.countsByHourDaysCount ?? DefaultSettings.defaultCountsByHourDaysCount,
          'discoveriesDaysCount':
              state.discoveriesDaysCount ?? DefaultSettings.defaultDiscoveriesDaysCount,
          'statisticsRecentDaysCount':
              state.statisticsRecentDaysCount ?? DefaultSettings.defaultStatisticsRecentDaysCount,
          'timelineDaysCount': state.timelineDaysCount ?? DefaultSettings.defaultTimelineDaysCount,
          'topArtistsDaysCount':
              state.topArtistsDaysCount ?? DefaultSettings.defaultTopArtistsDaysCount,