diff --git a/lib/main.dart b/lib/main.dart index e0ef2ba..28de2c7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -58,8 +58,11 @@ Future main() async { HomeProvider homeProvider = HomeProvider(); // DuniterIndexer _duniterIndexer = DuniterIndexer(); + await initHiveForFlutter(); await homeProvider.initHive(); + configBox = await Hive.openBox("configBox"); + appVersion = await homeProvider.getAppVersion(); // Configure Hive and open boxes diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 33d390a..497ba47 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -47,24 +47,28 @@ class _HomeScreenState extends State { final myWalletProvider = Provider.of(context, listen: false); - configBox = await Hive.openBox("configBox"); final bool isWalletsExists = myWalletProvider.checkIfWalletExist(); - if (!sub.sdkReady && !sub.sdkLoading) await sub.initApi(); - if (sub.sdkReady && !sub.nodeConnected) { - // Check if versionData non compatible, drop everything - if (isWalletsExists && - (configBox.get('dataVersion') ?? 0) < dataVersion) { - await infoPopup(context, "chestNotCompatibleMustReinstallGecko".tr()); - await Hive.deleteBoxFromDisk('walletBox'); - await Hive.deleteBoxFromDisk('chestBox'); - chestBox = await Hive.openBox("chestBox"); - await configBox.delete('defaultWallet'); - await sub.deleteAllAccounts(); - configBox.put('dataVersion', dataVersion); - myWalletProvider.reload(); - } + // Check if versionData non compatible, drop everything + if (configBox.get('dataVersion') == null) { + configBox.put('dataVersion', dataVersion); + } + if (isWalletsExists && (configBox.get('dataVersion')) < dataVersion) { + if (!sub.sdkReady && !sub.sdkLoading) sub.initApi(); + await infoPopup(context, "chestNotCompatibleMustReinstallGecko".tr()); + await Hive.deleteBoxFromDisk('walletBox'); + await Hive.deleteBoxFromDisk('chestBox'); + chestBox = await Hive.openBox("chestBox"); + await configBox.delete('defaultWallet'); + if (!sub.sdkReady && !sub.sdkLoading) await sub.initApi(); + await sub.deleteAllAccounts(); + configBox.put('dataVersion', dataVersion); + myWalletProvider.reload(); + } else { + if (!sub.sdkReady && !sub.sdkLoading) await sub.initApi(); + } + if (sub.sdkReady && !sub.nodeConnected) { walletBox = await Hive.openBox("walletBox"); await Hive.deleteBoxFromDisk('g1WalletsBox'); g1WalletsBox = await Hive.openBox("g1WalletsBox");