使用 Hive Object
This commit is contained in:
@@ -6,6 +6,10 @@ import 'package:logging/logging.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:toolbox/app.dart';
|
||||
import 'package:toolbox/core/analysis.dart';
|
||||
import 'package:toolbox/core/persistant_store.dart';
|
||||
import 'package:toolbox/data/model/server/private_key_info.dart';
|
||||
import 'package:toolbox/data/model/server/server_private_info.dart';
|
||||
import 'package:toolbox/data/model/server/snippet.dart';
|
||||
import 'package:toolbox/data/provider/app.dart';
|
||||
import 'package:toolbox/data/provider/apt.dart';
|
||||
import 'package:toolbox/data/provider/debug.dart';
|
||||
@@ -14,11 +18,17 @@ import 'package:toolbox/data/provider/private_key.dart';
|
||||
import 'package:toolbox/data/provider/server.dart';
|
||||
import 'package:toolbox/data/provider/sftp_download.dart';
|
||||
import 'package:toolbox/data/provider/snippet.dart';
|
||||
import 'package:toolbox/data/store/private_key.dart';
|
||||
import 'package:toolbox/data/store/server.dart';
|
||||
import 'package:toolbox/data/store/setting.dart';
|
||||
import 'package:toolbox/data/store/snippet.dart';
|
||||
import 'package:toolbox/locator.dart';
|
||||
|
||||
Future<void> initApp() async {
|
||||
await Hive.initFlutter();
|
||||
await initHive();
|
||||
await setupLocator();
|
||||
await upgradeStore();
|
||||
|
||||
locator<SnippetProvider>().loadData();
|
||||
locator<PrivateKeyProvider>().loadData();
|
||||
|
||||
@@ -30,6 +40,27 @@ Future<void> initApp() async {
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> initHive() async {
|
||||
await Hive.initFlutter();
|
||||
Hive.registerAdapter(SnippetAdapter());
|
||||
Hive.registerAdapter(PrivateKeyInfoAdapter());
|
||||
Hive.registerAdapter(ServerPrivateInfoAdapter());
|
||||
}
|
||||
|
||||
Future<void> upgradeStore() async {
|
||||
final setting = locator<SettingStore>();
|
||||
final version = setting.storeVersion.fetch();
|
||||
if (version == 0) {
|
||||
final snippet = locator<SnippetStore>();
|
||||
final key = locator<PrivateKeyStore>();
|
||||
final spi = locator<ServerStore>();
|
||||
for (final s in <PersistentStore>[snippet, key, spi]) {
|
||||
await s.box.deleteAll(s.box.keys);
|
||||
}
|
||||
setting.storeVersion.put(1);
|
||||
}
|
||||
}
|
||||
|
||||
void runInZone(dynamic Function() body) {
|
||||
final zoneSpec = ZoneSpecification(
|
||||
print: (Zone self, ZoneDelegate parent, Zone zone, String line) {
|
||||
|
||||
Reference in New Issue
Block a user