Added Views for Models
parent
efd38e78d5
commit
c9ea73b9b2
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:smoke_cess_app/models/relapse.dart';
|
||||
import 'package:smoke_cess_app/models/sleep.dart';
|
||||
import 'package:smoke_cess_app/models/workout.dart';
|
||||
import 'package:smoke_cess_app/providers/settings_provider.dart';
|
||||
|
@ -15,8 +16,14 @@ class TasksProvider extends ChangeNotifier {
|
|||
Pages.timer: true,
|
||||
};
|
||||
|
||||
List<Mood> moodHistory = [];
|
||||
List<Sleep> sleepHistory = [];
|
||||
List<Workout> workoutHistory = [];
|
||||
List<Relapse> relapseHistory = [];
|
||||
|
||||
TasksProvider(SettingsProvider? settingsProvider) {
|
||||
initTasks();
|
||||
initHistories();
|
||||
}
|
||||
|
||||
void setTaskDone(Pages taskName) {
|
||||
|
@ -24,6 +31,14 @@ class TasksProvider extends ChangeNotifier {
|
|||
notifyListeners();
|
||||
}
|
||||
|
||||
void initHistories() async {
|
||||
moodHistory = await globals.databaseService.getMoodRecords();
|
||||
sleepHistory = await globals.databaseService.getSleepRecords();
|
||||
workoutHistory = await globals.databaseService.getWorkoutRecords();
|
||||
relapseHistory = await globals.databaseService.getRelapseRecords();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void initTasks() async {
|
||||
TZDateTime? moodToday = await getTodayMood();
|
||||
if (moodToday != null) {
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:syncfusion_flutter_charts/charts.dart';
|
||||
import '../models/mood.dart';
|
||||
import '../providers/tasks_provider.dart';
|
||||
|
||||
class MoodView extends StatelessWidget {
|
||||
const MoodView({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var tasksModel = context.watch<TasksProvider>();
|
||||
return Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
LineSeries<Mood, DateTime>(
|
||||
dataSource: tasksModel.moodHistory,
|
||||
xValueMapper: (Mood value, _) => value.date,
|
||||
yValueMapper: (Mood value, _) => value.moodValue)
|
||||
],
|
||||
),
|
||||
Column(
|
||||
children: tasksModel.moodHistory.map((mood) {
|
||||
return Text('${mood.date}: ${mood.moodValue}');
|
||||
}).toList())
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:smoke_cess_app/models/relapse.dart';
|
||||
import 'package:syncfusion_flutter_charts/charts.dart';
|
||||
import '../models/mood.dart';
|
||||
import '../providers/tasks_provider.dart';
|
||||
|
||||
class RelapseView extends StatelessWidget {
|
||||
const RelapseView({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var tasksModel = context.watch<TasksProvider>();
|
||||
return Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: tasksModel.relapseHistory.map((relapse) {
|
||||
return Text('${relapse.date}: ${relapse.category}');
|
||||
}).toList());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:smoke_cess_app/models/sleep.dart';
|
||||
import 'package:syncfusion_flutter_charts/charts.dart';
|
||||
import '../providers/tasks_provider.dart';
|
||||
|
||||
class SleepView extends StatelessWidget {
|
||||
const SleepView({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var tasksModel = context.watch<TasksProvider>();
|
||||
return Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
LineSeries<Sleep, DateTime>(
|
||||
dataSource: tasksModel.sleepHistory,
|
||||
xValueMapper: (Sleep value, _) => value.date,
|
||||
yValueMapper: (Sleep value, _) => value.sleepQualitiyValue)
|
||||
],
|
||||
),
|
||||
Column(
|
||||
children: tasksModel.sleepHistory.map((sleep) {
|
||||
return Text('${sleep.date}: ${sleep.sleepQualitiyValue}');
|
||||
}).toList())
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:smoke_cess_app/models/sleep.dart';
|
||||
import 'package:smoke_cess_app/models/workout.dart';
|
||||
import 'package:syncfusion_flutter_charts/charts.dart';
|
||||
import '../providers/tasks_provider.dart';
|
||||
|
||||
class WorkoutView extends StatelessWidget {
|
||||
const WorkoutView({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var tasksModel = context.watch<TasksProvider>();
|
||||
return Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
LineSeries<Workout, DateTime>(
|
||||
dataSource: tasksModel.workoutHistory,
|
||||
xValueMapper: (Workout value, _) => value.date,
|
||||
yValueMapper: (Workout value, _) => value.motivationBefore),
|
||||
LineSeries<Workout, DateTime>(
|
||||
dataSource: tasksModel.workoutHistory,
|
||||
xValueMapper: (Workout value, _) => value.date,
|
||||
yValueMapper: (Workout value, _) => value.motivationAfter)
|
||||
],
|
||||
),
|
||||
Column(
|
||||
children: tasksModel.sleepHistory.map((sleep) {
|
||||
return Text('${sleep.date}: ${sleep.sleepQualitiyValue}');
|
||||
}).toList())
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue