Seperation issue at editing fixed + gaps

This commit is contained in:
Sewmina
2022-03-11 08:14:15 +05:30
parent 959cada3a7
commit 707640c78d
3 changed files with 68 additions and 6 deletions

View File

@@ -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());
},)
]);
}

View File

@@ -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;

View File

@@ -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));
}