@@ -93,9 +93,10 @@ final class NoteEditorViewController: UIViewController {
93
93
case . done:
94
94
let done = UIBarButtonItem ( title: L10n . done, style: . done, target: nil , action: nil )
95
95
done. rx. tap
96
- . subscribe ( with: self , onNext: { `self`, _ in
96
+ . subscribe ( onNext: { [ weak self] _ in
97
+ guard let self else { return }
97
98
forceSaveIfNeeded ( )
98
- self . navigationController? . presentingViewController? . dismiss ( animated: true , completion: nil )
99
+ navigationController? . presentingViewController? . dismiss ( animated: true , completion: nil )
99
100
} )
100
101
. disposed ( by: disposeBag)
101
102
item = done
@@ -110,8 +111,12 @@ final class NoteEditorViewController: UIViewController {
110
111
self ? . coordinatorDelegate
111
112
} ,
112
113
completion: { [ weak self] changedCurrentItem, openItemsChanged in
113
- guard let self, !changedCurrentItem && openItemsChanged else { return }
114
- openItemsController. setOpenItemsUserActivity ( from: self , libraryId: viewModel. state. library. identifier)
114
+ guard let self else { return }
115
+ if changedCurrentItem {
116
+ forceSaveIfNeeded ( )
117
+ } else if openItemsChanged {
118
+ openItemsController. setOpenItemsUserActivity ( from: self , libraryId: viewModel. state. library. identifier)
119
+ }
115
120
}
116
121
)
117
122
let openItemsMenu = UIMenu ( title: L10n . Accessibility. Pdf. openItems, options: [ . displayInline] , children: [ deferredOpenItemsMenuElement] )
@@ -128,12 +133,6 @@ final class NoteEditorViewController: UIViewController {
128
133
guard let item = navigationItem. rightBarButtonItems? . first ( where: { button in RightBarButtonItem ( rawValue: button. tag) == . restoreOpenItems } ) else { return }
129
134
item. image = . openItemsImage( count: count)
130
135
}
131
-
132
- func forceSaveIfNeeded( ) {
133
- guard debounceDisposeBag != nil else { return }
134
- debounceDisposeBag = nil
135
- viewModel. process ( action: . save)
136
- }
137
136
}
138
137
139
138
func setupWebView( ) {
@@ -215,6 +214,12 @@ final class NoteEditorViewController: UIViewController {
215
214
self ? . viewModel. process ( action: . setTags( tags) )
216
215
} )
217
216
}
217
+
218
+ private func forceSaveIfNeeded( ) {
219
+ guard debounceDisposeBag != nil else { return }
220
+ debounceDisposeBag = nil
221
+ viewModel. process ( action: . save)
222
+ }
218
223
}
219
224
220
225
extension NoteEditorViewController : WKNavigationDelegate {
0 commit comments