diff --git a/application/lib/data/boxes.dart b/application/lib/data/boxes.dart new file mode 100644 index 0000000..bac420d --- /dev/null +++ b/application/lib/data/boxes.dart @@ -0,0 +1,4 @@ +import 'package:hive/hive.dart'; + +late Box boxSessions; +late Box boxPreviousSessions; \ No newline at end of file diff --git a/application/lib/data/provider.dart b/application/lib/data/provider.dart index c101083..acad730 100644 --- a/application/lib/data/provider.dart +++ b/application/lib/data/provider.dart @@ -1,15 +1,16 @@ -import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:innorun/pages/map.dart'; +import 'package:hive/hive.dart'; import 'package:latlong2/latlong.dart'; -import 'package:dio/dio.dart'; + +part 'provider.g.dart'; + class CreatedSessions extends ChangeNotifier { List _sessions = []; List get sessions => _sessions; - void addSession(String name, String time, String place,List latlng ) { - _sessions.insert(0, Session(name: name, time: time, place: place, latlng: latlng)); + void addSession(String description, String time, String place,List latlng ) { + _sessions.insert(0, Session(description: description, time: time, place: place, latlng: latlng)); notifyListeners(); } void removeSession(int index) { @@ -20,28 +21,24 @@ class CreatedSessions extends ChangeNotifier { } } -class Parser { - static String base_url = 'http://localhost:5000/'; - - static Future> getSessions() async { - final response = await Dio().get(base_url); - List sessions = []; - for (var i = 0; i < response.data.length; i++) { - sessions.add(convertFromJson(response.data[i])); - } - return sessions; - } -} +@HiveType(typeId: 0) class Session { - final String name; + @HiveField(0) + final String description; + + @HiveField(1) final String time; + + @HiveField(2) final String place; + + @HiveField(3) final List latlng; - Session({required this.name, required this.time, required this.place, required this.latlng}); + Session({required this.description, required this.time, required this.place, required this.latlng}); @override String toString() { - return "time: $time, creator: $name, place: $place"; + return "Time: $time, Creator: $description, Place: $place"; } } diff --git a/application/lib/data/provider.g.dart b/application/lib/data/provider.g.dart new file mode 100644 index 0000000..7858a7a --- /dev/null +++ b/application/lib/data/provider.g.dart @@ -0,0 +1,50 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'provider.dart'; + +// ************************************************************************** +// TypeAdapterGenerator +// ************************************************************************** + +class SessionAdapter extends TypeAdapter { + @override + final int typeId = 0; + + @override + Session read(BinaryReader reader) { + final numOfFields = reader.readByte(); + final fields = { + for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), + }; + return Session( + description: fields[0] as String, + time: fields[1] as String, + place: fields[2] as String, + latlng: (fields[3] as List).cast(), + ); + } + + @override + void write(BinaryWriter writer, Session obj) { + writer + ..writeByte(4) + ..writeByte(0) + ..write(obj.description) + ..writeByte(1) + ..write(obj.time) + ..writeByte(2) + ..write(obj.place) + ..writeByte(3) + ..write(obj.latlng); + } + + @override + int get hashCode => typeId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is SessionAdapter && + runtimeType == other.runtimeType && + typeId == other.typeId; +} diff --git a/application/lib/main.dart b/application/lib/main.dart index f6dce6e..95a1de4 100644 --- a/application/lib/main.dart +++ b/application/lib/main.dart @@ -1,12 +1,17 @@ import 'package:flutter/material.dart'; -import 'package:innorun/pages/runOwerview.dart'; +import 'package:hive_flutter/adapters.dart'; import 'package:provider/provider.dart'; import 'package:innorun/data/theme.dart'; import 'package:innorun/data/provider.dart'; import 'package:innorun/pages/main_page.dart'; import 'package:innorun/pages/map.dart'; +import 'package:innorun/data/boxes.dart'; -void main() { +void main() async { + await Hive.initFlutter(); + Hive.registerAdapter(SessionAdapter()); + boxSessions = await Hive.openBox('sessionBox'); + boxPreviousSessions = await Hive.openBox('previousSessionBox'); runApp( MultiProvider( providers: [ diff --git a/application/lib/pages/TimerPage.dart b/application/lib/pages/TimerPage.dart index 0c0df25..92ce308 100644 --- a/application/lib/pages/TimerPage.dart +++ b/application/lib/pages/TimerPage.dart @@ -67,7 +67,7 @@ class _StopwatchPageState extends State { List sessions = createdSessions.sessions; List _points = sessions[widget.index].latlng; List _markers2 = []; - String name = sessions[widget.index].name; + String name = sessions[widget.index].description; String time = sessions[widget.index].time; String place = sessions[widget.index].place; for(int i = 0; i < _points.length; i++){ diff --git a/application/lib/pages/home_page.dart b/application/lib/pages/home_page.dart new file mode 100644 index 0000000..b7032d1 --- /dev/null +++ b/application/lib/pages/home_page.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; +import 'package:innorun/data/boxes.dart'; +import 'package:innorun/data/provider.dart'; + +class HomePage extends StatefulWidget { + const HomePage({super.key}); + + @override + State createState() => HomePageForState(); +} + +class HomePageForState extends State { + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + child: Padding( + padding: const EdgeInsets.all(10.0), + child: ListView.builder( + itemCount: boxSessions.length, + itemBuilder: (context, index) { + Session session = boxSessions.getAt(index); + return ListTile( + leading: IconButton( + onPressed: () { + setState(() { + boxSessions.deleteAt(index); + }); + }, + icon: const Icon(Icons.delete), + ), + title: Text(session.description), + subtitle: const Text('Description'), + trailing: Text('Time: ${session.time}'), + ); + }, + ) + ) + ) + ) + ) + ], + ) + ); + } + +} \ No newline at end of file diff --git a/application/lib/pages/main_page.dart b/application/lib/pages/main_page.dart index 3a7585c..f9e002e 100644 --- a/application/lib/pages/main_page.dart +++ b/application/lib/pages/main_page.dart @@ -1,9 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:innorun/data/provider.dart'; import 'package:innorun/data/theme.dart'; import 'package:provider/provider.dart'; import 'package:innorun/pages/map.dart'; -import 'package:innorun/pages/runOwerview.dart'; +import 'home_page.dart'; import 'HistoryPage.dart'; @@ -24,6 +23,7 @@ class HomePage extends State { MapScreen(), Icon(Icons.book_outlined), ]; + Color navigationBarIconColor = Colors.black; @override @@ -43,28 +43,7 @@ class HomePage extends State { ), ], ), - body: Center( - child: Column( - children: [ - Expanded( - child: ListView.builder( - itemCount: Provider.of(context).sessions.length, - itemBuilder: (context, index) { - return ElevatedButton( - onPressed: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => MapScreenn(index : index)), - ); - }, - child: Text(Provider.of(context).sessions[index].toString()), - ); - }, - ), - ) - ], - ), - ), + body: body[currentIndex], bottomNavigationBar: BottomNavigationBar( currentIndex: currentIndex, type: BottomNavigationBarType.fixed, @@ -72,18 +51,7 @@ class HomePage extends State { onTap: (index) { setState(() { currentIndex = index; - if (currentIndex == 2) { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => const MapScreen()), - ); - } - if (currentIndex == 1) { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => const Historypage()), - ); - } + body[currentIndex]; }); }, items: const [ diff --git a/application/lib/pages/map.dart b/application/lib/pages/map.dart index 9fb9b3d..2fdb70d 100644 --- a/application/lib/pages/map.dart +++ b/application/lib/pages/map.dart @@ -1,40 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_map/flutter_map.dart'; +import 'package:innorun/data/boxes.dart'; import 'package:latlong2/latlong.dart'; import 'package:provider/provider.dart'; -import 'dart:convert'; import '../data/provider.dart'; -void main() { - runApp(MaterialApp(home: MapScreen())); -} - -void convertToJson(List _latlng, String name, String time, String place){ - String pointsJson = jsonEncode(_latlng.map((point) => point.toJson()).toList()); - var event = { - 'date': time, - 'owner': name, - 'route': pointsJson, - }; - String jsonEvent = jsonEncode(event); - // print(pointsJson); - convertFromJson(jsonEvent); -} - -Session convertFromJson(String jsonString) { - Map jsonData = jsonDecode(jsonString); - String name = jsonData['owner']; - String time = jsonData['date']; - String place = jsonData['place']; - List pointsJson = jsonDecode(jsonData['route']); - List latlng = pointsJson.map((point) => LatLng.fromJson(point)).toList(); - - print('Name: $name'); - print('Time: $time'); - print('LatLng: ${latlng}'); - return Session(name: name, time: time, place: place, latlng: latlng); -} - class MapScreen extends StatefulWidget { const MapScreen({Key? key}) : super(key: key); @@ -225,8 +195,8 @@ class _MapScreenState extends State { String name = nameController.text; String time = timeController.text; String place = placeController.text; - convertToJson(_points, name, time, place); Provider.of(context, listen: false).addSession(name, time, place, _points); + boxSessions.put('key_$name', Session(description: name, time: time, place: place, latlng: _points)); Navigator.pushNamed(context, '/'); }, style: ButtonStyle( diff --git a/application/lib/pages/runOwerview.dart b/application/lib/pages/runOwerview.dart index 527de19..694944b 100644 --- a/application/lib/pages/runOwerview.dart +++ b/application/lib/pages/runOwerview.dart @@ -3,7 +3,6 @@ import 'package:flutter_map/flutter_map.dart'; import 'package:latlong2/latlong.dart'; import 'package:provider/provider.dart'; import '../data/provider.dart'; -import 'package:innorun/pages/main_page.dart'; import 'TimerPage.dart'; @@ -35,7 +34,7 @@ class _MapScreenState extends State { Widget build(BuildContext context) { CreatedSessions createdSessions = Provider.of(context, listen: false); List sessions = createdSessions.sessions; - String name = sessions[widget.index].name; + String name = sessions[widget.index].description; String time = sessions[widget.index].time; String place = sessions[widget.index].place; List _points = sessions[widget.index].latlng; diff --git a/application/lib/pages/smth.dart b/application/lib/pages/smth.dart deleted file mode 100644 index 59191b3..0000000 --- a/application/lib/pages/smth.dart +++ /dev/null @@ -1,11 +0,0 @@ -// //file for test ideas -// -// for(int i = 0; i < _latlng.length; i++){ -// markers2.add(Marker( -// point: _latlng[i], -// child: markers2.isEmpty? const Icon(Icons.pin_drop, color: Colors.black) : -// const Icon(Icons.run_circle_rounded, color: Colors.black) -// )); -// } -// print('----------------------'); -// print(markers2[0].point); \ No newline at end of file diff --git a/application/macos/Flutter/GeneratedPluginRegistrant.swift b/application/macos/Flutter/GeneratedPluginRegistrant.swift index cccf817..e777c67 100644 --- a/application/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/application/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,8 @@ import FlutterMacOS import Foundation +import path_provider_foundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) } diff --git a/application/pubspec.lock b/application/pubspec.lock index b8e7a6c..defa427 100644 --- a/application/pubspec.lock +++ b/application/pubspec.lock @@ -1,6 +1,30 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" + url: "https://pub.dev" + source: hosted + version: "67.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" + url: "https://pub.dev" + source: hosted + version: "6.4.1" + args: + dependency: transitive + description: + name: args + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + url: "https://pub.dev" + source: hosted + version: "2.5.0" async: dependency: transitive description: @@ -17,6 +41,70 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "644dc98a0f179b872f612d3eb627924b578897c629788e858157fa5e704ca0c7" + url: "https://pub.dev" + source: hosted + version: "2.4.11" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: e3c79f69a64bdfcd8a776a3c28db4eb6e3fb5356d013ae5eb2e52007706d5dbe + url: "https://pub.dev" + source: hosted + version: "7.3.1" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + url: "https://pub.dev" + source: hosted + version: "8.9.2" characters: dependency: transitive description: @@ -25,6 +113,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" clock: dependency: transitive description: @@ -33,6 +129,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 + url: "https://pub.dev" + source: hosted + version: "4.10.0" collection: dependency: transitive description: @@ -41,6 +145,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.18.0" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" cupertino_icons: dependency: "direct main" description: @@ -57,6 +177,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + url: "https://pub.dev" + source: hosted + version: "2.3.6" dio: dependency: "direct main" description: @@ -73,6 +201,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" flutter: dependency: "direct main" description: flutter @@ -99,6 +251,54 @@ packages: description: flutter source: sdk version: "0.0.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + graphs: + dependency: transitive + description: + name: graphs + sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + hive: + dependency: "direct main" + description: + name: hive + sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941" + url: "https://pub.dev" + source: hosted + version: "2.2.3" + hive_flutter: + dependency: "direct main" + description: + name: hive_flutter + sha256: dca1da446b1d808a51689fb5d0c6c9510c0a2ba01e22805d492c73b68e33eecc + url: "https://pub.dev" + source: hosted + version: "1.1.0" + hive_generator: + dependency: "direct dev" + description: + name: hive_generator + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" + url: "https://pub.dev" + source: hosted + version: "2.0.1" http: dependency: transitive description: @@ -107,6 +307,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.1" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" http_parser: dependency: transitive description: @@ -123,6 +331,30 @@ packages: url: "https://pub.dev" source: hosted version: "0.19.0" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf + url: "https://pub.dev" + source: hosted + version: "0.7.1" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" latlong2: dependency: "direct main" description: @@ -179,6 +411,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" + logging: + dependency: transitive + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.dev" + source: hosted + version: "1.2.0" matcher: dependency: transitive description: @@ -211,6 +451,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + mime: + dependency: transitive + description: + name: mime + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" + url: "https://pub.dev" + source: hosted + version: "1.0.5" nested: dependency: transitive description: @@ -219,6 +467,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" path: dependency: transitive description: @@ -227,6 +483,70 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.0" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 + url: "https://pub.dev" + source: hosted + version: "2.1.3" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: bca87b0165ffd7cdb9cad8edd22d18d2201e886d9a9f19b4fb3452ea7df3a72a + url: "https://pub.dev" + source: hosted + version: "2.2.6" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + url: "https://pub.dev" + source: hosted + version: "2.4.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + url: "https://pub.dev" + source: hosted + version: "2.2.1" + platform: + dependency: transitive + description: + name: platform + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" polylabel: dependency: transitive description: @@ -235,6 +555,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.1" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" proj4dart: dependency: transitive description: @@ -251,11 +579,59 @@ packages: url: "https://pub.dev" source: hosted version: "6.1.2" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + shelf: + dependency: transitive + description: + name: shelf + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" + url: "https://pub.dev" + source: hosted + version: "2.0.0" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" + url: "https://pub.dev" + source: hosted + version: "1.3.4" source_span: dependency: transitive description: @@ -280,6 +656,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.dev" + source: hosted + version: "2.1.0" string_scanner: dependency: transitive description: @@ -304,6 +688,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.7.0" + timing: + dependency: transitive + description: + name: timing + sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + url: "https://pub.dev" + source: hosted + version: "1.0.1" typed_data: dependency: transitive description: @@ -336,6 +728,14 @@ packages: url: "https://pub.dev" source: hosted version: "14.2.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" web: dependency: transitive description: @@ -344,6 +744,30 @@ packages: url: "https://pub.dev" source: hosted version: "0.5.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "24301d8c293ce6fe327ffe6f59d8fd8834735f0ec36e4fd383ec7ff8a64aa078" + url: "https://pub.dev" + source: hosted + version: "0.1.5" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: a2d56211ee4d35d9b344d9d4ce60f362e4f5d1aafb988302906bd732bc731276 + url: "https://pub.dev" + source: hosted + version: "3.0.0" + win32: + dependency: transitive + description: + name: win32 + sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4 + url: "https://pub.dev" + source: hosted + version: "5.5.1" wkt_parser: dependency: transitive description: @@ -352,6 +776,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" sdks: dart: ">=3.4.1 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + flutter: ">=3.22.0" diff --git a/application/pubspec.yaml b/application/pubspec.yaml index 811891f..cfc4127 100644 --- a/application/pubspec.yaml +++ b/application/pubspec.yaml @@ -30,6 +30,8 @@ environment: dependencies: flutter: sdk: flutter + hive: + hive_flutter: # The following adds the Cupertino Icons font to your application. @@ -44,6 +46,8 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter + hive_generator: + build_runner: # The "flutter_lints" package below contains a set of recommended lints to # encourage good coding practices. The lint set provided by the package is