diff --git a/Sources/dafl_project_flutter/lib/position/location.dart b/Sources/dafl_project_flutter/lib/position/location.dart index caef5b6..cda3f07 100644 --- a/Sources/dafl_project_flutter/lib/position/location.dart +++ b/Sources/dafl_project_flutter/lib/position/location.dart @@ -1,12 +1,16 @@ import 'dart:developer'; +import '../api/api.dart'; +import 'package:dafl_project_flutter/api/track.dart'; import 'package:geolocator/geolocator.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; import 'dart:async'; import '../main.dart'; + + class Location { - static Future sendCurrentLocation() async { + static Future sendCurrentLocation() async { Uri uri = Uri.parse("http://89.83.53.34/phpmyadmin/dafldev/insert.php"); LocationPermission permission; permission = await Geolocator.checkPermission(); @@ -29,13 +33,33 @@ class Location { return getData(); } - static Future getData() async { + static Future getData() async { String actualUser = MyApp.controller.currentUser.usernameDafl; Uri uri = Uri.parse("http://89.83.53.34/phpmyadmin/dafldev/distance.php"); - http.Response response = await http.post(uri, body : { - "id" : actualUser.toString(), + http.Response response = await http.post(uri, body: { + "id": actualUser.toString(), }); var data = jsonDecode(response.body); return data.toString(); } + + static List> getTrackList(Future userList){ + int i=0; + String listOfTrack=""; + List> tracklist = []; + List> trackid = []; + userList.then((String result) { + listOfTrack = result; + List tab = result.split(","); + for (i=0; i < tab.length; i++){ + trackid.add(tab[i].split("-")); + } + for (i=0; i < trackid.length; i++){ + tracklist.add(MyApp.api.getTrackInfo(trackid[i][1])); + } + }); + return tracklist; + } } + + diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/p_main.dart b/Sources/dafl_project_flutter/lib/views/pages/main/p_main.dart index 5b3b0c0..4bf11ea 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/p_main.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/p_main.dart @@ -1,5 +1,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; +import '../../../api/track.dart'; import '../../../position/location.dart'; import '../../../presentation/custom_icons_icons.dart'; import './w_settings.dart'; @@ -9,6 +10,8 @@ import './w_profile.dart'; import './w_messages.dart'; import 'w_top.dart'; Timer? timer; +int test=0; + class MainPage extends StatefulWidget { const MainPage({Key? key}) : super(key: key); @@ -32,8 +35,14 @@ class _MainPageState extends State { @override Widget build(BuildContext context) { - Location.sendCurrentLocation(); - timer = Timer.periodic(const Duration(seconds: 72), (Timer t) => Location.sendCurrentLocation()); + Future? rep; + if (test==0){ + rep = Location.sendCurrentLocation(); + //List tracklist = Location.getTrackList(rep); + Location.getTrackList(rep); + test=0; + } + timer = Timer.periodic(const Duration(seconds: 10), (Timer t) => rep = Location.sendCurrentLocation()); double height = MediaQuery.of(context).size.height; return Scaffold( resizeToAvoidBottomInset: false,