Syncing issue fixed v2

This commit is contained in:
Sewmina
2022-03-20 07:19:31 +05:30
parent b09d74bba3
commit 211e1b70b4
3 changed files with 40 additions and 19 deletions

View File

@@ -83,7 +83,7 @@ Future<void> BuildBridgeToServer() async{
final prefs = await SharedPreferences.getInstance();
while(true){
await UserOperations.executeQueries();
try {
http.Response response = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/bridge.php'),
body: <String, String>{"username": username}));
@@ -111,25 +111,38 @@ Future<void> BuildBridgeToServer() async{
await Future.delayed(Duration(seconds: 5));
}
}
bool m_refreshing = false;
Future<void> refreshUserData() async {
Future<void> refreshUserData({bool forceOffline = false}) async {
print('refreshing user data');
if(m_refreshing){
print('Called while refreshing. Return');return;
}
m_refreshing=true;
refreshStream.add(true);
await updateCatsList();
await updateTasksList();
await updateActList();
await updateProjectsList();
refreshStream.add(false);
if(forceOffline) {
refreshStream.add(true);
categories = await GetCategories(true);
taskTypes = await GetTaskTypes(true);
activities = await GetActivities(true);
projects= await GetProjects(true);
refreshStream.add(false);
}else{
await updateCatsList();
await updateTasksList();
await updateActList();
await updateProjectsList();
}
m_refreshing=false;
if (cacheEnabled) {
NotificationManager.RescheduleNotifications();
}
}
Future<bool> cacheDbExist() async {
if (Platform.isAndroid || Platform.isIOS) {
Directory directory = await getApplicationDocumentsDirectory();
@@ -749,7 +762,7 @@ class UserOperations {
Category.colProductive: productive
};
await cacheDb.insert('Categories', data);
// await refreshUserData();
await refreshUserData(forceOffline: true);
} else {
try {
http.Response queryResponse = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/add_category.php'), body: queryBody));
@@ -788,7 +801,7 @@ class UserOperations {
//update Cache
Map<String, Object> data = {TaskType.colId: username + name, Category.colName: name, Category.colCatId: username + category};
await cacheDb.insert('TaskTypes', data);
//await refreshUserData();
await refreshUserData(forceOffline: true);
} else {
try {
http.Response queryResponse = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/add_taskType.php'), body: queryBody));
@@ -844,7 +857,7 @@ class UserOperations {
Activity.colMetadata: metadata
};
await cacheDb.insert('Activities', data);
// await refreshUserData();
await refreshUserData(forceOffline: true);
} else {
try {
http.Response queryResponse = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/add_activity.php'), body: queryBody));
@@ -898,7 +911,7 @@ class UserOperations {
// Map<String, Object> data = {Activity.colType: username + type, Activity.colStartTime: dFormat.format(sTime), Activity.colEndTime: dFormat.format(eTime), Activity.colMetadata: metadata};
// String updateActQuery = "UPDATE Activities SET ${Activity.colType}=";
// await cacheDb.insert('Activities', data);
// await refreshUserData();
await refreshUserData(forceOffline: true);
} else {
// queries.add(Queries('edit_activity', jsonEncode(queryBody)));
try {
@@ -938,7 +951,7 @@ class UserOperations {
//update Cache
Map<String, Object> data = {Project.colName: username+name, Project.colCat: category, Project.colSteps: jsonEncode(steps), Project.colDeadline: deadline.toString()};
await cacheDb.insert('Projects', data);
//await refreshUserData();
await refreshUserData(forceOffline: true);
} else {
try {
http.Response queryResponse = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/add_project.php'), body: queryBody));
@@ -974,7 +987,7 @@ class UserOperations {
};
await cacheDb.rawDelete("DELETE FROM TaskTypes WHERE id='${username + name}'");
// await refreshUserData();
await refreshUserData(forceOffline: true);
//Add to server and refresh Cache
} else {
try {
@@ -1011,7 +1024,7 @@ class UserOperations {
Category.colName: name,
};
await cacheDb.rawDelete("DELETE FROM Categories WHERE ${Category.colCatId}='${username + name}'");
//await refreshUserData();
await refreshUserData(forceOffline: true);
//Add to server and refresh Cache
} else {
try {
@@ -1050,7 +1063,7 @@ class UserOperations {
print("delteQuery : $deleteQuery");
await cacheDb.rawDelete(deleteQuery);
// await refreshUserData();
await refreshUserData(forceOffline: true);
//Add to server and refresh Cache
} else {
try {