From 09945fea39ff27aff355a3223bde843e563b14f8 Mon Sep 17 00:00:00 2001 From: David Calhoun Date: Wed, 6 Aug 2025 19:19:12 -0400 Subject: [PATCH 1/8] feat: Display suggestions UI for GutenbergKit autocompletion --- .../editor/GutenbergKitEditorFragment.kt | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt index 02e17fe483d4..7d208736c323 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt @@ -139,6 +139,29 @@ class GutenbergKitEditorFragment : EditorFragmentAbstract(), EditorMediaUploadLi featuredImageChangeListener?.let(gutenbergView::setFeaturedImageChangeListener) openMediaLibraryListener?.let(gutenbergView::setOpenMediaLibraryListener) onLogJsExceptionListener?.let(gutenbergView::setLogJsExceptionListener) + + // Set up autocomplete listener for user mentions and cross-post suggestions + gutenbergView.setAutocompleterTriggeredListener(object : GutenbergView.AutocompleterTriggeredListener { + override fun onAutocompleterTriggered(type: String) { + when (type) { + "at-symbol" -> mEditorFragmentListener.showUserSuggestions { result -> + result?.let { + // Append empty string to suggestion to complete GutenbergKit's autocomplete session, + // otherwise it will immediately restart + gutenbergView.appendTextAtCursor("$it ") + } + } + "plus-symbol" -> mEditorFragmentListener.showXpostSuggestions { result -> + result?.let { + // Append empty string to suggestion to complete GutenbergKit's autocomplete session, + // otherwise it will immediately restart + gutenbergView.appendTextAtCursor("$it ") + } + } + } + } + }) + gutenbergView.setEditorDidBecomeAvailable { isEditorDidMount = true mEditorFragmentListener.onEditorFragmentContentReady(ArrayList(), false) From 385f0cec9c2385f7999fb46633d3b2eb3605ea26 Mon Sep 17 00:00:00 2001 From: David Calhoun Date: Wed, 6 Aug 2025 19:31:43 -0400 Subject: [PATCH 2/8] feat: Display cross-post suggestions based on site capabilities --- .../android/ui/posts/EditPostActivity.kt | 4 ++++ .../editor/GutenbergKitEditorFragment.kt | 21 +++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt index aaca02e756e4..5a22cda2edc7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt @@ -2756,6 +2756,10 @@ class EditPostActivity : BaseAppCompatActivity(), EditorFragmentActivity, Editor if (editorFragment is GutenbergEditorFragment) { (editorFragment as GutenbergEditorFragment).updateCapabilities(gutenbergPropsBuilder) } + if (editorFragment is GutenbergKitEditorFragment) { + val enableXPosts = siteModel.isUsingWpComRestApi && (isXPostsCapable == null || isXPostsCapable == true) + (editorFragment as GutenbergKitEditorFragment).setXPostsEnabled(enableXPosts) + } } private val gutenbergPropsBuilder: GutenbergPropsBuilder diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt index 7d208736c323..d969960e337d 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt @@ -75,6 +75,7 @@ class GutenbergKitEditorFragment : EditorFragmentAbstract(), EditorMediaUploadLi private var isEditorStarted = false private var isEditorDidMount = false private var rootView: View? = null + private var isXPostsEnabled: Boolean = false // Access settings through ViewModel private val settings: GutenbergKitSettings? @@ -146,16 +147,20 @@ class GutenbergKitEditorFragment : EditorFragmentAbstract(), EditorMediaUploadLi when (type) { "at-symbol" -> mEditorFragmentListener.showUserSuggestions { result -> result?.let { - // Append empty string to suggestion to complete GutenbergKit's autocomplete session, + // Append space to suggestion to complete GutenbergKit's autocomplete session, // otherwise it will immediately restart gutenbergView.appendTextAtCursor("$it ") } } - "plus-symbol" -> mEditorFragmentListener.showXpostSuggestions { result -> - result?.let { - // Append empty string to suggestion to complete GutenbergKit's autocomplete session, - // otherwise it will immediately restart - gutenbergView.appendTextAtCursor("$it ") + "plus-symbol" -> { + if (isXPostsEnabled) { + mEditorFragmentListener.showXpostSuggestions { result -> + result?.let { + // Append space to suggestion to complete GutenbergKit's autocomplete session, + // otherwise it will immediately restart + gutenbergView.appendTextAtCursor("$it ") + } + } } } } @@ -546,6 +551,10 @@ class GutenbergKitEditorFragment : EditorFragmentAbstract(), EditorMediaUploadLi gutenbergView?.start(config) } + fun setXPostsEnabled(enabled: Boolean) { + isXPostsEnabled = enabled + } + private fun buildEditorConfiguration(editorSettings: String): EditorConfiguration { val kitSettings = settings!! From e563e10e619b57239c3984d010f388abdceccd05 Mon Sep 17 00:00:00 2001 From: David Calhoun Date: Thu, 7 Aug 2025 09:21:02 -0400 Subject: [PATCH 3/8] build: Update GutenbergKit version --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e2afd2618e44..d164739031df 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -73,7 +73,7 @@ google-play-services-auth = '20.4.1' google-services = '4.4.3' gravatar = '2.5.0' greenrobot-eventbus = '3.3.1' -gutenberg-kit = 'v0.7.0' +gutenberg-kit = '165-819153073c437e29ebea382e87b1be9a55d5ee20' gutenberg-mobile = 'v1.121.0' indexos-media-for-mobile = '43a9026f0973a2f0a74fa813132f6a16f7499c3a' jackson-databind = '2.12.7.1' From ed9535bf9dc0c73976515e0b87f2dc78166ff7dd Mon Sep 17 00:00:00 2001 From: David Calhoun Date: Thu, 7 Aug 2025 14:28:08 -0400 Subject: [PATCH 4/8] build: Update GutenbergKit version --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d164739031df..fcd612cbb17b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -73,7 +73,7 @@ google-play-services-auth = '20.4.1' google-services = '4.4.3' gravatar = '2.5.0' greenrobot-eventbus = '3.3.1' -gutenberg-kit = '165-819153073c437e29ebea382e87b1be9a55d5ee20' +gutenberg-kit = '165-f94ca59ae0052d8fa0966537a503410b93b099db' gutenberg-mobile = 'v1.121.0' indexos-media-for-mobile = '43a9026f0973a2f0a74fa813132f6a16f7499c3a' jackson-databind = '2.12.7.1' From c75750597016516b21400c392df0feb03e3a5231 Mon Sep 17 00:00:00 2001 From: David Calhoun Date: Thu, 7 Aug 2025 17:07:01 -0400 Subject: [PATCH 5/8] build: Update GutenbergKit version --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fcd612cbb17b..f4620402d279 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -73,7 +73,7 @@ google-play-services-auth = '20.4.1' google-services = '4.4.3' gravatar = '2.5.0' greenrobot-eventbus = '3.3.1' -gutenberg-kit = '165-f94ca59ae0052d8fa0966537a503410b93b099db' +gutenberg-kit = '165-81dcf29c83b674e78e78cc64d960336407efe662' gutenberg-mobile = 'v1.121.0' indexos-media-for-mobile = '43a9026f0973a2f0a74fa813132f6a16f7499c3a' jackson-databind = '2.12.7.1' From 95e3c59ae93f43dbd38f6941b9b62815085f9796 Mon Sep 17 00:00:00 2001 From: David Calhoun Date: Fri, 8 Aug 2025 08:38:32 -0400 Subject: [PATCH 6/8] docs: Shorten inline comment --- .../android/ui/posts/editor/GutenbergKitEditorFragment.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt index d969960e337d..b75c0e21158a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/editor/GutenbergKitEditorFragment.kt @@ -147,8 +147,7 @@ class GutenbergKitEditorFragment : EditorFragmentAbstract(), EditorMediaUploadLi when (type) { "at-symbol" -> mEditorFragmentListener.showUserSuggestions { result -> result?.let { - // Append space to suggestion to complete GutenbergKit's autocomplete session, - // otherwise it will immediately restart + // Appended space completes the autocomplete session gutenbergView.appendTextAtCursor("$it ") } } @@ -156,8 +155,7 @@ class GutenbergKitEditorFragment : EditorFragmentAbstract(), EditorMediaUploadLi if (isXPostsEnabled) { mEditorFragmentListener.showXpostSuggestions { result -> result?.let { - // Append space to suggestion to complete GutenbergKit's autocomplete session, - // otherwise it will immediately restart + // Appended space completes the autocomplete session gutenbergView.appendTextAtCursor("$it ") } } From 06c7f02dcd1715b24ef45f0eeef90826bccb3d9a Mon Sep 17 00:00:00 2001 From: David Calhoun Date: Fri, 8 Aug 2025 08:40:02 -0400 Subject: [PATCH 7/8] build: Update GutenbergKit version --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f4620402d279..047d3532be05 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -73,7 +73,7 @@ google-play-services-auth = '20.4.1' google-services = '4.4.3' gravatar = '2.5.0' greenrobot-eventbus = '3.3.1' -gutenberg-kit = '165-81dcf29c83b674e78e78cc64d960336407efe662' +gutenberg-kit = '165-f5e0a7f8ba443f23562f831be31b8477fc1a3dcf' gutenberg-mobile = 'v1.121.0' indexos-media-for-mobile = '43a9026f0973a2f0a74fa813132f6a16f7499c3a' jackson-databind = '2.12.7.1' From 61b7b58a69646ea20d1fe2fc3530c2923fd8bb2f Mon Sep 17 00:00:00 2001 From: David Calhoun Date: Tue, 12 Aug 2025 13:50:09 -0400 Subject: [PATCH 8/8] build: Update GutenbergKit version --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 047d3532be05..8eb6b96c1cc5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -73,7 +73,7 @@ google-play-services-auth = '20.4.1' google-services = '4.4.3' gravatar = '2.5.0' greenrobot-eventbus = '3.3.1' -gutenberg-kit = '165-f5e0a7f8ba443f23562f831be31b8477fc1a3dcf' +gutenberg-kit = 'v0.8.0-alpha.0' gutenberg-mobile = 'v1.121.0' indexos-media-for-mobile = '43a9026f0973a2f0a74fa813132f6a16f7499c3a' jackson-databind = '2.12.7.1'