feat(vault): pick a notebook vault folder on first run
Some checks failed
CI / Windows build (push) Has been cancelled
Some checks failed
CI / Windows build (push) Has been cancelled
Phase 0 of the file-based storage plan (docs/plans/ 2026-06-24-file-based-storage.md). Foundation only — no editor or DB change yet. - VaultService (SharedPreferences): stores the vault root path, vaultRootValid() = path set AND directory exists. - VaultSetupScreen: first-run folder picker (file_picker, Windows). - main.dart gates HomeScreen behind a valid vault, re-prompting if the saved folder is gone. - Settings: a Vault section to change the folder. Editors still use SQLite; later phases move annotations into per-file sidecars under the vault. analyze clean, tests green.
This commit is contained in:
@@ -257,4 +257,48 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get close => 'Close';
|
||||
|
||||
@override
|
||||
String get vaultSetupTitle => 'Choose your vault';
|
||||
|
||||
@override
|
||||
String get vaultSetupHeadline => 'Pick a folder for your notebooks';
|
||||
|
||||
@override
|
||||
String get vaultSetupBody =>
|
||||
'BadNote stores your notebooks inside one folder you choose — like an Obsidian vault. Pick a folder you control (e.g. a synced folder) so your notes travel with their files.';
|
||||
|
||||
@override
|
||||
String get vaultChooseFolder => 'Choose folder';
|
||||
|
||||
@override
|
||||
String get vaultMissingTitle => 'Your vault folder is missing';
|
||||
|
||||
@override
|
||||
String get vaultMissingBody =>
|
||||
'The folder you picked can\'t be found (it may have been moved, deleted, or on a drive that\'s unplugged). Relocate it or pick a new one.';
|
||||
|
||||
@override
|
||||
String vaultPickFailed(String error) {
|
||||
return 'Couldn\'t open the folder picker: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get vaultNotWritable =>
|
||||
'That folder isn\'t writable. Please choose another.';
|
||||
|
||||
@override
|
||||
String get vaultSection => 'Vault';
|
||||
|
||||
@override
|
||||
String get vaultFolderLabel => 'Vault folder';
|
||||
|
||||
@override
|
||||
String get vaultNoneSelected => 'No folder selected';
|
||||
|
||||
@override
|
||||
String get vaultChangeFolder => 'Change vault folder';
|
||||
|
||||
@override
|
||||
String get vaultUpdated => 'Vault folder updated';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user