@@ -58,7 +58,7 @@ struct AccountLogoutView: View { | |||
let request = WFAPost.createFetchRequest() | |||
request.predicate = NSPredicate(format: "status == %i", 1) | |||
do { | |||
let editedPosts = try LocalStorageManager.standard.persistentContainer.viewContext.fetch(request) | |||
let editedPosts = try LocalStorageManager.standard.container.viewContext.fetch(request) | |||
if editedPosts.count == 1 { | |||
editedPostsWarningString = "You'll lose unpublished changes to \(editedPosts.count) edited post. " | |||
} | |||
@@ -99,7 +99,7 @@ extension WriteFreelyModel { | |||
let fetchedCollections = try result.get() | |||
for fetchedCollection in fetchedCollections { | |||
DispatchQueue.main.async { | |||
let localCollection = WFACollection(context: LocalStorageManager.standard.persistentContainer.viewContext) | |||
let localCollection = WFACollection(context: LocalStorageManager.standard.container.viewContext) | |||
localCollection.alias = fetchedCollection.alias | |||
localCollection.blogDescription = fetchedCollection.description | |||
localCollection.email = fetchedCollection.email | |||
@@ -130,7 +130,7 @@ extension WriteFreelyModel { | |||
} | |||
let request = WFAPost.createFetchRequest() | |||
do { | |||
let locallyCachedPosts = try LocalStorageManager.standard.persistentContainer.viewContext.fetch(request) | |||
let locallyCachedPosts = try LocalStorageManager.standard.container.viewContext.fetch(request) | |||
do { | |||
var postsToDelete = locallyCachedPosts.filter { $0.status != PostStatus.local.rawValue } | |||
let fetchedPosts = try result.get() | |||
@@ -146,7 +146,7 @@ extension WriteFreelyModel { | |||
} | |||
} else { | |||
DispatchQueue.main.async { | |||
let managedPost = WFAPost(context: LocalStorageManager.standard.persistentContainer.viewContext) | |||
let managedPost = WFAPost(context: LocalStorageManager.standard.container.viewContext) | |||
managedPost.postId = fetchedPost.postId | |||
managedPost.slug = fetchedPost.slug | |||
managedPost.appearance = fetchedPost.appearance | |||
@@ -222,7 +222,7 @@ extension WriteFreelyModel { | |||
request.predicate = matchBodyPredicate | |||
} | |||
do { | |||
let cachedPostsResults = try LocalStorageManager.standard.persistentContainer.viewContext.fetch(request) | |||
let cachedPostsResults = try LocalStorageManager.standard.container.viewContext.fetch(request) | |||
guard let cachedPost = cachedPostsResults.first else { return } | |||
cachedPost.appearance = fetchedPost.appearance | |||
cachedPost.body = fetchedPost.body | |||
@@ -293,7 +293,7 @@ extension WriteFreelyModel { | |||
} | |||
} catch { | |||
DispatchQueue.main.async { | |||
LocalStorageManager.standard.persistentContainer.viewContext.rollback() | |||
LocalStorageManager.standard.container.viewContext.rollback() | |||
} | |||
print(error) | |||
} | |||
@@ -8,17 +8,17 @@ import AppKit | |||
final class LocalStorageManager { | |||
public static var standard = LocalStorageManager() | |||
public let persistentContainer: NSPersistentContainer | |||
public let container: NSPersistentContainer | |||
init() { | |||
// Set up the persistent container. | |||
persistentContainer = NSPersistentContainer(name: "LocalStorageModel") | |||
persistentContainer.loadPersistentStores { description, error in | |||
container = NSPersistentContainer(name: "LocalStorageModel") | |||
container.loadPersistentStores { description, error in | |||
if let error = error { | |||
fatalError("Core Data store failed to load with error: \(error)") | |||
} | |||
} | |||
persistentContainer.viewContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy | |||
container.viewContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy | |||
let center = NotificationCenter.default | |||
@@ -37,9 +37,9 @@ final class LocalStorageManager { | |||
} | |||
func saveContext() { | |||
if persistentContainer.viewContext.hasChanges { | |||
if container.viewContext.hasChanges { | |||
do { | |||
try persistentContainer.viewContext.save() | |||
try container.viewContext.save() | |||
} catch { | |||
print("Error saving context: \(error)") | |||
} | |||
@@ -51,7 +51,7 @@ final class LocalStorageManager { | |||
let deleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest) | |||
do { | |||
try persistentContainer.viewContext.executeAndMergeChanges(using: deleteRequest) | |||
try container.viewContext.executeAndMergeChanges(using: deleteRequest) | |||
} catch { | |||
print("Error: Failed to purge cached collections.") | |||
} | |||
@@ -61,7 +61,7 @@ struct ContentView: View { | |||
struct ContentView_Previews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let model = WriteFreelyModel() | |||
return ContentView() | |||
@@ -2,7 +2,7 @@ import SwiftUI | |||
struct CollectionListView: View { | |||
@EnvironmentObject var model: WriteFreelyModel | |||
@ObservedObject var collections = CollectionListModel(managedObjectContext: LocalStorageManager.standard.persistentContainer.viewContext) | |||
@ObservedObject var collections = CollectionListModel(managedObjectContext: LocalStorageManager.standard.container.viewContext) | |||
@State var selectedCollection: WFACollection? | |||
var body: some View { | |||
@@ -43,7 +43,7 @@ struct CollectionListView: View { | |||
struct CollectionListView_LoggedOutPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let model = WriteFreelyModel() | |||
return CollectionListView() | |||
@@ -27,7 +27,7 @@ struct PostEditorModel { | |||
} | |||
func generateNewLocalPost(withFont appearance: Int) -> WFAPost { | |||
let managedPost = WFAPost(context: LocalStorageManager.standard.persistentContainer.viewContext) | |||
let managedPost = WFAPost(context: LocalStorageManager.standard.container.viewContext) | |||
managedPost.createdDate = Date() | |||
managedPost.title = "" | |||
managedPost.body = "" | |||
@@ -55,9 +55,9 @@ struct PostEditorModel { | |||
} | |||
private func fetchManagedObject(from objectURL: URL) -> NSManagedObject? { | |||
let coordinator = LocalStorageManager.standard.persistentContainer.persistentStoreCoordinator | |||
let coordinator = LocalStorageManager.standard.container.persistentStoreCoordinator | |||
guard let managedObjectID = coordinator.managedObjectID(forURIRepresentation: objectURL) else { return nil } | |||
let object = LocalStorageManager.standard.persistentContainer.viewContext.object(with: managedObjectID) | |||
let object = LocalStorageManager.standard.container.viewContext.object(with: managedObjectID) | |||
return object | |||
} | |||
} |
@@ -65,7 +65,7 @@ struct PostEditorStatusToolbarView: View { | |||
struct PESTView_StandardPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let model = WriteFreelyModel() | |||
let testPost = WFAPost(context: context) | |||
testPost.status = PostStatus.published.rawValue | |||
@@ -77,7 +77,7 @@ struct PESTView_StandardPreviews: PreviewProvider { | |||
struct PESTView_OutdatedLocalCopyPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let model = WriteFreelyModel() | |||
let updatedPost = WFAPost(context: context) | |||
updatedPost.status = PostStatus.published.rawValue | |||
@@ -90,7 +90,7 @@ struct PESTView_OutdatedLocalCopyPreviews: PreviewProvider { | |||
struct PESTView_DeletedRemoteCopyPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let model = WriteFreelyModel() | |||
let deletedPost = WFAPost(context: context) | |||
deletedPost.status = PostStatus.published.rawValue | |||
@@ -46,7 +46,7 @@ struct PostCellView: View { | |||
struct PostCell_AllPostsPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let testPost = WFAPost(context: context) | |||
testPost.title = "Test Post Title" | |||
testPost.body = "Here's some cool sample body text." | |||
@@ -59,7 +59,7 @@ struct PostCell_AllPostsPreviews: PreviewProvider { | |||
struct PostCell_NormalPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let testPost = WFAPost(context: context) | |||
testPost.title = "Test Post Title" | |||
testPost.body = "Here's some cool sample body text." | |||
@@ -73,7 +73,7 @@ struct PostCell_NormalPreviews: PreviewProvider { | |||
struct PostCell_NoTitlePreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let testPost = WFAPost(context: context) | |||
testPost.title = "" | |||
testPost.body = "Here's some cool sample body text." | |||
@@ -4,7 +4,7 @@ import CoreData | |||
class PostListModel: ObservableObject { | |||
func remove(_ post: WFAPost) { | |||
withAnimation { | |||
LocalStorageManager.standard.persistentContainer.viewContext.delete(post) | |||
LocalStorageManager.standard.container.viewContext.delete(post) | |||
LocalStorageManager.standard.saveContext() | |||
} | |||
} | |||
@@ -15,7 +15,7 @@ class PostListModel: ObservableObject { | |||
let deleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest) | |||
do { | |||
try LocalStorageManager.standard.persistentContainer.viewContext.executeAndMergeChanges(using: deleteRequest) | |||
try LocalStorageManager.standard.container.viewContext.executeAndMergeChanges(using: deleteRequest) | |||
} catch { | |||
print("Error: Failed to purge cached posts.") | |||
} | |||
@@ -165,7 +165,7 @@ struct PostListView: View { | |||
struct PostListView_Previews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let model = WriteFreelyModel() | |||
return PostListView(showAllPosts: true) | |||
@@ -38,7 +38,7 @@ struct PostStatusBadgeView: View { | |||
struct PostStatusBadge_LocalDraftPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let testPost = WFAPost(context: context) | |||
testPost.status = PostStatus.local.rawValue | |||
@@ -49,7 +49,7 @@ struct PostStatusBadge_LocalDraftPreviews: PreviewProvider { | |||
struct PostStatusBadge_EditedPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let testPost = WFAPost(context: context) | |||
testPost.status = PostStatus.edited.rawValue | |||
@@ -60,7 +60,7 @@ struct PostStatusBadge_EditedPreviews: PreviewProvider { | |||
struct PostStatusBadge_PublishedPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let testPost = WFAPost(context: context) | |||
testPost.status = PostStatus.published.rawValue | |||
@@ -56,7 +56,7 @@ struct WriteFreely_MultiPlatformApp: App { | |||
// } | |||
}) | |||
.environmentObject(model) | |||
.environment(\.managedObjectContext, LocalStorageManager.standard.persistentContainer.viewContext) | |||
.environment(\.managedObjectContext, LocalStorageManager.standard.container.viewContext) | |||
// .preferredColorScheme(preferences.selectedColorScheme) // See PreferencesModel for info. | |||
} | |||
.commands { | |||
@@ -236,7 +236,7 @@ struct PostEditorView: View { | |||
struct PostEditorView_EmptyPostPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let testPost = WFAPost(context: context) | |||
testPost.createdDate = Date() | |||
testPost.appearance = "norm" | |||
@@ -251,7 +251,7 @@ struct PostEditorView_EmptyPostPreviews: PreviewProvider { | |||
struct PostEditorView_ExistingPostPreviews: PreviewProvider { | |||
static var previews: some View { | |||
let context = LocalStorageManager.standard.persistentContainer.viewContext | |||
let context = LocalStorageManager.standard.container.viewContext | |||
let testPost = WFAPost(context: context) | |||
testPost.title = "Test Post Title" | |||
testPost.body = "Here's some cool sample body text." | |||