diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index baaa9de7e0bc..2c4b75d19693 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -3301,7 +3301,9 @@ private void onEditorFinalTouchesBeforeShowing() { ((GutenbergEditorFragment) mEditorFragment).resetUploadingMediaToFailed(mediaIds); } } else if (mShowAztecEditor && mEditorFragment instanceof AztecEditorFragment) { - mPostEditorAnalyticsSession.start(null, canViewEditorOnboarding()); + EditorTheme editorTheme = mEditorThemeStore.getEditorThemeForSite(mSite); + Boolean supportsGalleryWithImageBlocks = editorTheme.getThemeSupport().getGalleryWithImageBlocks(); + mPostEditorAnalyticsSession.start(null, canViewEditorOnboarding(), supportsGalleryWithImageBlocks); } } @@ -3314,7 +3316,15 @@ public void onEditorFragmentContentReady( // It assumes this is being called when the editor has finished loading // If you need to refactor this, please ensure that the startup_time_ms property // is still reflecting the actual startup time of the editor - mPostEditorAnalyticsSession.start(unsupportedBlocksList, canViewEditorOnboarding()); + EditorTheme editorTheme = mEditorThemeStore.getEditorThemeForSite(mSite); + Boolean supportsGalleryWithImageBlocks = null; + if (editorTheme != null) { + // Note that if the editor theme has not been initialized (usually on the first app run) the + // `unstableGalleryWithImageBlocks` analytics property will not be reported + supportsGalleryWithImageBlocks = editorTheme.getThemeSupport().getGalleryWithImageBlocks(); + } + mPostEditorAnalyticsSession + .start(unsupportedBlocksList, canViewEditorOnboarding(), supportsGalleryWithImageBlocks); presentNewPageNoticeIfNeeded(); // don't start listening for Story events just now if we're waiting for a block to be replaced, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/PostEditorAnalyticsSession.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/PostEditorAnalyticsSession.java index 3d3536b48648..4417ad6fa701 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/PostEditorAnalyticsSession.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/PostEditorAnalyticsSession.java @@ -24,6 +24,7 @@ public class PostEditorAnalyticsSession implements Serializable { private static final String KEY_HAS_UNSUPPORTED_BLOCKS = "has_unsupported_blocks"; private static final String KEY_UNSUPPORTED_BLOCKS = "unsupported_blocks"; private static final String KEY_CAN_VIEW_EDITOR_ONBOARDING = "can_view_editor_onboarding"; + private static final String KEY_GALLERY_WITH_IMAGE_BLOCKS = "unstableGalleryWithImageBlocks"; private static final String KEY_POST_TYPE = "post_type"; private static final String KEY_OUTCOME = "outcome"; private static final String KEY_SESSION_ID = "session_id"; @@ -97,7 +98,9 @@ public static PostEditorAnalyticsSession getNewPostEditorAnalyticsSession( return new PostEditorAnalyticsSession(editor, post, site, isNewPost); } - public void start(ArrayList unsupportedBlocksList, Boolean canViewEditorOnboarding) { + public void start(ArrayList unsupportedBlocksList, + Boolean canViewEditorOnboarding, + Boolean galleryWithImageBlocks) { if (!mStarted) { mHasUnsupportedBlocks = unsupportedBlocksList != null && unsupportedBlocksList.size() > 0; Map properties = getCommonProperties(); @@ -106,6 +109,9 @@ public void start(ArrayList unsupportedBlocksList, Boolean canViewEditor if (canViewEditorOnboarding != null) { properties.put(KEY_CAN_VIEW_EDITOR_ONBOARDING, canViewEditorOnboarding); } + if (galleryWithImageBlocks != null) { + properties.put(KEY_GALLERY_WITH_IMAGE_BLOCKS, galleryWithImageBlocks); + } // Note that start time only counts when the analytics session was created and not when the editor // activity started. We are mostly interested in measuring the loading times for the block editor, // where the main bottleneck seems to be initializing React Native and doing the initial load of Gutenberg. diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerViewModel.kt index 04dbb2052bbd..e6a06aafff09 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerViewModel.kt @@ -114,7 +114,7 @@ class StoryComposerViewModel @Inject constructor( editPostRepository.getPost(), site ) - this.postEditorAnalyticsSession?.start(null, null) + this.postEditorAnalyticsSession?.start(null, null, null) } private fun createPostEditorAnalyticsSessionTracker(