|
|
|
@ -12,6 +12,8 @@ class NotesPageViewController : UIPageViewController, UIPageViewControllerDelega |
|
|
|
|
|
|
|
|
|
|
|
fileprivate var _notes: [Note] = [] |
|
|
|
fileprivate var _notes: [Note] = [] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fileprivate var _currentIndex: Int = 0 |
|
|
|
|
|
|
|
|
|
|
|
override func viewDidLoad() { |
|
|
|
override func viewDidLoad() { |
|
|
|
super.viewDidLoad() |
|
|
|
super.viewDidLoad() |
|
|
|
|
|
|
|
|
|
|
|
@ -19,22 +21,29 @@ class NotesPageViewController : UIPageViewController, UIPageViewControllerDelega |
|
|
|
|
|
|
|
|
|
|
|
let shareButton = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(shareHandler)) |
|
|
|
let shareButton = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(shareHandler)) |
|
|
|
let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addHandler)) |
|
|
|
let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addHandler)) |
|
|
|
self.navigationItem.rightBarButtonItems = [addButton, shareButton] |
|
|
|
let deleteButton = UIBarButtonItem(barButtonSystemItem: .trash, target: self, action: #selector(deleteHandler)) |
|
|
|
|
|
|
|
self.navigationItem.rightBarButtonItems = [addButton, shareButton, deleteButton] |
|
|
|
|
|
|
|
|
|
|
|
self.dataSource = self |
|
|
|
self.dataSource = self |
|
|
|
self.delegate = self |
|
|
|
self.delegate = self |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self._displayLastNote() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fileprivate func _displayLastNote(animated: Bool = false) { |
|
|
|
if let note = self._notes.last { |
|
|
|
if let note = self._notes.last { |
|
|
|
let vc = self.viewController(note: note, index: self._notes.count - 1) |
|
|
|
let index = self._notes.count - 1 |
|
|
|
self.setViewControllers([vc], direction: .forward, animated: false) |
|
|
|
let vc = self.viewController(note: note, index: index) |
|
|
|
|
|
|
|
self.setViewControllers([vc], direction: .forward, animated: animated) |
|
|
|
|
|
|
|
self._currentIndex = index |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
fileprivate func _displayNote(note: Note) { |
|
|
|
fileprivate func _displayNote(note: Note, animated: Bool = false) { |
|
|
|
if let index = self._notes.firstIndex(of: note) { |
|
|
|
if let index = self._notes.firstIndex(of: note) { |
|
|
|
let vc = self.viewController(note: note, index: index) |
|
|
|
let vc = self.viewController(note: note, index: index) |
|
|
|
self.setViewControllers([vc], direction: .forward, animated: false) |
|
|
|
self.setViewControllers([vc], direction: .forward, animated: animated) |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
print("note not found") |
|
|
|
print("note not found") |
|
|
|
} |
|
|
|
} |
|
|
|
@ -96,11 +105,19 @@ class NotesPageViewController : UIPageViewController, UIPageViewControllerDelega |
|
|
|
return self.viewController(note: note, index: nextIndex) |
|
|
|
return self.viewController(note: note, index: nextIndex) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if completed, let vc = pageViewController.viewControllers?.first as? NoteViewController { |
|
|
|
|
|
|
|
self._currentIndex = vc.index |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// MARK: - Business |
|
|
|
// MARK: - Business |
|
|
|
|
|
|
|
|
|
|
|
@objc func shareHandler() { |
|
|
|
@objc func shareHandler() { |
|
|
|
|
|
|
|
|
|
|
|
guard let vc = self.presentedViewController as? NoteViewController, let text = vc.note?.content else { |
|
|
|
guard let text = self._notes[self._currentIndex].content else { |
|
|
|
return |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -112,6 +129,23 @@ class NotesPageViewController : UIPageViewController, UIPageViewControllerDelega |
|
|
|
self._createNote() |
|
|
|
self._createNote() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@objc func deleteHandler() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let note = self._notes[self._currentIndex] |
|
|
|
|
|
|
|
guard let content = note.content else { |
|
|
|
|
|
|
|
self.showAlert(message: "Sorry!", title: "Note not found") |
|
|
|
|
|
|
|
return |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
areYouSure(message: "Do you want to delete this: \(content.prefix(20))...?") { |
|
|
|
|
|
|
|
AppDelegate.viewContext.delete(note) |
|
|
|
|
|
|
|
AppDelegate.shared.saveContext() |
|
|
|
|
|
|
|
self._loadNotes() |
|
|
|
|
|
|
|
self._displayLastNote(animated: true) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
fileprivate func _createNote() { |
|
|
|
fileprivate func _createNote() { |
|
|
|
let note = Note(context: AppDelegate.viewContext) |
|
|
|
let note = Note(context: AppDelegate.viewContext) |
|
|
|
self._loadNotes() |
|
|
|
self._loadNotes() |
|
|
|
|