Ongoing online

This commit is contained in:
Sewmina
2022-03-21 19:43:49 +05:30
parent 211e1b70b4
commit ee678fcc88
10 changed files with 408 additions and 12 deletions

View File

@@ -104,11 +104,19 @@ Future<void> BuildBridgeToServer() async{
prefs.setString('rev', response.body);
await refreshUserData();
}
if(data[4].contains('<td>')){
List<String> ongoingData = data[4].split("<td>");
if(!prefs.containsKey('current_activity')) {
StartActivityTimer(ongoingData[0], ongoingData[1], DateTime.parse(ongoingData[2]));
}
}else{
CancelOngoingActivity();
}
}catch(e){
print("Error with bridge : $e");
}
await Future.delayed(Duration(seconds: 5));
}
}
@@ -424,6 +432,46 @@ Future<void> UpdateTaskTypesFromServer() async {
}
}
void StartActivityTimer(String taskType, String metadata, DateTime startTime) async{
final prefs = await SharedPreferences.getInstance();
prefs.setString('current_activity', "$taskType<td>$metadata<td>${UserOperations.dFormat.format(startTime)}");
NotificationManager.RescheduleNotifications();
UserOperations.startOngoing(prefs.getString('current_activity')!);
}
Future<List<String>?> getOngoingData() async{
final prefs = await SharedPreferences.getInstance();
if(prefs.containsKey('current_activity')){
List<String> data = [];
try{
data = prefs.getString('current_activity')!.split('<td>');
return data;
}catch(e){
}
}else{
}
}
void StopActivityTimer() async{
final prefs = await SharedPreferences.getInstance();
try {
List<String> data = prefs.getString('current_activity')!.split("<td>");
UserOperations.addActivity(data[0], DateTime.parse(data[2]), DateTime.now(),metadata: data[1]);
}catch(e){}
prefs.remove('current_activity');
UserOperations.stopOngoing();
}
void CancelOngoingActivity() async{
final prefs = await SharedPreferences.getInstance();
prefs.remove('current_activity');
UserOperations.stopOngoing();
}
Future<List<Activity>> GetActivities(bool forceOffline) async {
if (cacheEnabled) {
List<Activity> _activities = [];
@@ -930,6 +978,61 @@ class UserOperations {
}
}
static Future<void> startOngoing(String activityData) async {
Map<String, String> queryBody = <String, String>{
'username': username,
'current_activity': activityData,
};
if (cacheEnabled) {
//Add Query
Map<String, Object> query = {Queries.colLink: 'start_ongoing', Queries.colData: jsonEncode(queryBody)};
print("adding new query ${query[Queries.colLink]} : ${jsonEncode(queryBody)}");
await cacheDb.insert('Queries', query);
} else {
try {
http.Response queryResponse = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/start_ongoing.php'), body: queryBody));
print("Query executed : Results{${queryResponse.body}");
if (queryResponse.body.toLowerCase().contains("success")) {
//Success
}
} catch (e) {
print('NC: Error adding ongoing $e}');
}
}
await executeQueries();
}
static Future<void> stopOngoing() async {
Map<String, String> queryBody = <String, String>{
'username': username,
};
if (cacheEnabled) {
//Add Query
Map<String, Object> query = {Queries.colLink: 'stop_ongoing', Queries.colData: jsonEncode(queryBody)};
print("adding new query ${query[Queries.colLink]} : ${jsonEncode(queryBody)}");
await cacheDb.insert('Queries', query);
} else {
try {
http.Response queryResponse = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/stop_ongoing.php'), body: queryBody));
print("Query executed : Results{${queryResponse.body}");
if (queryResponse.body.toLowerCase().contains("success")) {
//Success
}
} catch (e) {
print('NC: Error adding ongoing $e}');
}
}
await executeQueries();
}
static Future<void> addProject(String name, String category, List<ProjectStep> steps, DateTime deadline) async {
Map<String, String> queryBody = <String, String>{
'name': username + name,