diff --git a/android/app/build.gradle b/android/app/build.gradle index 5355468def023958b3ac8aa25660fe7ec0fa450a..3c017060a0484bf6022fa7375818dc9bac7a7e53 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -47,7 +47,7 @@ android { applicationId "com.example.router_app" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion + minSdkVersion 20 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 89d872b66336adb9f8e2ab01480213fd85ba1e4f..905e23fa8ca627247b119bd9ef7bf29ff63c6149 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -32,7 +32,8 @@ android:value="2" /> <meta-data android:name="com.google.andoid.geo.API_KEY" android:value="AIzaSyAzedQacDEZmyxAOUEEeocvehT8MEdMWys"/> - <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> - <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> </application> + + <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> </manifest> diff --git a/lib/main.dart b/lib/main.dart index 46082909150b934d73dfe699fad54d20163575dd..9aad9b747c85e611159ec7a53db39f3572affd37 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -214,17 +214,32 @@ class _MyHomePageState extends State<MyHomePage> { var destlon = _destCoordinates.longitude; // Get direction data - final response = await http.get( - Uri.parse( - 'https://api.openrouteservice.org/v2/directions/driving-car?api_key=${config.OSM_API}&start=$originlon,$originlat&end=$destlon,$destlat', + // No weather or days included for now + final response = await http.post( + Uri.parse('http://10.0.2.2:8080/route'), + body: jsonEncode( + { + "start_node": { + "lat": originlat, + "lon": originlon + }, + "end_node": { + "lat": destlat, + "lon": destlon + }, + "forbidden": [], + "start_after_today": 0, + "end_after_today": 0 + } ), + headers: <String, String>{"Content-Type": "application/json"} ); _data = jsonDecode(response.body); - var coordinates = _data['features'][0]['geometry']['coordinates']; - double duration = - _data['features'][0]['properties']['segments'][0]['duration']; - double distance = - _data['features'][0]['properties']['segments'][0]['distance']; + var coordinates = _data['route']; + int duration = _data['duration']; + int distance = _data['distance']; + //TODO include day + int daysAfterToday = _data['days_after_today']; // Format duration and distance _totalDuration = getTotalDuration(duration); @@ -260,12 +275,11 @@ class _MyHomePageState extends State<MyHomePage> { // Draw polyline based on given coordinates for (int i = 0; i < ls.lineString.length; i++) { - _polyline.add(latlng.LatLng(ls.lineString[i][1], ls.lineString[i][0])); + _polyline.add(latlng.LatLng(ls.lineString[i][0], ls.lineString[i][1])); } } - String getTotalDuration(double duration) { - double durationInMins = duration / 60; + String getTotalDuration(int durationInMins) { int hours = (durationInMins / 60).floor(); int min = (durationInMins % 60).floor(); if (hours != 0) { @@ -274,7 +288,7 @@ class _MyHomePageState extends State<MyHomePage> { return '$min mins'; } - String getTotalDistance(double distance) { + String getTotalDistance(int distance) { int distanceInKm = (distance / 1000).ceil(); return '$distanceInKm km'; } @@ -954,8 +968,9 @@ class _MyHomePageState extends State<MyHomePage> { itemCount: 1, padding: EdgeInsets.all(20), itemBuilder: (BuildContext context, int index) { - return Expanded( - child: Column( + return Stack( + children: [ + Column( children: [ Container( margin: EdgeInsets.only(bottom: 15, top: 5), @@ -1231,6 +1246,7 @@ class _MyHomePageState extends State<MyHomePage> { ), ], ), + ], ); }, ),