Summary page done
This commit is contained in:
@@ -61,7 +61,7 @@ Future<void> initUserData() async {
|
||||
print('Going offline mode.');
|
||||
}
|
||||
}
|
||||
|
||||
bool userDataInitiated =false;
|
||||
Future<void> refreshUserData() async{
|
||||
ShowProgress("Loading data");
|
||||
// categories= await GetCategories(true);
|
||||
@@ -70,6 +70,7 @@ Future<void> refreshUserData() async{
|
||||
await updateCatsList();
|
||||
await updateTasksList();
|
||||
await updateActList();
|
||||
userDataInitiated=true;
|
||||
HideProgress();
|
||||
}
|
||||
|
||||
@@ -122,7 +123,7 @@ void onCacheDatabaseCreate(Database db, int newVersion) async {
|
||||
await db.execute(TaskTableSQL);
|
||||
|
||||
String ActivityTableSQL =
|
||||
'CREATE TABLE Activities(id INTEGER PRIMARY KEY AUTOINCREMENT, ${Activity.colType} INT, ${Activity.colStartTime} DATETIME, ${Activity.colEndTime} DATETIME, '
|
||||
'CREATE TABLE Activities(id INTEGER PRIMARY KEY AUTOINCREMENT, ${Activity.colType} INT, ${Activity.colStartTime} DATETIME, ${Activity.colEndTime} DATETIME, ${Activity.colMetadata} TEXT, '
|
||||
'FOREIGN KEY (${Activity.colType}) REFERENCES TaskTypes(id))';
|
||||
// print(ActivityTableSQL);
|
||||
await db.execute(ActivityTableSQL);
|
||||
@@ -328,7 +329,7 @@ Future<List<Activity>> GetActivities(bool forceOffline) async{
|
||||
List<Activity> _activities = [];
|
||||
if(offline || forceOffline){
|
||||
//Retreive from cacheDB
|
||||
|
||||
print('offline, refreshing activities');
|
||||
}else{
|
||||
//Check if server got updated, If not go for cache
|
||||
var android_id = await Settings.UUID();
|
||||
@@ -359,14 +360,15 @@ Future<List<Activity>> GetActivities(bool forceOffline) async{
|
||||
String? type = element[Activity.colType].toString();
|
||||
String? startTime = element[Activity.colStartTime].toString();
|
||||
String? endTime = element[Activity.colEndTime].toString();
|
||||
String? metadata = element[Activity.colMetadata].toString();
|
||||
TaskType? taskType = await getTaskFromId(type);
|
||||
if(type==null || startTime==null || endTime==null || taskType==null){
|
||||
print("Something is null!");
|
||||
print("TaskType:{$type}, Start Time:{$startTime}, endTime:{$endTime}");
|
||||
print("Something is null!\ntype:${type==null}, startTime:${startTime==null}, eTime:${endTime==null}, taskType${taskType==null}");
|
||||
print("TaskType:{$type}, Start Time:{$startTime}, endTime:{$endTime}, metadata:${metadata}");
|
||||
continue;
|
||||
}
|
||||
print("TaskType:{$type}, Start Time:{$startTime}, endTime:{$endTime}");
|
||||
_activities.add(Activity(taskType, DateTime.parse(startTime), DateTime.parse(endTime)));
|
||||
print("TaskType:{$type}, Start Time:{$startTime}, endTime:{$endTime}, metadata:${metadata}");
|
||||
_activities.add(Activity(taskType, DateTime.parse(startTime), DateTime.parse(endTime), metadata: metadata));
|
||||
}
|
||||
activities = _activities;
|
||||
return activities;
|
||||
@@ -395,8 +397,8 @@ Future<void> UpdateActivitiesFromServer() async{
|
||||
Map<String, dynamic> cat = jsonDecode(value);
|
||||
print(cat);
|
||||
await cacheDb.rawInsert(
|
||||
"INSERT OR REPLACE INTO Activities (${Activity.colType}, ${Activity.colStartTime}, ${Activity.colEndTime}) "
|
||||
"VALUES ('${cat['task_id']}', '${cat['sTime']}','${cat['eTime']}') ");
|
||||
"INSERT OR REPLACE INTO Activities (${Activity.colType}, ${Activity.colStartTime}, ${Activity.colEndTime}, ${Activity.colMetadata}) "
|
||||
"VALUES ('${cat['task_id']}', '${cat['sTime']}','${cat['eTime']}', '${cat['metadata']}') ");
|
||||
}
|
||||
}else{
|
||||
print("No activities for now");
|
||||
@@ -410,13 +412,15 @@ Future<void> UpdateActivitiesFromServer() async{
|
||||
Future<TaskType?> getTaskFromId(String taskId) async{
|
||||
// await GetTaskTypes(false);
|
||||
TaskType? cat = null;
|
||||
taskTypes.forEach((element) async{
|
||||
for (var element in taskTypes){
|
||||
if(element.id == taskId){
|
||||
cat= element;
|
||||
|
||||
cat?.cat = await getCatFromId((cat?.category ?? ''));
|
||||
}
|
||||
});
|
||||
}
|
||||
if(cat==null){
|
||||
print('Got null tasktype for ${taskId} after searching on ${taskTypes.length}');
|
||||
}
|
||||
|
||||
return cat;
|
||||
}
|
||||
@@ -424,11 +428,11 @@ Future<TaskType?> getTaskFromId(String taskId) async{
|
||||
Future<Category?> getCatFromId(String catId) async{
|
||||
// await GetTaskTypes(false);
|
||||
Category? cat = null;
|
||||
categories.forEach((element) {
|
||||
for (var element in categories) {
|
||||
if(element.category_id == catId){
|
||||
cat= element;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return cat;
|
||||
}
|
||||
@@ -519,7 +523,7 @@ class UserOperations{
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> addActivity(String type, String sTime,String eTime, {bool bulk = false, Function(int)? onOverlap}) async{
|
||||
static Future<void> addActivity(String type, String sTime,String eTime, {String metadata = 'null',bool bulk = false, Function(int)? onOverlap}) async{
|
||||
//Check for timeoverlapse
|
||||
activities= await GetActivities(true);
|
||||
int? overlapCount = Sqflite.firstIntValue(await cacheDb.rawQuery("SELECT COUNT(*) FROM Activities WHERE (((${Activity.colStartTime} < datetime('$sTime')) AND ((${Activity.colEndTime} > datetime('$eTime')) OR (${Activity.colEndTime} < datetime('$eTime') AND ${Activity.colEndTime} > datetime('$sTime')))) OR (${Activity.colStartTime} > datetime('$sTime') AND ${Activity.colStartTime} < datetime('$eTime')) OR (${Activity.colStartTime}=datetime('$sTime') AND ${Activity.colEndTime}=datetime('$eTime')))"));
|
||||
@@ -533,8 +537,13 @@ class UserOperations{
|
||||
'device_id': await Settings.UUID(),
|
||||
'type' : username+type,
|
||||
'sTime': sTime,
|
||||
'eTime':eTime
|
||||
'eTime':eTime,
|
||||
'metadata': metadata
|
||||
};
|
||||
|
||||
if(metadata.length > 0){
|
||||
|
||||
}
|
||||
//Add Query
|
||||
Map<String,Object> query = {
|
||||
Queries.colLink: 'add_activity',
|
||||
@@ -547,12 +556,13 @@ class UserOperations{
|
||||
|
||||
//update Cache
|
||||
Map<String,Object> data = {
|
||||
Activity.colType: type,
|
||||
Activity.colType: username+type,
|
||||
Activity.colStartTime: sTime,
|
||||
Activity.colEndTime: eTime
|
||||
Activity.colEndTime: eTime,
|
||||
Activity.colMetadata: metadata
|
||||
};
|
||||
await cacheDb.insert('Activities', data);
|
||||
await GetActivities(true);
|
||||
activities= await GetActivities(false);
|
||||
if(!bulk){
|
||||
//Add to server and refresh Cache
|
||||
await executeQueries();
|
||||
@@ -688,10 +698,10 @@ class UserOperations{
|
||||
}
|
||||
|
||||
void ShowProgress(msg){
|
||||
try{progressDialog?.show(max: 100, msg: msg);}catch(e){}
|
||||
//try{progressDialog?.show(max: 100, msg: msg);}catch(e){}
|
||||
}
|
||||
|
||||
void HideProgress(){
|
||||
try{progressDialog?.update(value: 100);}catch(e){}
|
||||
// try{progressDialog?.update(value: 100);}catch(e){}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user