Day Seperation bug fixed
This commit is contained in:
@@ -148,13 +148,13 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
init(context);
|
||||
super.initState();
|
||||
print("Initializing refresh stream on main dart");
|
||||
LoadStats();
|
||||
|
||||
connectivitySub=Connectivity().onConnectivityChanged.listen((result) {
|
||||
if (this.mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
|
||||
LoadStats();
|
||||
// User.progressDialog=progressDialog;
|
||||
}
|
||||
var refreshSub;
|
||||
@@ -170,6 +170,8 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
print("Closing progress dialog");
|
||||
}
|
||||
});
|
||||
await User.refreshUserData();
|
||||
|
||||
}
|
||||
@override
|
||||
void dispose() {
|
||||
@@ -177,10 +179,9 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
super.dispose();
|
||||
connectivitySub?.cancel();
|
||||
}
|
||||
|
||||
void LoadStats() async {
|
||||
// return;
|
||||
|
||||
// await User.refreshUserData();
|
||||
DateFormat dFormat = DateFormat("MM/dd");
|
||||
Map<Category, int> catTimeMap = <Category, int>{};
|
||||
Map<Category, int> catBriefMap = <Category, int>{};
|
||||
@@ -206,19 +207,9 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
}
|
||||
firstDay = element.startTime;
|
||||
String thisDate = dFormat.format(element.startTime);
|
||||
String endDate = dFormat.format(element.endTime);
|
||||
|
||||
int thisMinutes = element.endTime.difference(element.startTime).inMinutes;
|
||||
int nextMinutes = 0;
|
||||
if(element.startTime.day != element.endTime.day){
|
||||
print("welp, ${element.startTime} - ${element.endTime}");
|
||||
DateTime nextDayBaseline = DateTime(element.endTime.year, element.endTime.month,
|
||||
element.endTime.day,0,0,0);
|
||||
nextMinutes = element.endTime.difference(nextDayBaseline).inMinutes;
|
||||
thisMinutes -= nextMinutes;
|
||||
|
||||
print("Today : $thisMinutes, Next day : $nextMinutes");
|
||||
}
|
||||
if (!days.contains(thisDate)) {
|
||||
days.add(dFormat.format(element.startTime));
|
||||
}
|
||||
@@ -250,25 +241,16 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
}
|
||||
|
||||
if (thisDate == curDay) {
|
||||
if (element.taskType.cat == null) {
|
||||
continue;
|
||||
}
|
||||
print("Null : ${thisMinutes}");
|
||||
if (catTimeMap.containsKey(element.taskType.cat)) {
|
||||
catTimeMap[element.taskType.cat!] = (catTimeMap[element.taskType.cat]! + thisMinutes);
|
||||
} else {
|
||||
catTimeMap.putIfAbsent(element.taskType.cat!, () => thisMinutes);
|
||||
}
|
||||
}else if(thisDate==endDate){
|
||||
if (element.taskType.cat == null) {
|
||||
continue;
|
||||
}
|
||||
print("Null : ${nextMinutes}");
|
||||
if (catTimeMap.containsKey(element.taskType.cat)) {
|
||||
catTimeMap[element.taskType.cat!] = (catTimeMap[element.taskType.cat]! + nextMinutes);
|
||||
} else {
|
||||
catTimeMap.putIfAbsent(element.taskType.cat!, () => nextMinutes);
|
||||
}
|
||||
if (element.taskType.cat == null) {
|
||||
continue;
|
||||
}
|
||||
print("Null : ${thisMinutes}");
|
||||
if (catTimeMap.containsKey(element.taskType.cat)) {
|
||||
catTimeMap[element.taskType.cat!] =
|
||||
(catTimeMap[element.taskType.cat]! + thisMinutes);
|
||||
} else {
|
||||
catTimeMap.putIfAbsent(element.taskType.cat!, () => thisMinutes);
|
||||
}
|
||||
}
|
||||
|
||||
if ((element.startTime.isAfter(catsRange!.start) && element.startTime.isBefore(catsRange!.end)) ||
|
||||
@@ -299,17 +281,18 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
dailyData.add(CatMapData(key.name, value, barCol));
|
||||
trackedTime += value;
|
||||
});
|
||||
int untrackedTime = 1440-trackedTime;
|
||||
print("Tracked time : $trackedTime");
|
||||
|
||||
dailyData.sort((a, b) {
|
||||
return a.name.toLowerCase().compareTo(b.name.toLowerCase());
|
||||
});
|
||||
dailyData.add(CatMapData("Untracked",1440-trackedTime, Colors.black));
|
||||
if(untrackedTime> 0){dailyData.add(CatMapData("Untracked",1440-trackedTime, Colors.black));}else{}
|
||||
for (var element in days) {
|
||||
// if(productivtyActs.containsKey(element) && unproductivtyActs.containsKey(element)){
|
||||
int prodActs = (productivtyActs[element] ?? 0);
|
||||
int unprodActs = (unproductivtyActs[element] ?? 0);
|
||||
double prod = (prodActs / (prodActs + unprodActs)) * 100;
|
||||
double prod = (prodActs / 1440) * 100;
|
||||
productivityData.add(ProductivityMapData(element, prod));
|
||||
// }
|
||||
}
|
||||
@@ -331,6 +314,7 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
catsData.sort((a, b) => a.time.compareTo(b.time));
|
||||
});
|
||||
}
|
||||
// loadingStats=false;
|
||||
}
|
||||
|
||||
void showOfflineSnack() async {
|
||||
@@ -486,7 +470,7 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
)),
|
||||
),
|
||||
Container(
|
||||
height: 370,
|
||||
height: 400,
|
||||
padding: EdgeInsets.all(10),
|
||||
child: Card(
|
||||
elevation: 8,
|
||||
@@ -507,15 +491,16 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
}),
|
||||
]),
|
||||
Expanded(
|
||||
child: SfCircularChart(legend: Legend(isVisible: true), series: <CircularSeries>[
|
||||
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,
|
||||
yValueMapper: (CatMapData data, _) => data.time,
|
||||
dataLabelMapper: (CatMapData sales, _) => MinutesToTimeString(sales.time),
|
||||
dataLabelSettings: DataLabelSettings(isVisible: true, useSeriesColor: true))
|
||||
dataLabelSettings: DataLabelSettings(isVisible: true, useSeriesColor: true, overflowMode: OverflowMode.shift, showZeroValue: false))
|
||||
]))
|
||||
],
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user