Seperation issue at editing fixed + gaps
This commit is contained in:
@@ -195,7 +195,9 @@ class _ActivitiesState extends State<Activities> {
|
||||
}
|
||||
}
|
||||
print(productivtyActs);
|
||||
for (var element in User.activities) {
|
||||
//for (var element in User.activities) {
|
||||
for(int i =0; i < User.activities.length; i++){
|
||||
Activity element =User.activities[i];
|
||||
if(searching){
|
||||
bool matchMetadata = element.metadata!.toLowerCase().contains(searchController.text.toLowerCase());
|
||||
bool matchTaskType=element.taskType.name.toLowerCase().contains(searchController.text.toLowerCase());
|
||||
@@ -208,6 +210,8 @@ class _ActivitiesState extends State<Activities> {
|
||||
}
|
||||
|
||||
String thisDate = dFormat.format(element.startTime);
|
||||
|
||||
|
||||
if (thisDate != lastDate) {
|
||||
int prodActs = productivtyActs[thisDate] ?? 0;
|
||||
int unProdActs = unproductivtyActs[thisDate] ?? 0;
|
||||
@@ -224,11 +228,64 @@ class _ActivitiesState extends State<Activities> {
|
||||
// print('Activity : ${name} ,sTime: ${element.startTime}, eTime: ${element.endTime}');
|
||||
_tasks.add(task);
|
||||
}
|
||||
//Check for gaps
|
||||
if(i < User.activities.length-1){
|
||||
int gap = User.activities[i].trueStartTime.difference(User.activities[i+1].trueEndTime).inMinutes;
|
||||
if(gap > 20) {
|
||||
Widget addGap = timeGap(User.activities[i].trueStartTime, User.activities[i+1].trueEndTime);
|
||||
|
||||
_tasks.add(addGap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return _tasks;
|
||||
}
|
||||
|
||||
Widget timeGap(DateTime sTime, DateTime eTime){
|
||||
DateFormat dateFormat = DateFormat("HH:mm");
|
||||
String gap = Main.MinutesToTimeString(sTime.difference(eTime).inMinutes);
|
||||
return Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
|
||||
children: [
|
||||
Container(padding: EdgeInsets.fromLTRB(10, 0, 5, 0), child: Column(
|
||||
mainAxisSize: MainAxisSize.max,mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
// Text(dateFormat.format(activity.endTime)),
|
||||
SizedBox(width: 1, height: 30, child: Container(color: Colors.white)),
|
||||
Text(dateFormat.format(eTime))])),
|
||||
Expanded(
|
||||
child: InkWell(
|
||||
onTap: (){
|
||||
Navigator.of(context).push(MaterialPageRoute(builder: (context) => NewActivity(sTime: eTime,eTime: sTime))).then((value) => UpdateList());
|
||||
},
|
||||
child: Card(
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
Container(
|
||||
alignment: Alignment.bottomLeft,
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: Text('Gap of : $gap'),
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Icon(Icons.add,size:30),
|
||||
Text("Add Activity")
|
||||
],
|
||||
),
|
||||
|
||||
],
|
||||
)
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget DateSeperator(date, prodActs, unprodActs) {
|
||||
// double prodPercentage = (prodActs / (prodActs + unprodActs)) * 100;
|
||||
double prodPercentage = (prodActs / 1440) * 100;
|
||||
@@ -413,7 +470,7 @@ class _ActivitiesState extends State<Activities> {
|
||||
setState(() {
|
||||
|
||||
});
|
||||
Navigator.of(context).push(MaterialPageRoute(builder: (context) => NewActivity(sTime: activity.startTime,eTime: activity.endTime,metadata: activity.metadata,selectedTask: activity.taskType.name,))).then((value) => UpdateList());
|
||||
Navigator.of(context).push(MaterialPageRoute(builder: (context) => NewActivity(sTime: activity.trueStartTime,eTime: activity.trueEndTime,metadata: activity.metadata,selectedTask: activity.taskType.name,))).then((value) => UpdateList());
|
||||
},)
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -37,8 +37,12 @@ class TaskType{
|
||||
|
||||
class Activity{
|
||||
|
||||
Activity(this.taskType, this.startTime, this.endTime, {this.metadata});
|
||||
|
||||
Activity(this.taskType, this.startTime, this.endTime, {this.metadata,DateTime? tEndTime,DateTime? tStartTime}){
|
||||
trueStartTime = tStartTime ?? startTime;
|
||||
trueEndTime = tEndTime ?? endTime;
|
||||
}
|
||||
late DateTime trueStartTime;
|
||||
late DateTime trueEndTime;
|
||||
TaskType taskType;
|
||||
DateTime startTime;
|
||||
DateTime endTime;
|
||||
|
||||
@@ -336,6 +336,7 @@ Future<List<Activity>> GetActivities(bool forceOffline) async {
|
||||
List<Map> cats = await cacheDb.rawQuery('SELECT * FROM Activities ORDER BY ${Activity.colStartTime} DESC');
|
||||
print(cats.length);
|
||||
for (Map element in cats) {
|
||||
int? id = element['id'];
|
||||
String? type = element[Activity.colType].toString();
|
||||
String? startTime = element[Activity.colStartTime].toString();
|
||||
String? endTime = element[Activity.colEndTime].toString();
|
||||
@@ -353,8 +354,8 @@ Future<List<Activity>> GetActivities(bool forceOffline) async {
|
||||
if(eTime.day!=sTime.day){
|
||||
DateTime midnight = DateTime(eTime.year,eTime.month,eTime.day,0,0,0);
|
||||
|
||||
_activities.add(Activity(taskType, midnight, eTime, metadata: metadata));
|
||||
_activities.add(Activity(taskType, sTime, midnight, metadata: metadata));
|
||||
_activities.add(Activity(taskType, midnight, eTime, metadata: metadata,tStartTime: sTime));
|
||||
_activities.add(Activity(taskType, sTime, midnight, metadata: metadata,tEndTime: eTime));
|
||||
}else{
|
||||
_activities.add(Activity(taskType, DateTime.parse(startTime), DateTime.parse(endTime), metadata: metadata));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user