Added Views for Models
parent
efd38e78d5
commit
c9ea73b9b2
|
@ -1,4 +1,5 @@
|
||||||
import 'package:flutter/material.dart';
|
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/sleep.dart';
|
||||||
import 'package:smoke_cess_app/models/workout.dart';
|
import 'package:smoke_cess_app/models/workout.dart';
|
||||||
import 'package:smoke_cess_app/providers/settings_provider.dart';
|
import 'package:smoke_cess_app/providers/settings_provider.dart';
|
||||||
|
@ -15,8 +16,14 @@ class TasksProvider extends ChangeNotifier {
|
||||||
Pages.timer: true,
|
Pages.timer: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
List<Mood> moodHistory = [];
|
||||||
|
List<Sleep> sleepHistory = [];
|
||||||
|
List<Workout> workoutHistory = [];
|
||||||
|
List<Relapse> relapseHistory = [];
|
||||||
|
|
||||||
TasksProvider(SettingsProvider? settingsProvider) {
|
TasksProvider(SettingsProvider? settingsProvider) {
|
||||||
initTasks();
|
initTasks();
|
||||||
|
initHistories();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setTaskDone(Pages taskName) {
|
void setTaskDone(Pages taskName) {
|
||||||
|
@ -24,6 +31,14 @@ class TasksProvider extends ChangeNotifier {
|
||||||
notifyListeners();
|
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 {
|
void initTasks() async {
|
||||||
TZDateTime? moodToday = await getTodayMood();
|
TZDateTime? moodToday = await getTodayMood();
|
||||||
if (moodToday != null) {
|
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