Todo basics added

This commit is contained in:
Sewmina
2022-03-31 15:12:31 +05:30
parent ead2c466d1
commit 62ae8bad01
12 changed files with 1698 additions and 830 deletions

View File

@@ -12,7 +12,7 @@ import 'package:shared_preferences/shared_preferences.dart';
import 'package:tasktracker/Categories.dart';
import 'package:tasktracker/Journal.dart';
import 'package:tasktracker/Projects.dart';
import 'package:tasktracker/Todo.dart';
import 'package:tasktracker/Todos.dart';
import 'package:tasktracker/Welcome.dart';
import 'package:tasktracker/splash.dart';
import 'package:tasktracker/theme_provider.dart';
@@ -113,7 +113,8 @@ class MyApp extends StatelessWidget {
'/Activities': (context) => const Activities(),
'/Settings': (context) => const SettingsPage(),
'/Projects':(context)=> const Projects(),
'/Journal': (context)=> const JournalPage()
'/Journal': (context)=> const JournalPage(),
'/Todos':(context)=> const TodosPage()
});
});
}
@@ -205,7 +206,7 @@ class _MyHomePageState extends State<MyHomePage> {
// }
hourglassTime = ((DateTime.now().hour * 60) + DateTime.now().minute) / 1440;
// hourglassTime = 1;
print('hourglass time : $hourglassTime');
// print('hourglass time : $hourglassTime');
hourglassColors =[];
hourglassStops = [];
hourglassTotalTime=0;
@@ -214,11 +215,11 @@ class _MyHomePageState extends State<MyHomePage> {
hourglassTotalTime+=element.time;
// }
});
print('hourglass cat data');
// print('hourglass cat data');
double stopsTotal = 0;
for(int i =0 ; i < hourglassCatData.length; i++) {
CatMapData element = hourglassCatData[i];
print('${element.name} : ${element.time} / $hourglassTotalTime = ${element.time / hourglassTotalTime}');
// print('${element.name} : ${element.time} / $hourglassTotalTime = ${element.time / hourglassTotalTime}');
double thisStop = ( element.time/hourglassTotalTime);
hourglassColors.add(element.color);
hourglassStops.add(stopsTotal+thisStop);
@@ -228,14 +229,14 @@ class _MyHomePageState extends State<MyHomePage> {
hourglassStops.add(stopsTotal+thisStop + 0.001);
}
}
print('total Stops ${stopsTotal}');
print('maxT: $hourglassTotalTime');
// print('total Stops ${stopsTotal}');
// print('maxT: $hourglassTotalTime');
if(hourglassColors.isEmpty){
hourglassColors.add(Colors.black);
hourglassStops.add(1);
}
print('hourglass \n$hourglassColors \n$hourglassStops');
// print('hourglass \n$hourglassColors \n$hourglassStops');
setState(() {
});
@@ -292,6 +293,7 @@ class _MyHomePageState extends State<MyHomePage> {
}
}
bool loadingStats = false;
DateFormat dFormat = DateFormat("yyyy-MM-dd");
void LoadStats() async {
// return;
// await User.refreshUserData();
@@ -304,7 +306,7 @@ class _MyHomePageState extends State<MyHomePage> {
}
await Refresh();
DateFormat dFormat = DateFormat("MM/dd");
Map<Category, int> catTimeMap = <Category, int>{};
Map<Category, int> catBriefMap = <Category, int>{};
@@ -354,13 +356,16 @@ class _MyHomePageState extends State<MyHomePage> {
taskTypesDuration.putIfAbsent(element.taskType, () => thisMinutes);
}
}
if (element.taskType.cat?.productive ?? false) {
if (lastProductive == null) {
lastProductive = element.trueEndTime;
}}
if ((element.startTime.isAfter(prodRange!.start) && element.startTime.isBefore(prodRange!.end)) ||
(dFormat.format(element.startTime) == dFormat.format(prodRange!.start) || dFormat.format(element.startTime) == dFormat.format(prodRange!.end))) {
if (element.taskType.cat?.productive ?? false) {
if (lastProductive == null) {
lastProductive = element.trueEndTime;
}
// if (lastProductive == null) {
// lastProductive = element.trueEndTime;
// }
if (productivtyActs.containsKey(thisDate)) {
productivtyActs[thisDate] = (productivtyActs[thisDate]! + thisMinutes);
} else {
@@ -728,15 +733,19 @@ class _MyHomePageState extends State<MyHomePage> {
series: <LineSeries<ProductivityMapData, String>>[
LineSeries<ProductivityMapData, String>(
// Bind data source
markerSettings: MarkerSettings(isVisible: true, shape: DataMarkerType.circle),
dataSource: productivityData.reversed.toList(),
xValueMapper: (ProductivityMapData sales, _) => sales.day,
xValueMapper: (ProductivityMapData sales, _) => DateFormat('MM-dd').format(dFormat.parse(sales.day)),
yValueMapper: (ProductivityMapData sales, _) => sales.productivity,
dataLabelMapper: (ProductivityMapData sales, _) => sales.productivity.toStringAsFixed(1) + "%",
dataLabelSettings: DataLabelSettings(overflowMode: OverflowMode.hide, showZeroValue: false, isVisible: true),
onPointTap: (ChartPointDetails point){
showAlertDialog(context, productivityData[point.pointIndex!].day, "I'll show you detailed info about this day in future, When my master creates the feature");
Dialogs.showJournalLink(dFormat.parse(productivityData[productivityData.length-point.pointIndex!-1].day));
//showAlertDialog(context, productivityData[point.pointIndex!].day, "I'll show you detailed info about this day in future, When my master creates the feature");
},
color: Colors.green)
pointColorMapper: (ProductivityMapData sales, _)=> (User.journalExists(dFormat.parse(sales.day)) ? Colors.lightGreenAccent : Colors.green)
)
//color: User.journalExists(dFormat.parse(productivityData[(productivityData.length-point.pointIndex!-1) as int].day)) ?Colors.green : Colors.red,
]),
),
SizedBox(height: 20,),
@@ -778,7 +787,6 @@ class _MyHomePageState extends State<MyHomePage> {
child: SfCircularChart(legend: Legend(isVisible: true,position: LegendPosition.bottom,overflowMode: LegendItemOverflowMode.wrap), series: <CircularSeries>[
// Render pie chart
PieSeries<CatMapData, String>(
dataSource: dailyData,
pointColorMapper: (CatMapData data, _) => data.color,
xValueMapper: (CatMapData data, _) => data.name,
@@ -1013,6 +1021,17 @@ Drawer navDrawer(BuildContext context, int pageIndex) {
Navigator.of(context).pushReplacementNamed('/Projects');
},
),
ListTile(
selected: (pageIndex == 9),
title: Text('To-Do'),
leading: FaIcon(FontAwesomeIcons.calendarCheck, color: Theme.of(context).primaryColor),
onTap: () {
if (pageIndex == 9) {
return;
}
Navigator.of(context).pushReplacementNamed('/Todos');
},
),
ListTile(
selected: (pageIndex == 8),
title: Text('Journal'),