Ongoing online
This commit is contained in:
105
lib/User.dart
105
lib/User.dart
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user