improved external editor, commands

This commit is contained in:
randogoth 2025-02-22 14:38:38 +02:00
parent 34580109bb
commit a7f2e1ca89

View file

@ -48,6 +48,15 @@ class _NoteListScreenState extends State<NoteListScreen> {
}); });
} }
Future<void> _toggleExternalEditor(bool value) async {
setState(() {
_useExternalEditor = value;
});
SharedPreferences.getInstance().then((prefs) {
prefs.setBool('use_external_editor', value);
});
}
Future<void> _requestStoragePermission() async { Future<void> _requestStoragePermission() async {
if (Platform.isAndroid) { if (Platform.isAndroid) {
if (await Permission.storage.request().isGranted) { if (await Permission.storage.request().isGranted) {
@ -219,25 +228,6 @@ class _NoteListScreenState extends State<NoteListScreen> {
.trim(); .trim();
} }
Future<void> _openExternalEditor(File noteFile) async {
if (!noteFile.existsSync()) {
print("❌ File does not exist: ${noteFile.path}");
return;
}
try {
if (Platform.isAndroid) {
await _requestStoragePermission();
}
final result = await OpenFilex.open(noteFile.path);
print("✅ OpenFilex result: ${result.type}, message: ${result.message}");
} catch (e) {
print("❌ Failed to open external editor: $e");
}
}
void _deleteNote(File note) { void _deleteNote(File note) {
final trashDir = Directory('${note.parent.path}/trash'); final trashDir = Directory('${note.parent.path}/trash');
if (!trashDir.existsSync()) { if (!trashDir.existsSync()) {
@ -319,6 +309,12 @@ class _NoteListScreenState extends State<NoteListScreen> {
case ':night': case ':night':
widget.toggleTheme(true); widget.toggleTheme(true);
break; break;
case ':extern':
_toggleExternalEditor(true);
break;
case ':intern':
_toggleExternalEditor(false);
break;
case ':emptytrash': case ':emptytrash':
_confirmEmptyTrash(); _confirmEmptyTrash();
break; break;
@ -371,12 +367,7 @@ class _NoteListScreenState extends State<NoteListScreen> {
}); });
break; break;
case 'External Editor': case 'External Editor':
setState(() { _toggleExternalEditor(!_useExternalEditor);
_useExternalEditor = !_useExternalEditor;
});
SharedPreferences.getInstance().then((prefs) {
prefs.setBool('use_external_editor', _useExternalEditor);
});
break; break;
case 'Select Folder': case 'Select Folder':
_showDirectoryChoiceDialog( _showDirectoryChoiceDialog(