diff --git a/Modules/Package.resolved b/Modules/Package.resolved index e95c67937d5c..8b7a152d5286 100644 --- a/Modules/Package.resolved +++ b/Modules/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "e9a0e7ab7d81fc80e7d9edea5811451d65ac1233ae7ae3e7963e34cbd873396e", + "originHash" : "d8bc648699c328088eece68a4101d8e5ad6c548a79680087f8d926740ae9db0d", "pins" : [ { "identity" : "alamofire", @@ -131,8 +131,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/wordpress-mobile/GutenbergKit", "state" : { - "revision" : "f390848952e98d241075c4e65f1e0f6791a695fa", - "version" : "0.15.0" + "revision" : "8c221cc71a46fae5ad0a79639c50bd3db5e7c11b", + "version" : "0.17.2" } }, { diff --git a/Modules/Package.swift b/Modules/Package.swift index 6d77763b743c..f68a1be86a96 100644 --- a/Modules/Package.swift +++ b/Modules/Package.swift @@ -60,7 +60,7 @@ let package = Package( revision: "b34794c9a3f32312e1593d4a3d120572afa0d010" ), .package(url: "https://github.com/zendesk/support_sdk_ios", from: "8.0.3"), - .package(url: "https://github.com/wordpress-mobile/GutenbergKit", from: "0.15.0"), + .package(url: "https://github.com/wordpress-mobile/GutenbergKit", from: "0.17.2"), .package( url: "https://github.com/automattic/wordpress-rs", exact: "0.4.0" diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 423368e006f3..baeed6489e4f 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,5 +1,6 @@ 27.1 ----- +* [*] [internal] Experimental Gutenberg editor: add Lockdown Mode detection [#25776] * [*] [internal] In-app updates: guard the flexible update notice against double-posting when two update checks race [#25666] * [*] [build tooling] Add a String Catalog localization pipeline (plurals + build-free catalog generation) with a CI coverage gate [#25688] * [*] [internal] Stats widgets: migrate the site picker from SiriKit to App Intents [#25753] diff --git a/WordPress/Classes/ViewRelated/NewGutenberg/GBKExtensions.swift b/WordPress/Classes/ViewRelated/NewGutenberg/GBKExtensions.swift index 1c18c01476d7..cb89424b2db9 100644 --- a/WordPress/Classes/ViewRelated/NewGutenberg/GBKExtensions.swift +++ b/WordPress/Classes/ViewRelated/NewGutenberg/GBKExtensions.swift @@ -4,7 +4,10 @@ import Pulse import Support extension GutenbergKit.EditorViewControllerDelegate { - func editor(_ viewController: GutenbergKit.EditorViewController, didLogNetworkRequest request: GutenbergKit.RecordedNetworkRequest) { + func editor( + _ viewController: GutenbergKit.EditorViewController, + didLogNetworkRequest request: GutenbergKit.RecordedNetworkRequest + ) { guard ExtensiveLogging.enabled, let url = URL(string: request.url) else { return } @@ -32,18 +35,105 @@ extension GutenbergKit.EditorViewControllerDelegate { private func getLocalizedString(for value: GutenbergKit.EditorLocalizableString) -> String { switch value { - case .showMore: NSLocalizedString("editor.blockInserter.showMore", value: "Show More", comment: "Button title to expand and show more blocks") - case .showLess: NSLocalizedString("editor.blockInserter.showLess", value: "Show Less", comment: "Button title to collapse and show fewer blocks") - case .search: NSLocalizedString("editor.blockInserter.search", value: "Search", comment: "Placeholder text for block search field") - case .insertBlock: NSLocalizedString("editor.blockInserter.insertBlock", value: "Insert Block", comment: "Context menu action to insert a block") - case .failedToInsertMedia: NSLocalizedString("editor.media.failedToInsert", value: "Failed to insert media", comment: "Error message when media insertion fails") - case .patterns: NSLocalizedString("editor.patterns.title", value: "Patterns", comment: "Navigation title for patterns view") - case .noPatternsFound: NSLocalizedString("editor.patterns.noPatternsFound", value: "No Patterns Found", comment: "Title shown when no patterns match the search") - case .insertPattern: NSLocalizedString("editor.patterns.insertPattern", value: "Insert Pattern", comment: "Context menu action to insert a pattern") - case .patternsCategoryUncategorized: NSLocalizedString("editor.patterns.uncategorized", value: "Uncategorized", comment: "Category name for patterns without a category") - case .patternsCategoryAll: NSLocalizedString("editor.patterns.all", value: "All", comment: "Category name for section showing all patterns") - case .loadingEditor: NSLocalizedString("editor.loading.title", value: "Loading Editor", comment: "Text shown while the editor is loading") - case .editorError: NSLocalizedString("editor.error.title", value: "Editor Error", comment: "Title shown when the editor encounters an error") + case .showMore: + NSLocalizedString( + "editor.blockInserter.showMore", + value: "Show More", + comment: "Button title to expand and show more blocks" + ) + case .showLess: + NSLocalizedString( + "editor.blockInserter.showLess", + value: "Show Less", + comment: "Button title to collapse and show fewer blocks" + ) + case .search: + NSLocalizedString( + "editor.blockInserter.search", + value: "Search", + comment: "Placeholder text for block search field" + ) + case .insertBlock: + NSLocalizedString( + "editor.blockInserter.insertBlock", + value: "Insert Block", + comment: "Context menu action to insert a block" + ) + case .failedToInsertMedia: + NSLocalizedString( + "editor.media.failedToInsert", + value: "Failed to insert media", + comment: "Error message when media insertion fails" + ) + case .patterns: + NSLocalizedString("editor.patterns.title", value: "Patterns", comment: "Navigation title for patterns view") + case .noPatternsFound: + NSLocalizedString( + "editor.patterns.noPatternsFound", + value: "No Patterns Found", + comment: "Title shown when no patterns match the search" + ) + case .insertPattern: + NSLocalizedString( + "editor.patterns.insertPattern", + value: "Insert Pattern", + comment: "Context menu action to insert a pattern" + ) + case .patternsCategoryUncategorized: + NSLocalizedString( + "editor.patterns.uncategorized", + value: "Uncategorized", + comment: "Category name for patterns without a category" + ) + case .patternsCategoryAll: + NSLocalizedString( + "editor.patterns.all", + value: "All", + comment: "Category name for section showing all patterns" + ) + case .loadingEditor: + NSLocalizedString( + "editor.loading.title", + value: "Loading Editor", + comment: "Text shown while the editor is loading" + ) + case .editorError: + NSLocalizedString( + "editor.error.title", + value: "Editor Error", + comment: "Title shown when the editor encounters an error" + ) + case .lockdownModeTitle: + NSLocalizedString( + "editor.lockdownMode.title", + value: "Lockdown Mode Detected", + comment: "Title shown when Lockdown Mode may affect the editor" + ) + case .lockdownModeWarning: + NSLocalizedString( + "editor.lockdownMode.warning", + value: "Lockdown Mode is enabled. The editor may not work correctly.", + comment: "Warning shown when Lockdown Mode may affect the editor" + ) + case .lockdownModeExcludeHint: + NSLocalizedString( + "editor.lockdownMode.excludeHint", + value: + "You can exclude this app from Lockdown Mode in Settings, then re-open the editor to restore full functionality.", + comment: "Instructions for excluding the app from Lockdown Mode" + ) + case .lockdownModeLearnMore: + NSLocalizedString( + "editor.lockdownMode.learnMore", + value: "Learn More", + comment: "Button title to learn more about Lockdown Mode" + ) + case .lockdownModeDismiss: + NSLocalizedString( + "editor.lockdownMode.dismiss", + value: "Dismiss", + comment: "Button title to dismiss the Lockdown Mode warning" + ) } }