@@ -6,7 +6,6 @@ import WordPressFlux
66import Kanvas
77
88class GutenbergViewController : UIViewController , PostEditor , FeaturedImageDelegate {
9-
109 let errorDomain : String = " GutenbergViewController.errorDomain "
1110
1211 enum RequestHTMLReason {
@@ -15,6 +14,7 @@ class GutenbergViewController: UIViewController, PostEditor, FeaturedImageDelega
1514 case more
1615 case switchBlog
1716 case autoSave
17+ case continueFromHomepageEditing
1818 }
1919
2020 private lazy var stockPhotos : GutenbergStockPhotos = {
@@ -223,7 +223,7 @@ class GutenbergViewController: UIViewController, PostEditor, FeaturedImageDelega
223223 ///
224224 var loadAutosaveRevision : Bool
225225
226- let navigationBarManager = PostEditorNavigationBarManager ( )
226+ let navigationBarManager : PostEditorNavigationBarManager
227227
228228 lazy var attachmentDelegate = AztecAttachmentDelegate ( post: post)
229229
@@ -299,25 +299,32 @@ class GutenbergViewController: UIViewController, PostEditor, FeaturedImageDelega
299299 } ( )
300300
301301 // MARK: - Initializers
302+ required convenience init ( post: AbstractPost , loadAutosaveRevision: Bool , replaceEditor: @escaping ReplaceEditorCallback , editorSession: PostEditorAnalyticsSession ? ) {
303+ self . init ( post: post, loadAutosaveRevision: loadAutosaveRevision, replaceEditor: replaceEditor, editorSession: editorSession)
304+ }
305+
302306 required init (
303307 post: AbstractPost ,
304308 loadAutosaveRevision: Bool = false ,
305- replaceEditor: @escaping ( EditorViewController , EditorViewController ) -> ( ) ,
306- editorSession: PostEditorAnalyticsSession ? = nil ) {
309+ replaceEditor: @escaping ReplaceEditorCallback ,
310+ editorSession: PostEditorAnalyticsSession ? = nil ,
311+ navigationBarManager: PostEditorNavigationBarManager ? = nil
312+ ) {
307313
308314 self . post = post
309315 self . loadAutosaveRevision = loadAutosaveRevision
310316
311317 self . replaceEditor = replaceEditor
312318 verificationPromptHelper = AztecVerificationPromptHelper ( account: self . post. blog. account)
313319 self . editorSession = PostEditorAnalyticsSession ( editor: . gutenberg, post: post)
320+ self . navigationBarManager = navigationBarManager ?? PostEditorNavigationBarManager ( )
314321
315322 super. init ( nibName: nil , bundle: nil )
316323
317324 addObservers ( toPost: post)
318325
319326 PostCoordinator . shared. cancelAnyPendingSaveOf ( post: post)
320- navigationBarManager. delegate = self
327+ self . navigationBarManager. delegate = self
321328 }
322329
323330 required init ? ( coder aDecoder: NSCoder ) {
@@ -882,10 +889,19 @@ extension GutenbergViewController: GutenbergBridgeDelegate {
882889 blogPickerWasPressed ( )
883890 case . autoSave:
884891 break
892+ // Inelegant :(
893+ case . continueFromHomepageEditing:
894+ continueFromHomepageEditing ( )
895+ break
885896 }
886897 }
887898 }
888899
900+ // Not ideal, but seems the least bad of the alternatives
901+ @objc func continueFromHomepageEditing( ) {
902+ fatalError ( " This method must be overriden by the extending class " )
903+ }
904+
889905 func gutenbergDidLayout( ) {
890906 defer {
891907 isFirstGutenbergLayout = false
0 commit comments