saving refactorings

This commit is contained in:
Lucas Oskorep
2023-01-29 00:39:03 -05:00
parent 342e567736
commit f2e7527929
13 changed files with 17328 additions and 249 deletions
+2
View File
@@ -47,3 +47,5 @@ app.*.map.json
/android/app/release /android/app/release
/assets/mobilenetv2_gpu.tflite /assets/mobilenetv2_gpu.tflite
/assets/mobilenetv2_gpu.tflite /assets/mobilenetv2_gpu.tflite
/android/app/src/main/jniLibs/
+16586
View File
File diff suppressed because it is too large Load Diff
+14
View File
@@ -0,0 +1,14 @@
import 'package:tensordex_mobile/db/tables/poke_db.dart';
abstract class PokeStorageService {
Future<void> savePoke(Poke user);
Future<Poke> getPoke(String pokeId);
void addNonExistantPokes(List<Poke> pokes);
void loadDefaultPokes();
void stop();
}
+61
View File
@@ -0,0 +1,61 @@
import 'dart:convert';
import 'package:flutter/services.dart';
import 'package:hive/hive.dart';
import 'package:tensordex_mobile/db/tables/poke_db.dart';
import 'package:tensordex_mobile/db/poke_storage_service.dart';
import 'package:tensordex_mobile/hive.dart';
import '../utils/logger.dart';
/// Implementation of StorageService using Hive Key-Value DB
class PokeStorageServiceImpl implements PokeStorageService {
PokeStorageServiceImpl();
@override
Future savePoke(Poke poke) async {
final pokeBox = await Hive.openBox(pokeBoxName);
await pokeBox.put(poke.id, poke);
}
@override
Future<Poke> getPoke(String id) async {
final pokeBox = await Hive.openBox(pokeBoxName);
final poke = await pokeBox.get(id);
return poke;
}
@override
Future addNonExistantPokes(List<Poke> pokes) async {
final pokeBox = await Hive.openBox(pokeBoxName);
Future.forEach(pokes, (Poke poke) async {
if (!pokeBox.containsKey(poke.id)) {
await pokeBox.put(poke.id, poke);
}
});
}
@override
Future<void> loadDefaultPokes() async {
var allPokeJson = await _loadPokeJson();
List<Poke> pokes = [];
for (var pokeJson in allPokeJson) {
pokes.add(Poke(
id: pokeJson['id'].toString(),
name: pokeJson['name']['english'].toString(),
seen: false,
images: []));
}
await addNonExistantPokes(pokes);
}
Future<List<dynamic>> _loadPokeJson() async {
return await jsonDecode(await rootBundle.loadString('assets/pokemon.json'));
}
@override
void stop() {
Hive.close();
}
}
+29
View File
@@ -0,0 +1,29 @@
import 'package:hive/hive.dart';
part 'poke_db.g.dart';
@HiveType(typeId: 1)
class Poke {
Poke(
{required this.id,
required this.name,
required this.seen,
required this.images});
@HiveField(0)
String id;
@HiveField(1)
String name;
@HiveField(2)
bool seen;
@HiveField(3)
List<String> images;
@override
String toString() {
return '$id: $name | seen?:$seen | images: $images';
}
}
+50
View File
@@ -0,0 +1,50 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'poke_db.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class PokeAdapter extends TypeAdapter<Poke> {
@override
final int typeId = 1;
@override
Poke read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return Poke(
id: fields[0] as String,
name: fields[1] as String,
seen: fields[2] as bool,
images: (fields[3] as List).cast<String>(),
);
}
@override
void write(BinaryWriter writer, Poke obj) {
writer
..writeByte(4)
..writeByte(0)
..write(obj.id)
..writeByte(1)
..write(obj.name)
..writeByte(2)
..write(obj.seen)
..writeByte(3)
..write(obj.images);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is PokeAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
+9
View File
@@ -0,0 +1,9 @@
import 'package:get_it/get_it.dart';
import 'package:tensordex_mobile/db/poke_storage_service.dart';
import 'package:tensordex_mobile/db/poke_storage_service_impl.dart';
final getIt = GetIt.instance;
void setupGetIt() {
getIt.registerSingleton<PokeStorageService>(PokeStorageServiceImpl());
}
+13
View File
@@ -0,0 +1,13 @@
import 'dart:io';
import 'package:hive_flutter/adapters.dart';
import 'db/tables/poke_db.dart';
const pokeBoxName = 'pokes';
Future setupHive() async {
await Hive.initFlutter();
Hive.registerAdapter(PokeAdapter());
await Hive.openBox(pokeBoxName);
}
+11
View File
@@ -1,14 +1,25 @@
import 'package:camera/camera.dart'; import 'package:camera/camera.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:get_it/get_it.dart';
import 'package:tensordex_mobile/db/poke_storage_service.dart';
import 'package:tensordex_mobile/hive.dart';
import 'package:tensordex_mobile/widgets/tensordex_home.dart'; import 'package:tensordex_mobile/widgets/tensordex_home.dart';
import 'package:tensordex_mobile/utils/logger.dart'; import 'package:tensordex_mobile/utils/logger.dart';
import 'di.dart';
late List<CameraDescription> cameras; late List<CameraDescription> cameras;
GetIt getIt = GetIt.instance;
Future<void> main() async { Future<void> main() async {
await setupHive();
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
cameras = await availableCameras(); cameras = await availableCameras();
setupGetIt();
getIt<PokeStorageService>().loadDefaultPokes();
SystemChrome.setPreferredOrientations([ SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp, DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown, DeviceOrientation.portraitDown,
+59 -42
View File
@@ -5,6 +5,7 @@ import 'dart:math';
import 'package:camera/camera.dart'; import 'package:camera/camera.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:get_it/get_it.dart';
import 'package:image/image.dart'; import 'package:image/image.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:tensordex_mobile/tflite/ml_isolate.dart'; import 'package:tensordex_mobile/tflite/ml_isolate.dart';
@@ -46,6 +47,7 @@ class _PokeFinderState extends State<PokeFinder> with WidgetsBindingObserver {
double _minZoom = 1.0; double _minZoom = 1.0;
double _maxZoom = 1.0; double _maxZoom = 1.0;
double _currentZoom = 1.0; double _currentZoom = 1.0;
GetIt getIt = GetIt.instance;
late CameraController cameraController; late CameraController cameraController;
@@ -118,7 +120,7 @@ class _PokeFinderState extends State<PokeFinder> with WidgetsBindingObserver {
cameraController.initialize().then((_) async { cameraController.initialize().then((_) async {
/// previewSize is size of each image frame captured by controller /// previewSize is size of each image frame captured by controller
/// 352x288 on iOS, 240p (320x240) on Android with ResolutionPreset.low /// 352x288 on iOS, 240p (320x240) on Android with ResolutionPreset.low
await cameraController.startImageStream(onLatestImageAvailable); // await cameraController.startImageStream(onLatestImageAvailable);
_maxZoom = await cameraController.getMaxZoomLevel(); _maxZoom = await cameraController.getMaxZoomLevel();
_minZoom = await cameraController.getMinZoomLevel(); _minZoom = await cameraController.getMinZoomLevel();
setState(() { setState(() {
@@ -190,47 +192,62 @@ class _PokeFinderState extends State<PokeFinder> with WidgetsBindingObserver {
} }
return; return;
}, },
child: !_cameraReady? Container(width: 100, height: 100,): Stack( child:
clipBehavior: Clip.none, !_cameraReady ?
alignment: Alignment.center, Container(
children: [ width: 100,
AspectRatio( height: 100,
aspectRatio: 1 / cameraController.value.aspectRatio, )
child: CameraPreview(cameraController)), : Stack(
Positioned( clipBehavior: Clip.none,
top: -10, alignment: Alignment.center,
child: TextButton( children: [
onPressed: swapCamera, AspectRatio(
child: const Text('Change Camera!')), aspectRatio: 1 / cameraController.value.aspectRatio,
), child: CameraPreview(cameraController)),
Positioned( Positioned(
bottom: -10, top: -10,
child: Row( child: TextButton(
children: [ onPressed: swapCamera,
SizedBox( child: const Text('Change Camera!')),
width: MediaQuery.of(context).size.width - 100, ),
child: Slider( Positioned(
min: pow(_minZoom, 1 / _zoomSliderLogFactor) bottom: -10,
.toDouble(), child: Row(
max: pow(_maxZoom, 1 / _zoomSliderLogFactor) children: [
.toDouble(), SizedBox(
divisions: 100, width:
value: _currentZoom, MediaQuery.of(context).size.width - 100,
onChanged: (double value) { child: Slider(
logger.i('Zoom updated $value'); min: pow(_minZoom,
_currentZoom = value; 1 / _zoomSliderLogFactor)
cameraController.setZoomLevel( .toDouble(),
pow(_currentZoom, _zoomSliderLogFactor) max: pow(_maxZoom,
.toDouble()); 1 / _zoomSliderLogFactor)
})), .toDouble(),
Text( divisions: 100,
pow(_currentZoom, _zoomSliderLogFactor) value: _currentZoom,
.toStringAsFixed(2), onChanged: (double value) {
style: const TextStyle(color: Colors.lightBlue)) var newValue = pow(
// style: const TextStyle(color: Colors.lightBlue)) _currentZoom,
], _zoomSliderLogFactor)
)) .toDouble();
])), logger.i('Zoom updated $value $newValue');
_currentZoom = value;
cameraController.setZoomLevel(pow(
_currentZoom,
_zoomSliderLogFactor)
.toDouble());
})),
Text(
pow(_currentZoom, _zoomSliderLogFactor)
.toStringAsFixed(2),
style: const TextStyle(
color: Colors.lightBlue))
// style: const TextStyle(color: Colors.lightBlue))
],
))
])),
TextButton( TextButton(
onPressed: saveMLImage, child: const Text('Save Model Image')), onPressed: saveMLImage, child: const Text('Save Model Image')),
], ],
+1 -29
View File
@@ -76,7 +76,7 @@ class _TensordexHomeState extends State<TensordexHome> {
children: [ children: [
PokeFinder( PokeFinder(
resultsCallback: resultsCallback, statsCallback: statsCallback), resultsCallback: resultsCallback, statsCallback: statsCallback),
Results(results, stats), // Results(results, stats),
], ],
), ),
const Text( const Text(
@@ -96,34 +96,6 @@ class _TensordexHomeState extends State<TensordexHome> {
appBar: AppBar( appBar: AppBar(
title: Text(widget.title), title: Text(widget.title),
), ),
// drawer: Drawer(
// child: ListView(
// // Important: Remove any padding from the ListView.
// padding: EdgeInsets.zero,
// children: [
// const DrawerHeader(
// decoration: BoxDecoration(
// color: Colors.blue,
// ),
// child: Text('Drawer Header'),
// ),
// ListTile(
// title: const Text('Item 1'),
// onTap: () {
// // Update the state of the app.
// // ...
// },
// ),
// ListTile(
// title: const Text('Item 2'),
// onTap: () {
// // Update the state of the app.
// // ...
// },
// ),
// ],
// ),
// ),
body: Center( body: Center(
child: _widgetOptions.elementAt(_selectedNavBarIndex), child: _widgetOptions.elementAt(_selectedNavBarIndex),
), ),
+485 -115
View File
@@ -1,136 +1,270 @@
# Generated by pub # Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile # See https://dart.dev/tools/pub/glossary#lockfile
packages: packages:
_fe_analyzer_shared:
dependency: transitive
description:
name: _fe_analyzer_shared
sha256: "0c80aeab9bc807ab10022cd3b2f4cf2ecdf231949dc1ddd9442406a003f19201"
url: "https://pub.dev"
source: hosted
version: "52.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
sha256: cd8ee83568a77f3ae6b913a36093a1c9b1264e7cb7f834d9ddd2311dade9c1f4
url: "https://pub.dev"
source: hosted
version: "5.4.0"
archive: archive:
dependency: transitive dependency: transitive
description: description:
name: archive name: archive
url: "https://pub.dartlang.org" sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d
url: "https://pub.dev"
source: hosted source: hosted
version: "3.3.0" version: "3.3.6"
args:
dependency: transitive
description:
name: args
sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
async: async:
dependency: transitive dependency: transitive
description: description:
name: async name: async
url: "https://pub.dartlang.org" sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
url: "https://pub.dev"
source: hosted source: hosted
version: "2.8.2" version: "2.10.0"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.dartlang.org" sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
build:
dependency: transitive
description:
name: build
sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777"
url: "https://pub.dev"
source: hosted
version: "2.3.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: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
build_resolvers:
dependency: transitive
description:
name: build_resolvers
sha256: "7c35a3a7868626257d8aee47b51c26b9dba11eaddf3431117ed2744951416aab"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
build_runner:
dependency: "direct dev"
description:
name: build_runner
sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727
url: "https://pub.dev"
source: hosted
version: "2.3.3"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292"
url: "https://pub.dev"
source: hosted
version: "7.2.7"
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: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725"
url: "https://pub.dev"
source: hosted
version: "8.4.3"
camera: camera:
dependency: "direct overridden" dependency: "direct main"
description: description:
path: "packages/camera/camera" name: camera
ref: "feat/allowCameraZoomToUseAllPhysicalCameras" sha256: e7ac55af24a890d20276821eb3c95857074d03b7de6f9892b99a205ee30bd179
resolved-ref: b0e1ea90690923b859b467ccd6f40a77e7347e0b url: "https://pub.dev"
url: "https://github.com/lucasoskorep/plugins.git" source: hosted
source: git version: "0.10.3"
version: "0.10.0"
camera_android: camera_android:
dependency: "direct overridden" dependency: transitive
description: description:
path: "packages/camera/camera_android" name: camera_android
ref: "feat/allowCameraZoomToUseAllPhysicalCameras" sha256: "4cef01e8e78fe27c809a429bf74352ab94ab76b0c980e3ec708f1414614e3d9f"
resolved-ref: b0e1ea90690923b859b467ccd6f40a77e7347e0b url: "https://pub.dev"
url: "https://github.com/lucasoskorep/plugins.git" source: hosted
source: git version: "0.10.3"
version: "0.10.0+1"
camera_avfoundation: camera_avfoundation:
dependency: transitive dependency: transitive
description: description:
name: camera_avfoundation name: camera_avfoundation
url: "https://pub.dartlang.org" sha256: "6a68c20593d4cd58974d555f74a48b244f9db28cc9156de57781122d11b8754b"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.9.8+2" version: "0.9.11"
camera_platform_interface: camera_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: camera_platform_interface name: camera_platform_interface
url: "https://pub.dartlang.org" sha256: "0eedd642d905ca24f1c483fe9ea0d0e7287b86a402845c28d24df28cc7b0ee6e"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.0" version: "2.3.4"
camera_web: camera_web:
dependency: transitive dependency: transitive
description: description:
name: camera_web name: camera_web
url: "https://pub.dartlang.org" sha256: "496de93c5d462738ce991dbfe91fb19026f115ed36406700a20a380fb0018299"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.0" version: "0.3.1+1"
characters: characters:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
url: "https://pub.dartlang.org" sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.2.1"
charcode: checked_yaml:
dependency: transitive dependency: transitive
description: description:
name: charcode name: checked_yaml
url: "https://pub.dartlang.org" sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.1" version: "2.0.2"
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
url: "https://pub.dartlang.org" sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.1.1"
code_builder:
dependency: transitive
description:
name: code_builder
sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe"
url: "https://pub.dev"
source: hosted
version: "4.4.0"
collection: collection:
dependency: "direct main" dependency: "direct main"
description: description:
name: collection name: collection
url: "https://pub.dartlang.org" sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
url: "https://pub.dev"
source: hosted source: hosted
version: "1.16.0" version: "1.17.0"
convert:
dependency: transitive
description:
name: convert
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
cross_file: cross_file:
dependency: transitive dependency: transitive
description: description:
name: cross_file name: cross_file
url: "https://pub.dartlang.org" sha256: f71079978789bc2fe78d79227f1f8cfe195b31bbd8db2399b0d15a4b96fb843b
url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.3+1" version: "0.3.3+2"
crypto: crypto:
dependency: transitive dependency: transitive
description: description:
name: crypto name: crypto
url: "https://pub.dartlang.org" sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.2" version: "3.0.2"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
url: "https://pub.dartlang.org" sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.5" version: "1.0.5"
dart_style:
dependency: transitive
description:
name: dart_style
sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
url: "https://pub.dev"
source: hosted
version: "2.2.4"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.3.1"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
name: ffi name: ffi
url: "https://pub.dartlang.org" sha256: "13a6ccf6a459a125b3fcdb6ec73bd5ff90822e071207c663bfd1f70062d51d18"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.1"
file: file:
dependency: transitive dependency: transitive
description: description:
name: file name: file
url: "https://pub.dartlang.org" sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.2" version: "6.1.4"
fixnum:
dependency: transitive
description:
name: fixnum
sha256: "04be3e934c52e082558cc9ee21f42f5c1cd7a1262f4c63cd0357c08d5bba81ec"
url: "https://pub.dev"
source: hosted
version: "1.0.1"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@@ -140,16 +274,18 @@ packages:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: flutter_lints name: flutter_lints
url: "https://pub.dartlang.org" sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
flutter_plugin_android_lifecycle: flutter_plugin_android_lifecycle:
dependency: transitive dependency: transitive
description: description:
name: flutter_plugin_android_lifecycle name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org" sha256: "60fc7b78455b94e6de2333d2f95196d32cf5c22f4b0b0520a628804cb463503b"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.6" version: "2.0.7"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@@ -160,205 +296,401 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
frontend_server_client:
dependency: transitive
description:
name: frontend_server_client
sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
url: "https://pub.dev"
source: hosted
version: "3.2.0"
get_it:
dependency: "direct main"
description:
name: get_it
sha256: "290fde3a86072e4b37dbb03c07bec6126f0ecc28dad403c12ffe2e5a2d751ab7"
url: "https://pub.dev"
source: hosted
version: "7.2.0"
glob:
dependency: transitive
description:
name: glob
sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
graphs:
dependency: transitive
description:
name: graphs
sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2
url: "https://pub.dev"
source: hosted
version: "2.2.0"
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: "65998cc4d2cd9680a3d9709d893d2f6bb15e6c1f92626c3f1fa650b4b3281521"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
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:
name: http_parser
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
image: image:
dependency: "direct main" dependency: "direct main"
description: description:
name: image name: image
url: "https://pub.dartlang.org" sha256: "8e9d133755c3e84c73288363e6343157c383a0c6c56fc51afcc5d4d7180306d6"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.2.0" version: "3.3.0"
io:
dependency: transitive
description:
name: io
sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
url: "https://pub.dev"
source: hosted
version: "1.0.4"
js: js:
dependency: transitive dependency: transitive
description: description:
name: js name: js
url: "https://pub.dartlang.org" sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.4" version: "0.6.5"
json_annotation:
dependency: transitive
description:
name: json_annotation
sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
url: "https://pub.dev"
source: hosted
version: "4.8.0"
lints: lints:
dependency: transitive dependency: transitive
description: description:
name: lints name: lints
url: "https://pub.dartlang.org" sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.0" version: "2.0.1"
logger: logger:
dependency: "direct main" dependency: "direct main"
description: description:
name: logger name: logger
url: "https://pub.dartlang.org" sha256: "5076f09225f91dc49289a4ccb92df2eeea9ea01cf7c26d49b3a1f04c6a49eec1"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
logging:
dependency: transitive
description:
name: logging
sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
url: "https://pub.dartlang.org" sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.11" version: "0.12.13"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
url: "https://pub.dartlang.org" sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.4" version: "0.2.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.dartlang.org" sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.7.0" version: "1.8.0"
mime:
dependency: transitive
description:
name: mime
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
url: "https://pub.dev"
source: hosted
version: "1.0.4"
package_config:
dependency: transitive
description:
name: package_config
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
url: "https://pub.dartlang.org" sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.1" version: "1.8.2"
path_provider: path_provider:
dependency: "direct main" dependency: "direct main"
description: description:
name: path_provider name: path_provider
url: "https://pub.dartlang.org" sha256: dcea5feb97d8abf90cab9e9030b497fb7c3cbf26b7a1fe9e3ef7dcb0a1ddec95
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.11" version: "2.0.12"
path_provider_android: path_provider_android:
dependency: transitive dependency: transitive
description: description:
name: path_provider_android name: path_provider_android
url: "https://pub.dartlang.org" sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.16" version: "2.0.22"
path_provider_ios: path_provider_foundation:
dependency: transitive dependency: transitive
description: description:
name: path_provider_ios name: path_provider_foundation
url: "https://pub.dartlang.org" sha256: "62a68e7e1c6c459f9289859e2fae58290c981ce21d1697faf54910fe1faa4c74"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.10" version: "2.1.1"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
name: path_provider_linux name: path_provider_linux
url: "https://pub.dartlang.org" sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.7" version: "2.1.7"
path_provider_macos:
dependency: transitive
description:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
path_provider_platform_interface: path_provider_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: path_provider_platform_interface name: path_provider_platform_interface
url: "https://pub.dartlang.org" sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.4" version: "2.0.5"
path_provider_windows: path_provider_windows:
dependency: transitive dependency: transitive
description: description:
name: path_provider_windows name: path_provider_windows
url: "https://pub.dartlang.org" sha256: a34ecd7fb548f8e57321fd8e50d865d266941b54e6c3b7758cf8f37c24116905
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.7" version: "2.0.7"
petitparser: petitparser:
dependency: transitive dependency: transitive
description: description:
name: petitparser name: petitparser
url: "https://pub.dartlang.org" sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4"
url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.0" version: "5.1.0"
platform: platform:
dependency: transitive dependency: transitive
description: description:
name: platform name: platform
url: "https://pub.dartlang.org" sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0" version: "3.1.0"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: plugin_platform_interface name: plugin_platform_interface
url: "https://pub.dartlang.org" sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.3"
pointycastle:
dependency: transitive
description:
name: pointycastle
sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
url: "https://pub.dev"
source: hosted
version: "3.6.2"
pool:
dependency: transitive
description:
name: pool
sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
url: "https://pub.dev"
source: hosted
version: "1.5.1"
process: process:
dependency: transitive dependency: transitive
description: description:
name: process name: process
url: "https://pub.dartlang.org" sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.2.4" version: "4.2.4"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17"
url: "https://pub.dev"
source: hosted
version: "2.1.3"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
quiver: quiver:
dependency: transitive dependency: transitive
description: description:
name: quiver name: quiver
url: "https://pub.dartlang.org" sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47
url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0" version: "3.2.1"
shelf:
dependency: transitive
description:
name: shelf
sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
url: "https://pub.dev"
source: hosted
version: "1.4.0"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8
url: "https://pub.dev"
source: hosted
version: "1.0.3"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.99" version: "0.0.99"
source_gen:
dependency: transitive
description:
name: source_gen
sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d"
url: "https://pub.dev"
source: hosted
version: "1.2.6"
source_helper:
dependency: transitive
description:
name: source_helper
sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
source_span: source_span:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
url: "https://pub.dartlang.org" sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.2" version: "1.9.1"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.0" version: "1.11.0"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
url: "https://pub.dartlang.org" sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
name: stream_transform name: stream_transform
url: "https://pub.dartlang.org" sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.0" version: "2.1.0"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
url: "https://pub.dartlang.org" sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.2.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.2.1"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.9" version: "0.4.16"
tflite_flutter: tflite_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
name: tflite_flutter name: tflite_flutter
url: "https://pub.dartlang.org" sha256: "663483abf86066cdf9eae29df65e5e39ea5823d3f426507a81840d3b84ce58cd"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.9.0" version: "0.9.0"
tflite_flutter_helper: tflite_flutter_helper:
@@ -370,48 +702,86 @@ packages:
url: "https://github.com/lucasoskorep/tflite_flutter_helper.git" url: "https://github.com/lucasoskorep/tflite_flutter_helper.git"
source: git source: git
version: "0.3.0" version: "0.3.0"
timing:
dependency: transitive
description:
name: timing
sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32"
url: "https://pub.dev"
source: hosted
version: "1.0.1"
tuple: tuple:
dependency: transitive dependency: transitive
description: description:
name: tuple name: tuple
url: "https://pub.dartlang.org" sha256: "0ea99cd2f9352b2586583ab2ce6489d1f95a5f6de6fb9492faaf97ae2060f0aa"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.0" version: "2.0.1"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
name: typed_data name: typed_data
url: "https://pub.dartlang.org" sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.1" version: "1.3.1"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.4"
watcher:
dependency: transitive
description:
name: watcher
sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
url: "https://pub.dev"
source: hosted
version: "1.0.2"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b
url: "https://pub.dev"
source: hosted
version: "2.3.0"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
url: "https://pub.dartlang.org" sha256: c0e3a4f7be7dae51d8f152230b86627e3397c1ba8c3fa58e63d44a9f3edc9cef
url: "https://pub.dev"
source: hosted source: hosted
version: "2.6.1" version: "2.6.1"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
name: xdg_directories name: xdg_directories
url: "https://pub.dartlang.org" sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86
url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.0+1" version: "0.2.0+3"
xml: xml:
dependency: transitive dependency: transitive
description: description:
name: xml name: xml
url: "https://pub.dartlang.org" sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5"
url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.0" version: "6.2.2"
yaml:
dependency: transitive
description:
name: yaml
sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
sdks: sdks:
dart: ">=2.17.1 <3.0.0" dart: ">=2.18.0 <4.0.0"
flutter: ">=3.0.0" flutter: ">=3.0.0"
+7 -62
View File
@@ -29,87 +29,32 @@ environment:
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
image: ^3.2.0 image: ^3.2.0
logger: ^1.1.0 logger: ^1.1.0
path_provider: ^2.0.11 path_provider: ^2.0.11
tflite_flutter: ^0.9.0 tflite_flutter: ^0.9.0
collection: ^1.16.0 collection: ^1.16.0
get_it: ^7.2.0
hive: ^2.2.3
hive_flutter: ^1.1.0
camera: ^0.10.2
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
# The "flutter_lints" package below contains a set of recommended lints to
# encourage good coding practices. The lint set provided by the package is
# activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint
# rules and activating additional ones.
flutter_lints: ^2.0.0 flutter_lints: ^2.0.0
build_runner: ^2.3.3
# For information on the generic Dart part of this file, see the hive_generator: ^2.0.0
# following page: https://dart.dev/tools/pub/pubspec
dependency_overrides: dependency_overrides:
camera_android: camera: ^0.10.2
git:
dependency: transitive
url: https://github.com/lucasoskorep/plugins.git
ref: feat/allowCameraZoomToUseAllPhysicalCameras
path: packages/camera/camera_android/
camera:
git:
url: https://github.com/lucasoskorep/plugins.git
ref: feat/allowCameraZoomToUseAllPhysicalCameras
path: packages/camera/camera/
tflite_flutter_helper: tflite_flutter_helper:
git: git:
url: https://github.com/lucasoskorep/tflite_flutter_helper.git url: https://github.com/lucasoskorep/tflite_flutter_helper.git
ref: master ref: master
# The following section is specific to Flutter packages.
flutter: flutter:
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
uses-material-design: true uses-material-design: true
# To add assets to your application, add an assets section, like this:
assets: assets:
- assets/ - assets/
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware
# For details regarding adding assets from package dependencies, see
# https://flutter.dev/assets-and-images/#from-packages
# To add custom fonts to your application, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
# "family" key with the font family name, and a "fonts" key with a
# list giving the asset and other descriptors for the font. For
# example:
# fonts:
# - family: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages