Skip to content
Snippets Groups Projects
Commit 54b7d1c8 authored by Sara Savanovic Djordjevic's avatar Sara Savanovic Djordjevic
Browse files

update: save last relation, buggy

parent cb6c8af5
No related branches found
No related tags found
1 merge request!7Clhp map
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import '../consts.dart';
import 'dart:typed_data';
import 'package:path_provider/path_provider.dart';
import '../consts.dart';
/// Fetch relation data from server
Future<Uint8List> fetchRelation() async {
......@@ -21,16 +23,38 @@ Future<Uint8List> fetchRelation() async {
var responseBody = await response.transform(utf8.decoder).join();
if (responseBody.isNotEmpty) {
Directory appDocumentsDirectory = await getApplicationDocumentsDirectory();
String filePath = '${appDocumentsDirectory.path}/last_relation.json';
try { // Write most recent time of update to file
await File(filePath).writeAsString(responseBody, mode: FileMode.write);
print('Relation written to file');
} catch (error) { print('Error in writing to file: $error');}
// Return relation data from the response body
return Uint8List.fromList(utf8.encode(responseBody));
} else {
throw Exception('Response body is empty');
}
} else {
throw Exception('Failed to fetch relation data: Status code ${response.statusCode}');
}
return loadSavedRelation();
} catch (e) {
throw Exception('Failed to fetch relation data: ${e.toString()}');
return loadSavedRelation();
}
}
Future<Uint8List> loadSavedRelation() async {
// Get latest saved relation from file if the server does not respond
Directory appDocumentsDirectory = await getApplicationDocumentsDirectory();
String filePath = '${appDocumentsDirectory.path}/last_relation.json';
// Read file contents
File file = File(filePath);
if (await file.exists()) {
String contents = await file.readAsString();
List<dynamic> jsonData = json.decode(contents); // Parse JSON string from file
Uint8List relation = Uint8List.fromList(utf8.encode(jsonData.toString()));
return relation;
} else {
throw Exception('File does not exist');
}
}
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'marker_data.dart';
import '../consts.dart';
import 'package:path_provider/path_provider.dart';
import 'dart:typed_data';
/// loadSavedData parses json data from a saved file, either to a list
/// of Measurement objects or a Uint8List object depending if it reads
/// measurement data or relation data.
Future<FetchResult> loadSavedData() async {
Uint8List relation;
List<Measurement> measurements = [];
// Get latest saved data from file if the server does not respond
Directory appDocumentsDirectory = await getApplicationDocumentsDirectory();
String filePath = '${appDocumentsDirectory.path}/last_data.sjon';
// Read measurement file contents
File file = File(filePath);
if (await file.exists()) {
String contents = await file.readAsString();
List<dynamic> jsonData = json.decode(contents); // Parse JSON string from file
measurements = jsonData.map((data) => Measurement.fromJson(data)).toList();
} else {
throw Exception('File does not exist');
}
filePath = '${appDocumentsDirectory.path}/relation.json';
// Read relation file contents
file = File(filePath);
if (await file.exists()) {
String contents = await file.readAsString();
List<dynamic> jsonData = json.decode(contents); // Parse JSON string from file
relation = Uint8List.fromList(utf8.encode(jsonData.toString()));
} else {
throw Exception('File does not exist');
}
return FetchResult(relation, measurements, false);
}
class FetchResult {
final Uint8List relation;
final List<Measurement> measurements;
final bool connected;
FetchResult(this.relation, this.measurements, this.connected);
}
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment