BookmarkManager // Better compatibility with URL bookmarks.
This commit is contained in:
parent
de1272f389
commit
2880901491
|
@ -4,7 +4,7 @@ import PackageDescription
|
||||||
let package = Package(
|
let package = Package(
|
||||||
name: "BookmarkManager",
|
name: "BookmarkManager",
|
||||||
platforms: [
|
platforms: [
|
||||||
.macOS(.v11),
|
.macOS(.v10_13),
|
||||||
],
|
],
|
||||||
products: [
|
products: [
|
||||||
.library(
|
.library(
|
||||||
|
|
|
@ -14,14 +14,17 @@ public class BookmarkManager {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if #available(macOS 10.13, *) {
|
do {
|
||||||
do {
|
var data: Data?
|
||||||
let data = try NSKeyedArchiver.archivedData(withRootObject: bookmarkDic, requiringSecureCoding: false)
|
if #unavailable(macOS 10.13) {
|
||||||
try data.write(to: bookmarkURL)
|
data = NSKeyedArchiver.archivedData(withRootObject: bookmarkDic)
|
||||||
NSLog("Did save data to url")
|
} else {
|
||||||
} catch {
|
data = try NSKeyedArchiver.archivedData(withRootObject: bookmarkDic, requiringSecureCoding: false)
|
||||||
NSLog("Couldn't save bookmarks")
|
|
||||||
}
|
}
|
||||||
|
try data?.write(to: bookmarkURL)
|
||||||
|
NSLog("Did save data to url")
|
||||||
|
} catch {
|
||||||
|
NSLog("Couldn't save bookmarks")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,8 +37,24 @@ public class BookmarkManager {
|
||||||
if fileExists(url) {
|
if fileExists(url) {
|
||||||
do {
|
do {
|
||||||
let fileData = try Data(contentsOf: url)
|
let fileData = try Data(contentsOf: url)
|
||||||
try (NSKeyedUnarchiver.unarchivedObject(ofClass: NSDictionary.self, from: fileData) as? [URL: Data])?.forEach { bookmark in
|
if #available(macOS 11.0, *) {
|
||||||
restoreBookmark(key: bookmark.key, value: bookmark.value)
|
if let fileBookmarks = try NSKeyedUnarchiver.unarchivedDictionary(ofKeyClass: NSURL.self, objectClass: NSData.self, from: fileData) as [URL: Data]? {
|
||||||
|
for bookmark in fileBookmarks {
|
||||||
|
restoreBookmark(key: bookmark.key, value: bookmark.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if #available(macOS 10.11, *) {
|
||||||
|
if let fileBookmarks = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(fileData) as! [URL: Data]? {
|
||||||
|
for bookmark in fileBookmarks {
|
||||||
|
restoreBookmark(key: bookmark.key, value: bookmark.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if let fileBookmarks = NSKeyedUnarchiver.unarchiveObject(with: fileData) as! [URL: Data]? {
|
||||||
|
for bookmark in fileBookmarks {
|
||||||
|
restoreBookmark(key: bookmark.key, value: bookmark.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
NSLog("Couldn't load bookmarks")
|
NSLog("Couldn't load bookmarks")
|
||||||
|
|
Loading…
Reference in New Issue