From 4c5564fd2f6bb7e6f42896a01e95fe197c362b50 Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Sun, 30 Jun 2024 18:31:57 +0600 Subject: [PATCH] chore: use enum properties for history duration in top stats --- lib/provider/history/top.dart | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/lib/provider/history/top.dart b/lib/provider/history/top.dart index 965fb3ad..82681267 100644 --- a/lib/provider/history/top.dart +++ b/lib/provider/history/top.dart @@ -8,20 +8,24 @@ import 'package:spotube/models/database/database.dart'; import 'package:spotube/provider/database/database.dart'; enum HistoryDuration { - allTime, - days7, - days30, - months6, - year, - years2, + allTime(Duration(days: 365 * 2003)), + days7(Duration(days: 7)), + days30(Duration(days: 30)), + months6(Duration(days: 30 * 6)), + year(Duration(days: 365)), + years2(Duration(days: 365 * 2)); + + final Duration duration; + + const HistoryDuration(this.duration); } final playbackHistoryTopDurationProvider = StateProvider((ref) => HistoryDuration.days30); -typedef PlaybackHistoryTrack = ({int count, Track track}); typedef PlaybackHistoryAlbum = ({int count, AlbumSimple album}); typedef PlaybackHistoryPlaylist = ({int count, PlaylistSimple playlist}); +typedef PlaybackHistoryTrack = ({int count, Track track}); typedef PlaybackHistoryArtist = ({int count, Artist artist}); class PlaybackHistoryTopState { @@ -58,14 +62,7 @@ class PlaybackHistoryTopNotifier build(arg) async { final database = ref.watch(databaseProvider); - final duration = switch (arg) { - HistoryDuration.allTime => const Duration(days: 365 * 2003), - HistoryDuration.days7 => const Duration(days: 7), - HistoryDuration.days30 => const Duration(days: 30), - HistoryDuration.months6 => const Duration(days: 30 * 6), - HistoryDuration.year => const Duration(days: 365), - HistoryDuration.years2 => const Duration(days: 365 * 2), - }; + final duration = arg.duration; final tracksQuery = (database.select(database.historyTable) ..where(