@@ -8,12 +8,19 @@ import 'package:provider/provider.dart';
88const contributionEmptyColor = '#ebedf0' ;
99const contributionColors = ['#9be9a8' , '#40c463' , '#30a14e' , '#216e39' ];
1010
11+ const darkMapper = {
12+ '#ebedf0' : '#161b22' ,
13+ '#9be9a8' : '#01311f' ,
14+ '#40c463' : '#034525' ,
15+ '#30a14e' : '#0f6d31' ,
16+ '#216e39' : '#00c647'
17+ };
18+
1119class ContributionDay {
1220 String hexColor;
1321 int count;
14- Color color;
15- ContributionDay ({this .hexColor, this .count, this .color})
16- : assert (hexColor != null || count != null || color != null );
22+ ContributionDay ({this .hexColor, this .count})
23+ : assert (hexColor != null || count != null );
1724}
1825
1926class ContributionWidget extends StatelessWidget {
@@ -33,22 +40,15 @@ class ContributionWidget extends StatelessWidget {
3340 if (day.count == 0 ) {
3441 day.hexColor = contributionEmptyColor;
3542 } else {
43+ // TODO: algorithm
3644 final level = (day.count * 4 ) ~ / (maxCount + 1 );
3745 day.hexColor = contributionColors[level];
3846 }
3947 }
40- if (day.hexColor != null ) {
41- day.color = convertColor (day.hexColor);
42- }
4348 }
4449 }
4550 }
4651
47- static Color _revert (Color color) {
48- return Color .fromRGBO (
49- 0xff - color.red, 0xff - color.green, 0xff - color.blue, 1 );
50- }
51-
5252 @override
5353 Widget build (BuildContext context) {
5454 final theme = context.watch <ThemeModel >();
@@ -72,9 +72,12 @@ class ContributionWidget extends StatelessWidget {
7272 height: 10 ,
7373 child: DecoratedBox (
7474 decoration: BoxDecoration (
75- color: theme.brightness == Brightness .dark
76- ? _revert (day.color)
77- : day.color),
75+ color: convertColor (
76+ theme.brightness == Brightness .dark
77+ ? darkMapper[day.hexColor]
78+ : day.hexColor,
79+ ),
80+ borderRadius: BorderRadius .circular (2 )),
7881 ),
7982 )
8083 ],
0 commit comments