mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2025-01-10 20:54:33 +00:00
app data dir fix
This commit is contained in:
parent
ec5fc6d2a5
commit
459e882ab6
5 changed files with 34 additions and 15 deletions
|
@ -9,6 +9,8 @@ abstract class AppConfig {
|
||||||
static const prefix = _prefix;
|
static const prefix = _prefix;
|
||||||
static const suffix = _suffix;
|
static const suffix = _suffix;
|
||||||
|
|
||||||
|
static String get appDefaultDataDirName => _appDataDirName;
|
||||||
|
|
||||||
static List<CryptoCurrency> get coins => _supportedCoins;
|
static List<CryptoCurrency> get coins => _supportedCoins;
|
||||||
|
|
||||||
static CryptoCurrency getCryptoCurrencyFor(String coinIdentifier) =>
|
static CryptoCurrency getCryptoCurrencyFor(String coinIdentifier) =>
|
||||||
|
|
|
@ -28,6 +28,8 @@ import 'package:hive_flutter/hive_flutter.dart';
|
||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
import 'package:keyboard_dismisser/keyboard_dismisser.dart';
|
import 'package:keyboard_dismisser/keyboard_dismisser.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
|
import 'package:window_size/window_size.dart';
|
||||||
|
|
||||||
import 'app_config.dart';
|
import 'app_config.dart';
|
||||||
import 'db/db_version_migration.dart';
|
import 'db/db_version_migration.dart';
|
||||||
import 'db/hive/db.dart';
|
import 'db/hive/db.dart';
|
||||||
|
@ -75,7 +77,6 @@ import 'utilities/stack_file_system.dart';
|
||||||
import 'utilities/util.dart';
|
import 'utilities/util.dart';
|
||||||
import 'wallets/isar/providers/all_wallets_info_provider.dart';
|
import 'wallets/isar/providers/all_wallets_info_provider.dart';
|
||||||
import 'widgets/crypto_notifications.dart';
|
import 'widgets/crypto_notifications.dart';
|
||||||
import 'package:window_size/window_size.dart';
|
|
||||||
|
|
||||||
final openedFromSWBFileStringStateProvider =
|
final openedFromSWBFileStringStateProvider =
|
||||||
StateProvider<String?>((ref) => null);
|
StateProvider<String?>((ref) => null);
|
||||||
|
@ -87,9 +88,11 @@ void main(List<String> args) async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
if (Util.isDesktop && args.length == 2 && args.first == "-d") {
|
if (Util.isDesktop && args.length == 2 && args.first == "-d") {
|
||||||
StackFileSystem.overrideDir = args.last;
|
StackFileSystem.setDesktopOverrideDir(args.last);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO set external libs file paths (bad external lib design workaround)
|
||||||
|
|
||||||
final loadCoinlibFuture = loadCoinlib();
|
final loadCoinlibFuture = loadCoinlib();
|
||||||
|
|
||||||
GoogleFonts.config.allowRuntimeFetching = false;
|
GoogleFonts.config.allowRuntimeFetching = false;
|
||||||
|
|
|
@ -11,40 +11,52 @@
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
|
|
||||||
|
import '../app_config.dart';
|
||||||
import 'logger.dart';
|
import 'logger.dart';
|
||||||
import 'util.dart';
|
import 'util.dart';
|
||||||
|
|
||||||
abstract class StackFileSystem {
|
abstract class StackFileSystem {
|
||||||
static String? overrideDir;
|
static String? _overrideDesktopDirPath;
|
||||||
|
static bool _overrideDirSet = false;
|
||||||
|
static void setDesktopOverrideDir(String dirPath) {
|
||||||
|
if (_overrideDirSet) {
|
||||||
|
throw Exception(
|
||||||
|
"Attempted to change StackFileSystem._overrideDir unexpectedly",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
_overrideDesktopDirPath = dirPath;
|
||||||
|
_overrideDirSet = true;
|
||||||
|
}
|
||||||
|
|
||||||
static Future<Directory> applicationRootDirectory() async {
|
static Future<Directory> applicationRootDirectory() async {
|
||||||
Directory appDirectory;
|
Directory appDirectory;
|
||||||
|
|
||||||
// if this is changed, the directories in libmonero must also be changed!!!!!
|
|
||||||
const dirName = "stackwallet";
|
|
||||||
|
|
||||||
// todo: can merge and do same as regular linux home dir?
|
// todo: can merge and do same as regular linux home dir?
|
||||||
if (Logging.isArmLinux) {
|
if (Logging.isArmLinux) {
|
||||||
appDirectory = await getApplicationDocumentsDirectory();
|
appDirectory = await getApplicationDocumentsDirectory();
|
||||||
appDirectory = Directory("${appDirectory.path}/.$dirName");
|
appDirectory =
|
||||||
|
Directory("${appDirectory.path}/.${AppConfig.appDefaultDataDirName}");
|
||||||
} else if (Platform.isLinux) {
|
} else if (Platform.isLinux) {
|
||||||
if (overrideDir != null) {
|
if (_overrideDesktopDirPath != null) {
|
||||||
appDirectory = Directory(overrideDir!);
|
appDirectory = Directory(_overrideDesktopDirPath!);
|
||||||
} else {
|
} else {
|
||||||
appDirectory = Directory("${Platform.environment['HOME']}/.$dirName");
|
appDirectory = Directory(
|
||||||
|
"${Platform.environment['HOME']}/.${AppConfig.appDefaultDataDirName}");
|
||||||
}
|
}
|
||||||
} else if (Platform.isWindows) {
|
} else if (Platform.isWindows) {
|
||||||
if (overrideDir != null) {
|
if (_overrideDesktopDirPath != null) {
|
||||||
appDirectory = Directory(overrideDir!);
|
appDirectory = Directory(_overrideDesktopDirPath!);
|
||||||
} else {
|
} else {
|
||||||
appDirectory = await getApplicationSupportDirectory();
|
appDirectory = await getApplicationSupportDirectory();
|
||||||
}
|
}
|
||||||
} else if (Platform.isMacOS) {
|
} else if (Platform.isMacOS) {
|
||||||
if (overrideDir != null) {
|
if (_overrideDesktopDirPath != null) {
|
||||||
appDirectory = Directory(overrideDir!);
|
appDirectory = Directory(_overrideDesktopDirPath!);
|
||||||
} else {
|
} else {
|
||||||
appDirectory = await getLibraryDirectory();
|
appDirectory = await getLibraryDirectory();
|
||||||
appDirectory = Directory("${appDirectory.path}/$dirName");
|
appDirectory = Directory(
|
||||||
|
"${appDirectory.path}/${AppConfig.appDefaultDataDirName}");
|
||||||
}
|
}
|
||||||
} else if (Platform.isIOS) {
|
} else if (Platform.isIOS) {
|
||||||
// todo: check if we need different behaviour here
|
// todo: check if we need different behaviour here
|
||||||
|
|
|
@ -33,6 +33,7 @@ part of 'app_config.dart';
|
||||||
const _prefix = "Stack";
|
const _prefix = "Stack";
|
||||||
const _separator = " ";
|
const _separator = " ";
|
||||||
const _suffix = "Duo";
|
const _suffix = "Duo";
|
||||||
|
const _appDataDirName = "stackduo";
|
||||||
|
|
||||||
final List<CryptoCurrency> _supportedCoins = List.unmodifiable([
|
final List<CryptoCurrency> _supportedCoins = List.unmodifiable([
|
||||||
Bitcoin(CryptoCurrencyNetwork.main),
|
Bitcoin(CryptoCurrencyNetwork.main),
|
||||||
|
|
|
@ -35,6 +35,7 @@ part of 'app_config.dart';
|
||||||
const _prefix = "Stack";
|
const _prefix = "Stack";
|
||||||
const _separator = " ";
|
const _separator = " ";
|
||||||
const _suffix = "Wallet";
|
const _suffix = "Wallet";
|
||||||
|
const _appDataDirName = "stackwallet";
|
||||||
|
|
||||||
final List<CryptoCurrency> _supportedCoins = List.unmodifiable([
|
final List<CryptoCurrency> _supportedCoins = List.unmodifiable([
|
||||||
Bitcoin(CryptoCurrencyNetwork.main),
|
Bitcoin(CryptoCurrencyNetwork.main),
|
||||||
|
|
Loading…
Reference in a new issue