From 8d435b1507f5ab56c1c3cccb4105e95547d409ef Mon Sep 17 00:00:00 2001 From: Hank Grabowski Date: Sun, 21 Jul 2024 19:02:00 +0300 Subject: [PATCH] Updates to get ObjectBox working --- ios/Podfile.lock | 8 +- lib/models/connection.dart | 1 + lib/objectbox.g.dart | 338 +++++++++++++++++++++---------------- macos/Podfile.lock | 8 +- pubspec.lock | 12 +- pubspec.yaml | 6 +- 6 files changed, 207 insertions(+), 166 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index f295169..3fea0cc 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -52,10 +52,10 @@ PODS: - Flutter - media_kit_video (0.0.1): - Flutter - - ObjectBox (1.9.2) + - ObjectBox (2.0.0) - objectbox_flutter_libs (0.0.1): - Flutter - - ObjectBox (= 1.9.2) + - ObjectBox (= 2.0.0) - package_info_plus (0.4.5): - Flutter - path_provider_foundation (0.0.1): @@ -172,8 +172,8 @@ SPEC CHECKSUMS: media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1 media_kit_native_event_loop: e6b2ab20cf0746eb1c33be961fcf79667304fa2a media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e - ObjectBox: 46757a559717ab49b1cc0612eaff82b705acf394 - objectbox_flutter_libs: 103f3a273b594cb664255086a386740bc179f97d + ObjectBox: f5319bd9ad2ea960796eff7227e86471867e9ef0 + objectbox_flutter_libs: c7748f6c6fda47d22f15c8062fb8208063fd948a package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625 diff --git a/lib/models/connection.dart b/lib/models/connection.dart index 176f77f..14f32f9 100644 --- a/lib/models/connection.dart +++ b/lib/models/connection.dart @@ -5,6 +5,7 @@ class Connection { @Id() int obId; + @Transient() ConnectionStatus status; int get dbStatus => status.code; diff --git a/lib/objectbox.g.dart b/lib/objectbox.g.dart index 15e4315..0caea86 100644 --- a/lib/objectbox.g.dart +++ b/lib/objectbox.g.dart @@ -1,17 +1,17 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -// This code was generated by ObjectBox. To update it run the generator again: -// With a Flutter package, run `flutter pub run build_runner build`. -// With a Dart package, run `dart run build_runner build`. +// This code was generated by ObjectBox. To update it run the generator again +// with `dart run build_runner build`. // See also https://docs.objectbox.io/getting-started#generate-objectbox-code -// ignore_for_file: camel_case_types +// ignore_for_file: camel_case_types, depend_on_referenced_packages // coverage:ignore-file import 'dart:typed_data'; import 'package:flat_buffers/flat_buffers.dart' as fb; -import 'package:objectbox/internal.dart'; // generated code can access "internal" functionality -import 'package:objectbox/objectbox.dart'; +import 'package:objectbox/internal.dart' + as obx_int; // generated code can access "internal" functionality +import 'package:objectbox/objectbox.dart' as obx; import 'package:objectbox_flutter_libs/objectbox_flutter_libs.dart'; import 'models/connection.dart'; @@ -19,143 +19,158 @@ import 'models/hashtag.dart'; export 'package:objectbox/objectbox.dart'; // so that callers only have to import this file -final _entities = [ - ModelEntity( - id: const IdUid(1, 1213035855270739890), +final _entities = [ + obx_int.ModelEntity( + id: const obx_int.IdUid(1, 1213035855270739890), name: 'Connection', - lastPropertyId: const IdUid(14, 7495390888349913259), + lastPropertyId: const obx_int.IdUid(14, 7495390888349913259), flags: 0, - properties: [ - ModelProperty( - id: const IdUid(1, 4133343279264917280), + properties: [ + obx_int.ModelProperty( + id: const obx_int.IdUid(1, 4133343279264917280), name: 'obId', type: 6, flags: 1), - ModelProperty( - id: const IdUid(2, 3393770296096844708), + obx_int.ModelProperty( + id: const obx_int.IdUid(2, 3393770296096844708), name: 'name', type: 9, flags: 0), - ModelProperty( - id: const IdUid(3, 5864801995210079539), + obx_int.ModelProperty( + id: const obx_int.IdUid(3, 5864801995210079539), name: 'handle', type: 9, flags: 0), - ModelProperty( - id: const IdUid(4, 2926904168461994523), + obx_int.ModelProperty( + id: const obx_int.IdUid(4, 2926904168461994523), name: 'id', type: 9, flags: 34848, - indexId: const IdUid(1, 8342366639839511243)), - ModelProperty( - id: const IdUid(5, 3621370552742492695), + indexId: const obx_int.IdUid(1, 8342366639839511243)), + obx_int.ModelProperty( + id: const obx_int.IdUid(5, 3621370552742492695), name: 'network', type: 9, flags: 0), - ModelProperty( - id: const IdUid(6, 3054748457893853359), + obx_int.ModelProperty( + id: const obx_int.IdUid(6, 3054748457893853359), name: 'profileUrl', type: 9, flags: 0), - ModelProperty( - id: const IdUid(7, 3716471511430220806), + obx_int.ModelProperty( + id: const obx_int.IdUid(7, 3716471511430220806), name: 'avatarUrl', type: 9, flags: 0), - ModelProperty( - id: const IdUid(8, 3334077197732145885), + obx_int.ModelProperty( + id: const obx_int.IdUid(8, 3334077197732145885), name: 'dbStatus', type: 6, flags: 0), - ModelProperty( - id: const IdUid(9, 7727190023732579468), + obx_int.ModelProperty( + id: const obx_int.IdUid(9, 7727190023732579468), name: 'lastUpdateTime', type: 10, flags: 0), - ModelProperty( - id: const IdUid(10, 7236128628019094924), + obx_int.ModelProperty( + id: const obx_int.IdUid(10, 7236128628019094924), name: 'note', type: 9, flags: 0), - ModelProperty( - id: const IdUid(11, 714760695336940281), + obx_int.ModelProperty( + id: const obx_int.IdUid(11, 714760695336940281), name: 'followerCount', type: 6, flags: 0), - ModelProperty( - id: const IdUid(12, 4204087390924684186), + obx_int.ModelProperty( + id: const obx_int.IdUid(12, 4204087390924684186), name: 'followingCount', type: 6, flags: 0), - ModelProperty( - id: const IdUid(13, 6842754750534163483), + obx_int.ModelProperty( + id: const obx_int.IdUid(13, 6842754750534163483), name: 'statusesCount', type: 6, flags: 0), - ModelProperty( - id: const IdUid(14, 7495390888349913259), + obx_int.ModelProperty( + id: const obx_int.IdUid(14, 7495390888349913259), name: 'lastStatus', type: 10, flags: 0) ], - relations: [], - backlinks: []), - ModelEntity( - id: const IdUid(2, 8060242331335522964), + relations: [], + backlinks: []), + obx_int.ModelEntity( + id: const obx_int.IdUid(2, 8060242331335522964), name: 'Hashtag', - lastPropertyId: const IdUid(4, 985152873657204249), + lastPropertyId: const obx_int.IdUid(4, 985152873657204249), flags: 0, - properties: [ - ModelProperty( - id: const IdUid(1, 3633001791521338712), + properties: [ + obx_int.ModelProperty( + id: const obx_int.IdUid(1, 3633001791521338712), name: 'id', type: 6, flags: 1), - ModelProperty( - id: const IdUid(2, 3468373950035339457), + obx_int.ModelProperty( + id: const obx_int.IdUid(2, 3468373950035339457), name: 'tag', type: 9, flags: 34848, - indexId: const IdUid(2, 6156017341759176249)), - ModelProperty( - id: const IdUid(3, 5102584273729210526), + indexId: const obx_int.IdUid(2, 6156017341759176249)), + obx_int.ModelProperty( + id: const obx_int.IdUid(3, 5102584273729210526), name: 'url', type: 9, flags: 0), - ModelProperty( - id: const IdUid(4, 985152873657204249), + obx_int.ModelProperty( + id: const obx_int.IdUid(4, 985152873657204249), name: 'lastUpdateTime', type: 10, flags: 0) ], - relations: [], - backlinks: []) + relations: [], + backlinks: []) ]; -/// Open an ObjectBox store with the model declared in this file. -Future openStore( - {String? directory, - int? maxDBSizeInKB, - int? fileMode, - int? maxReaders, - bool queriesCaseSensitiveDefault = true, - String? macosApplicationGroup}) async => - Store(getObjectBoxModel(), - directory: directory ?? (await defaultStoreDirectory()).path, - maxDBSizeInKB: maxDBSizeInKB, - fileMode: fileMode, - maxReaders: maxReaders, - queriesCaseSensitiveDefault: queriesCaseSensitiveDefault, - macosApplicationGroup: macosApplicationGroup); +/// Shortcut for [obx.Store.new] that passes [getObjectBoxModel] and for Flutter +/// apps by default a [directory] using `defaultStoreDirectory()` from the +/// ObjectBox Flutter library. +/// +/// Note: for desktop apps it is recommended to specify a unique [directory]. +/// +/// See [obx.Store.new] for an explanation of all parameters. +/// +/// For Flutter apps, also calls `loadObjectBoxLibraryAndroidCompat()` from +/// the ObjectBox Flutter library to fix loading the native ObjectBox library +/// on Android 6 and older. +Future openStore( + {String? directory, + int? maxDBSizeInKB, + int? maxDataSizeInKB, + int? fileMode, + int? maxReaders, + bool queriesCaseSensitiveDefault = true, + String? macosApplicationGroup}) async { + await loadObjectBoxLibraryAndroidCompat(); + return obx.Store(getObjectBoxModel(), + directory: directory ?? (await defaultStoreDirectory()).path, + maxDBSizeInKB: maxDBSizeInKB, + maxDataSizeInKB: maxDataSizeInKB, + fileMode: fileMode, + maxReaders: maxReaders, + queriesCaseSensitiveDefault: queriesCaseSensitiveDefault, + macosApplicationGroup: macosApplicationGroup); +} -/// ObjectBox model definition, pass it to [Store] - Store(getObjectBoxModel()) -ModelDefinition getObjectBoxModel() { - final model = ModelInfo( +/// Returns the ObjectBox model definition for this project for use with +/// [obx.Store.new]. +obx_int.ModelDefinition getObjectBoxModel() { + final model = obx_int.ModelInfo( entities: _entities, - lastEntityId: const IdUid(2, 8060242331335522964), - lastIndexId: const IdUid(2, 6156017341759176249), - lastRelationId: const IdUid(0, 0), - lastSequenceId: const IdUid(0, 0), + lastEntityId: const obx_int.IdUid(2, 8060242331335522964), + lastIndexId: const obx_int.IdUid(2, 6156017341759176249), + lastRelationId: const obx_int.IdUid(0, 0), + lastSequenceId: const obx_int.IdUid(0, 0), retiredEntityUids: const [], retiredIndexUids: const [], retiredPropertyUids: const [], @@ -164,8 +179,8 @@ ModelDefinition getObjectBoxModel() { modelVersionParserMinimum: 5, version: 1); - final bindings = { - Connection: EntityDefinition( + final bindings = { + Connection: obx_int.EntityDefinition( model: _entities[0], toOneRelations: (Connection object) => [], toManyRelations: (Connection object) => {}, @@ -199,37 +214,58 @@ ModelDefinition getObjectBoxModel() { fbb.finish(fbb.endTable()); return object.obId; }, - objectFromFB: (Store store, ByteData fbData) { + objectFromFB: (obx.Store store, ByteData fbData) { final buffer = fb.BufferContext(fbData); final rootOffset = buffer.derefObject(0); final lastStatusValue = const fb.Int64Reader().vTableGetNullable(buffer, rootOffset, 30); + final obIdParam = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0); + final nameParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 6, ''); + final handleParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 8, ''); + final idParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 10, ''); + final profileUrlParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 14, ''); + final networkParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 12, ''); + final avatarUrlParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 16, ''); + final lastUpdateTimeParam = DateTime.fromMillisecondsSinceEpoch( + const fb.Int64Reader().vTableGet(buffer, rootOffset, 20, 0)); + final noteParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 22, ''); + final followerCountParam = + const fb.Int64Reader().vTableGetNullable(buffer, rootOffset, 24); + final followingCountParam = + const fb.Int64Reader().vTableGetNullable(buffer, rootOffset, 26); + final statusesCountParam = + const fb.Int64Reader().vTableGetNullable(buffer, rootOffset, 28); + final lastStatusParam = lastStatusValue == null + ? null + : DateTime.fromMillisecondsSinceEpoch(lastStatusValue); final object = Connection( - obId: const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0), - name: const fb.StringReader(asciiOptimization: true) - .vTableGet(buffer, rootOffset, 6, ''), - handle: const fb.StringReader(asciiOptimization: true) - .vTableGet(buffer, rootOffset, 8, ''), - id: const fb.StringReader(asciiOptimization: true) - .vTableGet(buffer, rootOffset, 10, ''), - profileUrl: const fb.StringReader(asciiOptimization: true) - .vTableGet(buffer, rootOffset, 14, ''), - network: const fb.StringReader(asciiOptimization: true) - .vTableGet(buffer, rootOffset, 12, ''), - avatarUrl: const fb.StringReader(asciiOptimization: true) - .vTableGet(buffer, rootOffset, 16, ''), - lastUpdateTime: DateTime.fromMillisecondsSinceEpoch( - const fb.Int64Reader().vTableGet(buffer, rootOffset, 20, 0)), - note: const fb.StringReader(asciiOptimization: true).vTableGet(buffer, rootOffset, 22, ''), - followerCount: const fb.Int64Reader().vTableGetNullable(buffer, rootOffset, 24), - followingCount: const fb.Int64Reader().vTableGetNullable(buffer, rootOffset, 26), - statusesCount: const fb.Int64Reader().vTableGetNullable(buffer, rootOffset, 28), - lastStatus: lastStatusValue == null ? null : DateTime.fromMillisecondsSinceEpoch(lastStatusValue)) - ..dbStatus = const fb.Int64Reader().vTableGet(buffer, rootOffset, 18, 0); + obId: obIdParam, + name: nameParam, + handle: handleParam, + id: idParam, + profileUrl: profileUrlParam, + network: networkParam, + avatarUrl: avatarUrlParam, + lastUpdateTime: lastUpdateTimeParam, + note: noteParam, + followerCount: followerCountParam, + followingCount: followingCountParam, + statusesCount: statusesCountParam, + lastStatus: lastStatusParam) + ..dbStatus = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 18, 0); return object; }), - Hashtag: EntityDefinition( + Hashtag: obx_int.EntityDefinition( model: _entities[1], toOneRelations: (Hashtag object) => [], toManyRelations: (Hashtag object) => {}, @@ -248,16 +284,16 @@ ModelDefinition getObjectBoxModel() { fbb.finish(fbb.endTable()); return object.id; }, - objectFromFB: (Store store, ByteData fbData) { + objectFromFB: (obx.Store store, ByteData fbData) { final buffer = fb.BufferContext(fbData); final rootOffset = buffer.derefObject(0); - - final object = Hashtag( - id: const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0), - tag: const fb.StringReader(asciiOptimization: true) - .vTableGet(buffer, rootOffset, 6, ''), - url: const fb.StringReader(asciiOptimization: true) - .vTableGet(buffer, rootOffset, 8, '')) + final idParam = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0); + final tagParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 6, ''); + final urlParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 8, ''); + final object = Hashtag(id: idParam, tag: tagParam, url: urlParam) ..lastUpdateTime = DateTime.fromMillisecondsSinceEpoch( const fb.Int64Reader().vTableGet(buffer, rootOffset, 10, 0)); @@ -265,79 +301,83 @@ ModelDefinition getObjectBoxModel() { }) }; - return ModelDefinition(model, bindings); + return obx_int.ModelDefinition(model, bindings); } /// [Connection] entity fields to define ObjectBox queries. class Connection_ { - /// see [Connection.obId] + /// See [Connection.obId]. static final obId = - QueryIntegerProperty(_entities[0].properties[0]); + obx.QueryIntegerProperty(_entities[0].properties[0]); - /// see [Connection.name] + /// See [Connection.name]. static final name = - QueryStringProperty(_entities[0].properties[1]); + obx.QueryStringProperty(_entities[0].properties[1]); - /// see [Connection.handle] + /// See [Connection.handle]. static final handle = - QueryStringProperty(_entities[0].properties[2]); + obx.QueryStringProperty(_entities[0].properties[2]); - /// see [Connection.id] - static final id = QueryStringProperty(_entities[0].properties[3]); + /// See [Connection.id]. + static final id = + obx.QueryStringProperty(_entities[0].properties[3]); - /// see [Connection.network] + /// See [Connection.network]. static final network = - QueryStringProperty(_entities[0].properties[4]); + obx.QueryStringProperty(_entities[0].properties[4]); - /// see [Connection.profileUrl] + /// See [Connection.profileUrl]. static final profileUrl = - QueryStringProperty(_entities[0].properties[5]); + obx.QueryStringProperty(_entities[0].properties[5]); - /// see [Connection.avatarUrl] + /// See [Connection.avatarUrl]. static final avatarUrl = - QueryStringProperty(_entities[0].properties[6]); + obx.QueryStringProperty(_entities[0].properties[6]); - /// see [Connection.dbStatus] + /// See [Connection.dbStatus]. static final dbStatus = - QueryIntegerProperty(_entities[0].properties[7]); + obx.QueryIntegerProperty(_entities[0].properties[7]); - /// see [Connection.lastUpdateTime] + /// See [Connection.lastUpdateTime]. static final lastUpdateTime = - QueryIntegerProperty(_entities[0].properties[8]); + obx.QueryDateProperty(_entities[0].properties[8]); - /// see [Connection.note] + /// See [Connection.note]. static final note = - QueryStringProperty(_entities[0].properties[9]); + obx.QueryStringProperty(_entities[0].properties[9]); - /// see [Connection.followerCount] + /// See [Connection.followerCount]. static final followerCount = - QueryIntegerProperty(_entities[0].properties[10]); + obx.QueryIntegerProperty(_entities[0].properties[10]); - /// see [Connection.followingCount] + /// See [Connection.followingCount]. static final followingCount = - QueryIntegerProperty(_entities[0].properties[11]); + obx.QueryIntegerProperty(_entities[0].properties[11]); - /// see [Connection.statusesCount] + /// See [Connection.statusesCount]. static final statusesCount = - QueryIntegerProperty(_entities[0].properties[12]); + obx.QueryIntegerProperty(_entities[0].properties[12]); - /// see [Connection.lastStatus] + /// See [Connection.lastStatus]. static final lastStatus = - QueryIntegerProperty(_entities[0].properties[13]); + obx.QueryDateProperty(_entities[0].properties[13]); } /// [Hashtag] entity fields to define ObjectBox queries. class Hashtag_ { - /// see [Hashtag.id] - static final id = QueryIntegerProperty(_entities[1].properties[0]); + /// See [Hashtag.id]. + static final id = + obx.QueryIntegerProperty(_entities[1].properties[0]); - /// see [Hashtag.tag] - static final tag = QueryStringProperty(_entities[1].properties[1]); + /// See [Hashtag.tag]. + static final tag = + obx.QueryStringProperty(_entities[1].properties[1]); - /// see [Hashtag.url] - static final url = QueryStringProperty(_entities[1].properties[2]); + /// See [Hashtag.url]. + static final url = + obx.QueryStringProperty(_entities[1].properties[2]); - /// see [Hashtag.lastUpdateTime] + /// See [Hashtag.lastUpdateTime]. static final lastUpdateTime = - QueryIntegerProperty(_entities[1].properties[3]); + obx.QueryDateProperty(_entities[1].properties[3]); } diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 56dadc6..5c7c788 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -16,10 +16,10 @@ PODS: - FlutterMacOS - media_kit_video (0.0.1): - FlutterMacOS - - ObjectBox (1.9.2) + - ObjectBox (2.0.0) - objectbox_flutter_libs (0.0.1): - FlutterMacOS - - ObjectBox (= 1.9.2) + - ObjectBox (= 2.0.0) - package_info_plus (0.0.1): - FlutterMacOS - path_provider_foundation (0.0.1): @@ -118,8 +118,8 @@ SPEC CHECKSUMS: media_kit_libs_macos_video: b3e2bbec2eef97c285f2b1baa7963c67c753fb82 media_kit_native_event_loop: 81fd5b45192b72f8b5b69eaf5b540f45777eb8d5 media_kit_video: c75b07f14d59706c775778e4dd47dd027de8d1e5 - ObjectBox: 46757a559717ab49b1cc0612eaff82b705acf394 - objectbox_flutter_libs: 0b8632b8f181b902e09b5763437082926c790b68 + ObjectBox: f5319bd9ad2ea960796eff7227e86471867e9ef0 + objectbox_flutter_libs: 8ce2ac829cfbbc62ad4764a0d219786d098b1afa package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 screen_brightness_macos: 2d6d3af2165592d9a55ffcd95b7550970e41ebda diff --git a/pubspec.lock b/pubspec.lock index cb97b33..ea99ec6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -876,26 +876,26 @@ packages: dependency: "direct main" description: name: objectbox - sha256: "9fb2810156e8f78d82ecf672c36a1aba2c1de16d7903675335e00e374bdc3ba8" + sha256: "70ff2a7538f6f8bb56136734d574f5bdc1cf29c50cd7207a14ea0c641ecb88ca" url: "https://pub.dev" source: hosted - version: "2.5.1" + version: "4.0.1" objectbox_flutter_libs: dependency: "direct main" description: name: objectbox_flutter_libs - sha256: dca86b2d1074110573b69cbd9afb6b67ab9d2c824704c6ac5187e546418baf9c + sha256: "97adc5f95d16f33c7114d56e5dec617db4300cd11ae5022134cf76fa5f30084d" url: "https://pub.dev" source: hosted - version: "2.5.1" + version: "4.0.1" objectbox_generator: dependency: "direct dev" description: name: objectbox_generator - sha256: c22c59c27edb90e709da00f0b2e788a5774a4cdce12d393d117a39500877cfb7 + sha256: "29d9295aac0a74ce44cd00afa011e0e22404e5c8f66e37587f84e3ef4b6bee52" url: "https://pub.dev" source: hosted - version: "2.5.1" + version: "4.0.1" octo_image: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 1562c99..b530aac 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -37,8 +37,8 @@ dependencies: media_kit_video: ^1.2.4 # For video rendering. multi_trigger_autocomplete: ^1.0.0 network_to_file_image: ^6.0.1 - objectbox: ^2.5.1 - objectbox_flutter_libs: ^2.5.1 + objectbox: ^4.0.1 + objectbox_flutter_libs: ^4.0.1 path: ^1.9.0 path_provider: ^2.1.3 provider: ^6.1.2 @@ -63,7 +63,7 @@ dev_dependencies: sdk: flutter flutter_lints: ^4.0.0 build_runner: ^2.4.10 - objectbox_generator: ^2.5.1 + objectbox_generator: ^4.0.1 flutter: uses-material-design: true