feat: migrate shared_preferences to hive (#343)

This commit is contained in:
Levi authored and GitHub committed 2024-01-24 15:49:51 +08:00
1 parent f2cd686563
commit b89c7bc608
15 files changed
+247 -143

No files matched your search

+6 -10
View File
@@ -1,33 +1,29 @@
import 'dart:io';
import 'package:macos_secure_bookmarks/macos_secure_bookmarks.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../database/database.dart';
import 'util.dart';
class MacSecureUtil {
static const _bookmarkKey = "bookmark:";
static Future<void> saveBookmark(String dir) async {
if (!Util.isMacos()) {
return;
}
final secureBookmarks = SecureBookmarks();
final bookmark = await secureBookmarks.bookmark(Directory(dir));
final prefs = await SharedPreferences.getInstance();
await prefs.setString(_bookmarkKey + dir, bookmark);
Database.instance.saveBookmark(MapEntry(dir, bookmark));
}
static Future<void> loadBookmark() async {
if (!Util.isMacos()) {
return;
}
final prefs = await SharedPreferences.getInstance();
final keys = prefs.getKeys();
final secureBookmarks = SecureBookmarks();
keys.where((k) => k.startsWith(_bookmarkKey)).forEach((k) async {
final resolvedFile = await secureBookmarks
.resolveBookmark(prefs.getString(k)!, isDirectory: true);
final bookmark = Database.instance.getBookmark() ?? {};
bookmark.forEach((_, v) async {
final resolvedFile =
await secureBookmarks.resolveBookmark(v, isDirectory: true);
await secureBookmarks.startAccessingSecurityScopedResource(resolvedFile);
});
}