Skip to content
Snippets Groups Projects
application_config.dart 3.17 KiB
Newer Older
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';

import 'package:scrobbles/common/cubit/nav/nav_cubit_pages.dart';

import 'package:scrobbles/cubit/activity/activity_cubit.dart';

class ApplicationConfig {
  static const String parameterCodeDistributionDaysCount = 'distribution-days-count';
  static const String parameterCodeDiscoveriesDaysCount = 'discoveries-days-count';
  static const String parameterCodeNewArtistsCount = 'new-artists-count';
  static const String parameterCodeNewTracksCount = 'new-tracks-count';
  static const String parameterCodeTimelineDaysCount = 'timeline-days-count';
  static const String parameterCodeTopArtistsDaysCount = 'top-artists-days-count';
  static const String parameterCodeStatisticsRecentDaysCount = 'statistics-recent-days-count';

  static const List<ApplicationSettingsParameterItemValue> allowedDaysCountValues = [
    ApplicationSettingsParameterItemValue(
      value: '7',
    ),
    ApplicationSettingsParameterItemValue(
      value: '14',
      isDefault: true,
    ),
    ApplicationSettingsParameterItemValue(
      value: '21',
    ),
    ApplicationSettingsParameterItemValue(
      value: '30',
    ),
    ApplicationSettingsParameterItemValue(
      value: '60',
    ),
    ApplicationSettingsParameterItemValue(
      value: '90',
    ),
  ];

  static const List<ApplicationSettingsParameterItemValue> allowedCountValues = [
    ApplicationSettingsParameterItemValue(
      value: '5',
      isDefault: true,
    ),
    ApplicationSettingsParameterItemValue(
      value: '10',
    ),
    ApplicationSettingsParameterItemValue(
      value: '20',
    ),
  ];

  static final ApplicationConfigDefinition config = ApplicationConfigDefinition(
    appTitle: 'Scrobbles',
    activitySettings: [
      // DistributionDaysCount
      ApplicationSettingsParameter(
        code: parameterCodeDistributionDaysCount,
        values: allowedDaysCountValues,
      ),

      // DiscoveriesDaysCount
      ApplicationSettingsParameter(
        code: parameterCodeDiscoveriesDaysCount,
        values: allowedDaysCountValues,
      ),

      // NewArtistsCount
      ApplicationSettingsParameter(
        code: parameterCodeNewArtistsCount,
        values: allowedCountValues,
      ),

      // NewTracksCount
      ApplicationSettingsParameter(
        code: parameterCodeNewTracksCount,
        values: allowedCountValues,
      ),

      // TimelineDaysCount
      ApplicationSettingsParameter(
        code: parameterCodeTimelineDaysCount,
        values: allowedDaysCountValues,
      ),

      // TopArtistsDaysCount
      ApplicationSettingsParameter(
        code: parameterCodeTopArtistsDaysCount,
        values: allowedDaysCountValues,
      ),

      // StatisticsRecentDaysCount
      ApplicationSettingsParameter(
        code: parameterCodeStatisticsRecentDaysCount,
        values: allowedDaysCountValues,
      ),
    ],
    startNewActivity: (BuildContext context) {
      BlocProvider.of<ActivityCubit>(context).startNewActivity(context);
      BlocProvider.of<NavCubitPage>(context).goToPageHome();
    },
    deleteCurrentActivity: (BuildContext context) {},
    resumeActivity: (BuildContext context) {},
  );