39 lines
1.1 KiB
Dart
39 lines
1.1 KiB
Dart
import 'dart:convert';
|
|
import 'dart:io';
|
|
|
|
import 'package:fforte/enums/databases.dart';
|
|
import 'package:fforte/screens/excursion/exceptions/file_dialog_cancelled.dart';
|
|
import 'package:file_picker/file_picker.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
class SaveFileMethod {
|
|
static Future<void> saveFile(
|
|
Map<String, String> place,
|
|
int id,
|
|
String fileNameLocalization,
|
|
DatabasesEnum dbType,
|
|
) async {
|
|
try {
|
|
String? selectedDirectory = await FilePicker.platform.getDirectoryPath();
|
|
|
|
if (selectedDirectory == null) {
|
|
throw FileDialogCancelled();
|
|
}
|
|
|
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
|
String jsonPlace = jsonEncode(place);
|
|
|
|
await prefs.setString('saveDir', selectedDirectory);
|
|
|
|
File file = File(
|
|
'$selectedDirectory/$fileNameLocalization-$id-${dbType == DatabasesEnum.place ? place["CID"] : place["Datum"]!.split(" ").first}.txt',
|
|
);
|
|
|
|
await file.writeAsString(jsonPlace);
|
|
} catch (e) {
|
|
debugPrint(e.toString());
|
|
}
|
|
}
|
|
}
|