initDb method

  1. @override
Future<bool> initDb()
override

Implementation

@override
Future<bool> initDb() async {
  await Hive.initFlutter(dataDir.path);
  var files = dataDir
      .listSync()
      .whereType<File>()
      .where((element) => element.path.endsWith('.hive'));

  for (var file in files) {
    var name = basename(file.path).replaceAll('.hive', '');
    var box = await Hive.openLazyBox<String>(name);
    var tree = AvlTreeSet<AbstractKey>(
        comparator: (a, b) => a.key!.compareTo(b.key));
    tree.addAll(box.keys
        .map((e) => decodeKey(KeyValueAdapter.tableNameToKey(name), e)));
    _boxes[name] = box;
    _avlTrees[name] = tree;
  }
  return true;
}