Skip to content

Commit 4a23a6e

Browse files
committed
add getStreaks() to StatisticsPage
1 parent f13c2dd commit 4a23a6e

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

lib/providers/git_info_notifier.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,10 @@ class GitInfoNotifier extends AsyncNotifier<List<GitInfoRecord>?> {
5656
);
5757
}
5858

59-
Streak longestStreak() {
60-
return _gitInfoRepository.longestStreak();
59+
List<Streak> getStreaks() {
60+
return _gitInfoRepository.getStreaks();
6161
}
62+
6263
}
6364

6465
final gitInfoNotifier =

lib/providers/git_info_repository.dart

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,10 +237,8 @@ final _streakList = <Streak>[];
237237
return dayCountWithCommit;
238238
}
239239

240-
Streak longestStreak() {
240+
void _initStreaks() {
241241
final overAllHeatMap = calculateOverAllHeatMap(_projectHeatMap);
242-
_streakList.clear();
243-
_streakList.add(Streak(startDate: DateTime.now(), endDate: DateTime.now()));
244242
var endDate = DateTime.now();
245243
do {
246244
var length = streakLengthFromHeatMap(overAllHeatMap, endDate);
@@ -258,8 +256,16 @@ final _streakList = <Streak>[];
258256
endDate = endDate.subtract(Duration(days: length));
259257
} while (
260258
endDate.isAfter(DateTime.now().subtract(const Duration(days: 360))));
261-
return _streakList.first;
259+
_streakList.sort((r1, r2) => r2.length.compareTo(r1.length));
262260
}
261+
262+
List<Streak> getStreaks() {
263+
if (_streakList.isEmpty) {
264+
_initStreaks();
265+
}
266+
return _streakList;
267+
}
268+
263269
}
264270

265271
final gitInfoRepositoryProvider = Provider<GitInfoRepository>((ref) {

0 commit comments

Comments
 (0)