Online tracking, deviceidentityservice
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:latlong2/latlong.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
import 'package:terepi_seged/services/project_service.dart';
|
||||
import 'package:terepi_seged/services/track_sync_service.dart';
|
||||
|
||||
import '../../../../services/location_source.dart';
|
||||
import '../../../../services/phone_gps_source.dart';
|
||||
@@ -150,6 +151,20 @@ class TrackingController extends GetxController {
|
||||
callback: startTrackingCallback,
|
||||
);
|
||||
|
||||
if (!(currentTrack.value?.isLocalOnly ?? true)) {
|
||||
TrackSyncService.to
|
||||
.createRemoteTrack(currentTrack.value!)
|
||||
.then((supabaseId) async {
|
||||
if (supabaseId == null) return;
|
||||
final updated = currentTrack.value!.copyWith(supabaseId: supabaseId);
|
||||
await _db.updateTrack(updated);
|
||||
currentTrack.value = updated;
|
||||
TrackSyncService.to.startSession(updated);
|
||||
});
|
||||
} else {
|
||||
TrackSyncService.to.startSession(currentTrack.value!);
|
||||
}
|
||||
|
||||
// GPS stream feliratkozás
|
||||
_positionSub = _source!.positionStream.listen(
|
||||
_onPosition,
|
||||
@@ -207,6 +222,7 @@ class TrackingController extends GetxController {
|
||||
pointCount: livePoints.length,
|
||||
);
|
||||
await _db.updateTrack(finished);
|
||||
await TrackSyncService.to.stopSession(finished);
|
||||
currentTrack.value = finished;
|
||||
}
|
||||
|
||||
@@ -236,7 +252,7 @@ class TrackingController extends GetxController {
|
||||
try {
|
||||
final path = await _exporter.export(track);
|
||||
await Share.shareXFiles([XFile(path)],
|
||||
subject: 'Nyomvonal: ${track.name}');
|
||||
subject: 'Nyomvonal: ${track.name}.gpx');
|
||||
} catch (e) {
|
||||
Get.snackbar('Export hiba', e.toString(),
|
||||
backgroundColor: Colors.red, colorText: Colors.white);
|
||||
@@ -289,6 +305,8 @@ class TrackingController extends GetxController {
|
||||
);
|
||||
await _db.addPoint(point, _accumulatedDistance);
|
||||
|
||||
TrackSyncService.to.onNewPoint(point);
|
||||
|
||||
_lastPoint = point;
|
||||
|
||||
// UI frissítés
|
||||
|
||||
Reference in New Issue
Block a user