From 03bd15045beee64dab5795053b662d02f7049e31 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sun, 13 Nov 2022 23:07:11 +0100 Subject: v0.8, make it comfy, add salary log --- lib/widgets/agenda_week.dart | 61 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 9 deletions(-) (limited to 'lib/widgets/agenda_week.dart') diff --git a/lib/widgets/agenda_week.dart b/lib/widgets/agenda_week.dart index fa3d100..9f3df63 100644 --- a/lib/widgets/agenda_week.dart +++ b/lib/widgets/agenda_week.dart @@ -1,6 +1,8 @@ import 'dart:async'; +import 'dart:convert'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:loading_animation_widget/loading_animation_widget.dart'; import 'package:training_planner/events/RefreshWeekEvent.dart'; import 'package:training_planner/main.dart'; @@ -35,14 +37,21 @@ class _AgendaWeekState extends State { weekItems = null; }); - var data = await shiftProvider.getShiftsForWeek(this.widget.mondayOfWeek); + var data = await shiftProvider.getShiftsForWeek(widget.mondayOfWeek); if (!mounted) return; setState(() { + Duration hoursWorked = Duration(); + for (var item in data) { + hoursWorked += item.getElapsedSessionTime(); + } + weekItems = [ AgendaWeekTitle( - weekNr: this.widget.weekNr, - mondayOfWeek: this.widget.mondayOfWeek, - isCurrentWeek: this.widget.isCurrentWeek), + weekNr: widget.weekNr, + mondayOfWeek: widget.mondayOfWeek, + isCurrentWeek: widget.isCurrentWeek, + hoursWorked: hoursWorked, + ), Padding( padding: const EdgeInsets.all(10), ) @@ -65,14 +74,23 @@ class _AgendaWeekState extends State { }); } + @override + void didChangeDependencies() { + super.didChangeDependencies(); + + for (var item in getBackgrounds()) { + precacheImage(AssetImage('assets/goals/' + item), context); + } + } + @override void initState() { - super.initState(); updateItems(); eventbusSubscription = eventBus.on().listen((event) { updateItems(); }); + super.initState(); } @override @@ -107,9 +125,11 @@ class _AgendaWeekState extends State { padding: const EdgeInsets.all(10), ), AgendaWeekTitle( - weekNr: this.widget.weekNr, - mondayOfWeek: this.widget.mondayOfWeek, - isCurrentWeek: this.widget.isCurrentWeek), + weekNr: widget.weekNr, + mondayOfWeek: widget.mondayOfWeek, + isCurrentWeek: widget.isCurrentWeek, + hoursWorked: Duration(), + ), Padding( padding: const EdgeInsets.all(10), ), @@ -122,6 +142,29 @@ class _AgendaWeekState extends State { ); } + List getBackgrounds() { + return ['1.png', '2.jpg', '3.jpeg', '4.jpg', '5.jpg']; + } + + String getBackgroundImage() { + var options = getBackgrounds(); + int nrToChoose = widget.weekNr % options.length; + return options[nrToChoose]; + } + + Widget getData() { + return Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/goals/' + getBackgroundImage()), + fit: BoxFit.cover, + opacity: 0.3, + ), + ), + child: getLoadingScreenOrDataList(), + ); + } + Widget getLoadingScreenOrDataList() { if (weekItems != null) { return getDataList(); @@ -152,7 +195,7 @@ class _AgendaWeekState extends State { ).createShader(rect); }, blendMode: BlendMode.dstOut, - child: getLoadingScreenOrDataList(), + child: getData(), ); } } -- cgit v1.2.3-70-g09d2