diff --git a/lib/utilities/stack_file_system.dart b/lib/utilities/stack_file_system.dart index 67b992bbc..217b33eeb 100644 --- a/lib/utilities/stack_file_system.dart +++ b/lib/utilities/stack_file_system.dart @@ -39,8 +39,9 @@ abstract class StackFileSystem { // todo: can merge and do same as regular linux home dir? if (Util.isArmLinux) { appDirectory = await getApplicationDocumentsDirectory(); - appDirectory = - Directory("${appDirectory.path}/.${AppConfig.appDefaultDataDirName}"); + appDirectory = Directory( + "${appDirectory.path}/.${AppConfig.appDefaultDataDirName}", + ); } else if (Platform.isLinux) { if (_overrideDesktopDirPath != null) { appDirectory = Directory(_overrideDesktopDirPath!); @@ -148,6 +149,24 @@ abstract class StackFileSystem { } } + static Future<Directory> applicationXelisDirectory() async { + final root = await applicationRootDirectory(); + final dir = Directory("${root.path}/xelis"); + if (!dir.existsSync()) { + await dir.create(); + } + return dir; + } + + static Future<Directory> applicationXelisTableDirectory() async { + final xelis = await applicationXelisDirectory(); + final dir = Directory("${xelis.path}/table"); + if (!dir.existsSync()) { + await dir.create(); + } + return dir; + } + static Future<void> initThemesDir() async { final root = await applicationRootDirectory(); diff --git a/lib/wallets/wallet/intermediate/lib_xelis_wallet.dart b/lib/wallets/wallet/intermediate/lib_xelis_wallet.dart index 626b83c94..063c61362 100644 --- a/lib/wallets/wallet/intermediate/lib_xelis_wallet.dart +++ b/lib/wallets/wallet/intermediate/lib_xelis_wallet.dart @@ -4,12 +4,12 @@ import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:isar/isar.dart'; import 'package:mutex/mutex.dart'; -import 'package:path_provider/path_provider.dart'; import 'package:xelis_dart_sdk/xelis_dart_sdk.dart' as xelis_sdk; import 'package:xelis_flutter/src/api/network.dart' as x_network; import 'package:xelis_flutter/src/api/wallet.dart' as x_wallet; import '../../../models/isar/models/blockchain_data/address.dart'; +import '../../../utilities/stack_file_system.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../../crypto_currency/intermediate/electrum_currency.dart'; import '../wallet.dart'; @@ -174,7 +174,6 @@ abstract class LibXelisWallet<T extends ElectrumCurrency> final syncMutex = Mutex(); Timer? timer; - String? tablePath; StreamSubscription<void>? _eventSubscription; @@ -182,7 +181,7 @@ abstract class LibXelisWallet<T extends ElectrumCurrency> if (kIsWeb) { return ""; } else { - final appDir = await getApplicationSupportDirectory(); + final appDir = await StackFileSystem.applicationXelisTableDirectory(); return "${appDir.path}/"; } } @@ -326,9 +325,9 @@ abstract class LibXelisWallet<T extends ElectrumCurrency> wasNull = true; final tablePath = await getPrecomputedTablesPath(); final tableState = await getTableState(); - final appDir = await getApplicationDocumentsDirectory(); + final xelisDir = await StackFileSystem.applicationXelisDirectory(); final String name = walletId; - final String directory = appDir.path; + final String directory = xelisDir.path; final password = await secureStorageInterface.read( key: Wallet.mnemonicPassphraseKey(walletId: info.walletId), );