From f80315e7c4e3af3cc690e8256195aea5b3d333ca Mon Sep 17 00:00:00 2001 From: randogoth Date: Sun, 27 Sep 2026 00:09:18 +0300 Subject: [PATCH] fix: store Hive data in the app support directory, not ~/Documents --- lib/main.dart | 8 +++++++- pubspec.lock | 2 +- pubspec.yaml | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 73e138b..f01ccdb 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,7 @@ import "package:flutter/material.dart"; import "package:flutter_riverpod/flutter_riverpod.dart"; import "package:hive_flutter/hive_flutter.dart"; +import "package:path_provider/path_provider.dart"; import "package:smol_mail/data/providers/providers.dart"; import "package:smol_mail/smol/config.dart"; @@ -9,7 +10,12 @@ import "package:smol_mail/presentation/app_widget.dart"; void main() async { WidgetsFlutterBinding.ensureInitialized(); - await Hive.initFlutter(); + // Hive.initFlutter() defaults to getApplicationDocumentsDirectory(), which + // on Linux resolves to the user's actual ~/Documents folder (XDG_DOCUMENTS_DIR) + // rather than app-private storage — getApplicationSupportDirectory() is the + // one that's actually sandboxed per-app on every platform. + final dataDir = await getApplicationSupportDirectory(); + Hive.init(dataDir.path); final store = await SmolStore.open(); applyPresetServer(store); diff --git a/pubspec.lock b/pubspec.lock index 9496b01..a96a269 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -625,7 +625,7 @@ packages: source: hosted version: "1.9.1" path_provider: - dependency: transitive + dependency: "direct main" description: name: path_provider sha256: a7f4874f987173da295a61c181b8ee71dab59b332a486b391babf26a1b884825 diff --git a/pubspec.yaml b/pubspec.yaml index 573249b..378c082 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -18,6 +18,7 @@ dependencies: flutter_riverpod: ^3.3.2 intl: ^0.20.3 share_plus: ^13.3.0 + path_provider: ^2.1.6 file_picker: ^13.1.0 dev_dependencies: