Merge pull request 'dynamic location tracking and according logic' (#3) from feature/app-navigation-mockup into main
Some checks failed
Test code / Test code (push) Failing after 43s
Some checks failed
Test code / Test code (push) Failing after 43s
Reviewed-on: remoll/fast-network-navigation#3
This commit is contained in:
commit
c2e43622ff
25
.drone.yml
25
.drone.yml
@ -1,25 +0,0 @@
|
|||||||
kind: pipeline
|
|
||||||
type: kubernetes
|
|
||||||
name: build-apk
|
|
||||||
|
|
||||||
clone:
|
|
||||||
depth: 1
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build
|
|
||||||
image: cirrusci/flutter:stable
|
|
||||||
pull: true
|
|
||||||
commands:
|
|
||||||
- flutter packages get
|
|
||||||
- flutter build apk --release --split-per-abi
|
|
||||||
- mkdir apks
|
|
||||||
- mv build/app/outputs/apk/*/*/*.apk apks
|
|
||||||
|
|
||||||
- name: Publish APK
|
|
||||||
image: plugins/gitea-release
|
|
||||||
settings:
|
|
||||||
api_key:
|
|
||||||
from_secret: GITEA_TOKEN
|
|
||||||
trigger:
|
|
||||||
event:
|
|
||||||
- push
|
|
@ -1,5 +1,10 @@
|
|||||||
on: push
|
on:
|
||||||
name: Test, Build and Release apk
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
name: Build and release APK
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: Build APK
|
name: Build APK
|
||||||
@ -10,6 +15,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y xz-utils unzip
|
sudo apt-get install -y xz-utils unzip
|
||||||
|
|
||||||
- uses: https://gitea.com/actions/checkout@v4
|
- uses: https://gitea.com/actions/checkout@v4
|
||||||
|
|
||||||
- uses: https://github.com/actions/setup-java@v4
|
- uses: https://github.com/actions/setup-java@v4
|
||||||
@ -22,19 +28,22 @@ jobs:
|
|||||||
channel: stable
|
channel: stable
|
||||||
flutter-version: 3.19.6
|
flutter-version: 3.19.6
|
||||||
cache: true
|
cache: true
|
||||||
|
|
||||||
- name: Setup Android SDK
|
- name: Setup Android SDK
|
||||||
uses: https://github.com/android-actions/setup-android@v3
|
uses: https://github.com/android-actions/setup-android@v3
|
||||||
|
|
||||||
- run: flutter pub get
|
- run: flutter pub get
|
||||||
# - run: flutter test
|
|
||||||
- run: flutter build apk --debug --split-per-abi
|
- run: flutter build apk --debug --split-per-abi
|
||||||
|
|
||||||
- name: Release APK
|
- name: Release APK
|
||||||
uses: https://gitea.com/akkuman/gitea-release-action@v1
|
uses: https://gitea.com/akkuman/gitea-release-action@v1
|
||||||
with:
|
with:
|
||||||
files: build/app/outputs/flutter-apk/*.apk
|
files: build/app/outputs/flutter-apk/*.apk
|
||||||
|
name: Testing release
|
||||||
|
release_name: testing
|
||||||
tag: testing
|
tag: testing
|
||||||
release_name: Testing release
|
tag_name: testing
|
||||||
release_body: "This is a testing release."
|
release_body: "This is a testing release."
|
||||||
prerelease: true
|
prerelease: true
|
||||||
token: ${{ secrets.GITEA_TOKEN }}
|
token: ${{ secrets.GITEA_TOKEN }}
|
||||||
|
@ -1,21 +1,30 @@
|
|||||||
on: push
|
on:
|
||||||
name: Test, Build and Release web
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
name: Build web
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: Build Web
|
name: Build Web
|
||||||
runs-on: k8s
|
runs-on: k8s
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Install prerequisites
|
- name: Install prerequisites
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y xz-utils
|
sudo apt-get install -y xz-utils
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: https://github.com/subosito/flutter-action@v2
|
- uses: https://github.com/subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: stable
|
channel: stable
|
||||||
flutter-version: 3.19.6
|
flutter-version: 3.19.6
|
||||||
cache: true
|
cache: true
|
||||||
- run: flutter pub get
|
|
||||||
# - run: flutter test
|
- run: flutter pub get
|
||||||
|
|
||||||
|
- run: flutter build web
|
||||||
|
|
||||||
|
31
.gitea/workflows/test.yaml
Normal file
31
.gitea/workflows/test.yaml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
|
||||||
|
name: Test code
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
name: Test code
|
||||||
|
runs-on: k8s
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y xz-utils
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: https://github.com/subosito/flutter-action@v2
|
||||||
|
with:
|
||||||
|
channel: stable
|
||||||
|
flutter-version: 3.19.6
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
- run: flutter pub get
|
||||||
|
|
||||||
|
- run: flutter test
|
40
lib/modules/destination_card.dart
Normal file
40
lib/modules/destination_card.dart
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/widgets.dart';
|
||||||
|
|
||||||
|
|
||||||
|
class DestinationCard extends StatefulWidget {
|
||||||
|
final String title;
|
||||||
|
final String description;
|
||||||
|
final String image;
|
||||||
|
bool visited;
|
||||||
|
|
||||||
|
@override
|
||||||
|
_DestinationCardState createState() => _DestinationCardState();
|
||||||
|
|
||||||
|
|
||||||
|
DestinationCard(this.title, this.description, this.image, this.visited);
|
||||||
|
|
||||||
|
Widget build() {
|
||||||
|
return Card(
|
||||||
|
child: ListTile(
|
||||||
|
leading: Icon(Icons.location_on),
|
||||||
|
title: Text(title),
|
||||||
|
subtitle: Text(description),
|
||||||
|
onTap: () {
|
||||||
|
// Navigator.pushNamed(context, '/destination');
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class _DestinationCardState extends State<DestinationCard> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Card();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,13 +1,62 @@
|
|||||||
|
import 'package:fast_network_navigation/modules/destination_card.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
Widget singleDestination(BuildContext context, String title, String description, String image) {
|
|
||||||
|
List<Widget> loadDestinations() {
|
||||||
|
List<Widget> cities = [
|
||||||
|
singleDestination(
|
||||||
|
"New York",
|
||||||
|
"The Big Apple",
|
||||||
|
"https://upload.wikimedia.org/wikipedia/commons/thumb/3/34/View_of_New_York_City.jpg/800px-View_of_New_York_City.jpg"
|
||||||
|
),
|
||||||
|
singleDestination(
|
||||||
|
"Los Angeles",
|
||||||
|
"City of Angels",
|
||||||
|
"https://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Los_Angeles_City_Hall_2013.jpg/800px-Los_Angeles_City_Hall_2013.jpg"
|
||||||
|
),
|
||||||
|
singleDestination(
|
||||||
|
"Chicago",
|
||||||
|
"The Windy City",
|
||||||
|
"https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Chicago_skyline%2C_viewed_from_John_Hancock_Center.jpg/800px-Chicago_skyline%2C_viewed_from_John_Hancock_Center.jpg"
|
||||||
|
),
|
||||||
|
singleDestination(
|
||||||
|
"San Francisco",
|
||||||
|
"The Golden City",
|
||||||
|
"https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/San_Francisco_City_Hall_2013.jpg/800px-San_Francisco_City_Hall_2013.jpg"
|
||||||
|
),
|
||||||
|
singleDestination(
|
||||||
|
"Miami",
|
||||||
|
"The Magic City",
|
||||||
|
"https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Miami_collage.jpg/800px-Miami_collage.jpg"
|
||||||
|
),
|
||||||
|
singleDestination(
|
||||||
|
"Las Vegas",
|
||||||
|
"Sin City",
|
||||||
|
"https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Las_Vegas_Strip.jpg/800px-Las_Vegas_Strip.jpg"
|
||||||
|
),
|
||||||
|
singleDestination(
|
||||||
|
"Seattle",
|
||||||
|
"Emerald City",
|
||||||
|
"https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Seattle_Kerry_Park_Skyline.jpg/800px-Seattle_Kerry_Park_Skyline.jpg"
|
||||||
|
),
|
||||||
|
singleDestination(
|
||||||
|
"Boston",
|
||||||
|
"Beantown",
|
||||||
|
"https://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/Boston_skyline_from_Longfellow_Bridge_September_2017_panorama_2.jpg/800px-Boston"
|
||||||
|
)
|
||||||
|
];
|
||||||
|
cities.shuffle();
|
||||||
|
return cities;
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget singleDestination(String title, String description, String image) {
|
||||||
return Card(
|
return Card(
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
leading: Icon(Icons.location_on),
|
leading: Icon(Icons.location_on),
|
||||||
title: Text(title),
|
title: Text(title),
|
||||||
subtitle: Text(description),
|
subtitle: Text(description),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.pushNamed(context, '/destination');
|
// Navigator.pushNamed(context, '/destination');
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -1,14 +1,74 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_map/flutter_map.dart';
|
import 'package:flutter_map/flutter_map.dart';
|
||||||
import 'package:sliding_up_panel/sliding_up_panel.dart';
|
import 'package:sliding_up_panel/sliding_up_panel.dart';
|
||||||
|
import 'package:latlong2/latlong.dart';
|
||||||
|
import 'package:geocoding/geocoding.dart';
|
||||||
|
import 'package:geocode/geocode.dart';
|
||||||
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:fast_network_navigation/modules/navigation.dart';
|
import 'package:fast_network_navigation/modules/navigation.dart';
|
||||||
|
|
||||||
class MapPage extends StatefulWidget {
|
class MapPage extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
_MapPageState createState() => _MapPageState();
|
_MapPageState createState() => _MapPageState();
|
||||||
}
|
}
|
||||||
|
class Debounce {
|
||||||
|
Duration delay;
|
||||||
|
Timer? _timer;
|
||||||
|
|
||||||
|
Debounce(
|
||||||
|
this.delay,
|
||||||
|
);
|
||||||
|
|
||||||
|
call(void Function() callback) {
|
||||||
|
_timer?.cancel();
|
||||||
|
_timer = Timer(delay, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
dispose() {
|
||||||
|
_timer?.cancel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class _MapPageState extends State<MapPage> {
|
class _MapPageState extends State<MapPage> {
|
||||||
|
GeoCode geoCode = GeoCode();
|
||||||
|
final mapController = MapController();
|
||||||
|
String _currentCityName = "...";
|
||||||
|
final Debounce _debounce = Debounce(Duration(seconds: 3));
|
||||||
|
|
||||||
|
void _setCurrentCityName() async {
|
||||||
|
if (mapController.camera.zoom < 9) {
|
||||||
|
return; // Don't bother if the view is too wide
|
||||||
|
}
|
||||||
|
var currentCoordinates = mapController.camera.center;
|
||||||
|
String? city;
|
||||||
|
|
||||||
|
try{
|
||||||
|
List<Placemark> placemarks = await placemarkFromCoordinates(currentCoordinates.latitude, currentCoordinates.longitude);
|
||||||
|
city = placemarks[0].locality.toString();
|
||||||
|
} catch (e) {
|
||||||
|
debugPrint("Error: $e");
|
||||||
|
try {
|
||||||
|
Address address = await geoCode.reverseGeocoding(latitude: currentCoordinates.latitude, longitude: currentCoordinates.longitude);
|
||||||
|
|
||||||
|
if (address.city == null || address.city.toString().contains("Throttled!")){
|
||||||
|
throw Exception("Probably rate limited");
|
||||||
|
}
|
||||||
|
city = address.city.toString();
|
||||||
|
} catch (e) {
|
||||||
|
debugPrint("Error: $e");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (city != null) {
|
||||||
|
setState(() {
|
||||||
|
_currentCityName = city!;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_debounce(() async {_setCurrentCityName();});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -18,8 +78,15 @@ class _MapPageState extends State<MapPage> {
|
|||||||
panel: _floatingPanel(theme),
|
panel: _floatingPanel(theme),
|
||||||
collapsed: _floatingCollapsed(theme),
|
collapsed: _floatingCollapsed(theme),
|
||||||
body: FlutterMap(
|
body: FlutterMap(
|
||||||
|
mapController: mapController,
|
||||||
options: MapOptions(
|
options: MapOptions(
|
||||||
initialZoom: 11,
|
initialZoom: 11,
|
||||||
|
initialCenter: LatLng(51.509364, -0.128928),
|
||||||
|
onMapReady: () {
|
||||||
|
mapController.mapEventStream.listen((evt) {_debounce(() async {_setCurrentCityName();});});
|
||||||
|
// And any other `MapController` dependent non-movement methods
|
||||||
|
},
|
||||||
|
|
||||||
),
|
),
|
||||||
children: [
|
children: [
|
||||||
openStreetMapTileLayer,
|
openStreetMapTileLayer,
|
||||||
@ -59,14 +126,7 @@ class _MapPageState extends State<MapPage> {
|
|||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Greeting(theme),
|
Greeting(theme),
|
||||||
Text("Got a lot to do today! Here is a rundown:"),
|
Text("Got a lot to do today! Here is a rundown:"),
|
||||||
singleDestination(context, "Location 1", "some description", "Further information"),
|
...loadDestinations(),
|
||||||
singleDestination(context, "Location 2", "some description", "Further information"),
|
|
||||||
singleDestination(context, "Location 3", "some description", "Further information"),
|
|
||||||
singleDestination(context, "Location 4", "some description", "Further information"),
|
|
||||||
singleDestination(context, "Location 5", "some description", "Further information"),
|
|
||||||
singleDestination(context, "Location 6", "some description", "Further information"),
|
|
||||||
singleDestination(context, "Location 7", "some description", "Further information"),
|
|
||||||
singleDestination(context, "Location 8", "some description", "Further information"),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -78,7 +138,7 @@ class _MapPageState extends State<MapPage> {
|
|||||||
Widget Greeting (ThemeData theme) {
|
Widget Greeting (ThemeData theme) {
|
||||||
return Center(
|
return Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
"Explore Kview",
|
"Explore ${_currentCityName}",
|
||||||
style: TextStyle(color: theme.primaryColor, fontSize: 24.0, fontWeight: FontWeight.bold),
|
style: TextStyle(color: theme.primaryColor, fontSize: 24.0, fontWeight: FontWeight.bold),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
31
lib/structs/destination.dart
Normal file
31
lib/structs/destination.dart
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
|
||||||
|
class Destination {
|
||||||
|
final double latitude;
|
||||||
|
final double longitude;
|
||||||
|
final String name;
|
||||||
|
final String description;
|
||||||
|
final DestinationType type;
|
||||||
|
final Duration duration;
|
||||||
|
final bool visited;
|
||||||
|
|
||||||
|
Destination({
|
||||||
|
required this.latitude,
|
||||||
|
required this.longitude,
|
||||||
|
required this.name,
|
||||||
|
required this.description,
|
||||||
|
required this.type,
|
||||||
|
required this.duration,
|
||||||
|
required this.visited,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class DestinationType {
|
||||||
|
final String name;
|
||||||
|
final String description;
|
||||||
|
|
||||||
|
DestinationType({
|
||||||
|
required this.name,
|
||||||
|
required this.description,
|
||||||
|
});
|
||||||
|
}
|
76
pubspec.lock
76
pubspec.lock
@ -83,6 +83,46 @@ packages:
|
|||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
version: "0.0.0"
|
||||||
|
geocode:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: geocode
|
||||||
|
sha256: cf9727c369bb3703b97d6e440225962dc27b7f3c686662fe3cdcc91cbfb7074d
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.3"
|
||||||
|
geocoding:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: geocoding
|
||||||
|
sha256: d580c801cba9386b4fac5047c4c785a4e19554f46be42f4f5e5b7deacd088a66
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.0"
|
||||||
|
geocoding_android:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: geocoding_android
|
||||||
|
sha256: "1b13eca79b11c497c434678fed109c2be020b158cec7512c848c102bc7232603"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.3.1"
|
||||||
|
geocoding_ios:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: geocoding_ios
|
||||||
|
sha256: "94ddba60387501bd1c11e18dca7c5a9e8c645d6e3da9c38b9762434941870c24"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.1"
|
||||||
|
geocoding_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: geocoding_platform_interface
|
||||||
|
sha256: "8c2c8226e5c276594c2e18bfe88b19110ed770aeb7c1ab50ede570be8b92229b"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.2.0"
|
||||||
http:
|
http:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -108,7 +148,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "0.19.0"
|
version: "0.19.0"
|
||||||
latlong2:
|
latlong2:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: latlong2
|
name: latlong2
|
||||||
sha256: "98227922caf49e6056f91b6c56945ea1c7b166f28ffcd5fb8e72fc0b453cc8fe"
|
sha256: "98227922caf49e6056f91b6c56945ea1c7b166f28ffcd5fb8e72fc0b453cc8fe"
|
||||||
@ -119,26 +159,26 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker
|
name: leak_tracker
|
||||||
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
|
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.0"
|
version: "10.0.4"
|
||||||
leak_tracker_flutter_testing:
|
leak_tracker_flutter_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_flutter_testing
|
name: leak_tracker_flutter_testing
|
||||||
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
|
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.1"
|
version: "3.0.3"
|
||||||
leak_tracker_testing:
|
leak_tracker_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_testing
|
name: leak_tracker_testing
|
||||||
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
|
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.1"
|
version: "3.0.1"
|
||||||
lints:
|
lints:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -183,10 +223,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
|
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.11.0"
|
version: "1.12.0"
|
||||||
mgrs_dart:
|
mgrs_dart:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -203,6 +243,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.0"
|
version: "1.9.0"
|
||||||
|
plugin_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: plugin_platform_interface
|
||||||
|
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.8"
|
||||||
polylabel:
|
polylabel:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -276,10 +324,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.1"
|
version: "0.7.0"
|
||||||
typed_data:
|
typed_data:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -308,10 +356,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vm_service
|
name: vm_service
|
||||||
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
|
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "13.0.0"
|
version: "14.2.1"
|
||||||
web:
|
web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -330,4 +378,4 @@ packages:
|
|||||||
version: "2.0.0"
|
version: "2.0.0"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.3.4 <4.0.0"
|
dart: ">=3.3.4 <4.0.0"
|
||||||
flutter: ">=3.10.0"
|
flutter: ">=3.18.0-18.0.pre.54"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name: fast_network_navigation
|
name: "fast_network_navigation"
|
||||||
description: "A new Flutter project."
|
description: "An interactive city navigator."
|
||||||
# The following line prevents the package from being accidentally published to
|
# The following line prevents the package from being accidentally published to
|
||||||
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
||||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||||
@ -37,6 +37,9 @@ dependencies:
|
|||||||
cupertino_icons: ^1.0.6
|
cupertino_icons: ^1.0.6
|
||||||
flutter_map: ^6.1.0
|
flutter_map: ^6.1.0
|
||||||
sliding_up_panel: ^2.0.0+1
|
sliding_up_panel: ^2.0.0+1
|
||||||
|
latlong2: ^0.9.1
|
||||||
|
geocoding: ^3.0.0
|
||||||
|
geocode: ^1.0.3
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user