Skip to content

Commit e9b7741

Browse files
authored
Merge pull request #14766 from wordpress-mobile/update/editor-session-analytic-properties
Add can_view_editor_onboarding property to editor session events
2 parents fb0605e + 7fa6ba7 commit e9b7741

File tree

5 files changed

+24
-14
lines changed

5 files changed

+24
-14
lines changed

WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -964,7 +964,7 @@ protected void onPause() {
964964
protected void onDestroy() {
965965
if (!mIsConfigChange && (mRestartEditorOption == RestartEditorOptions.NO_RESTART)) {
966966
if (mPostEditorAnalyticsSession != null) {
967-
mPostEditorAnalyticsSession.end();
967+
mPostEditorAnalyticsSession.end(canViewEditorOnboarding());
968968
}
969969
}
970970

@@ -2296,9 +2296,7 @@ private GutenbergPropsBuilder getGutenbergPropsBuilder() {
22962296
boolean isFreeWPCom = mSite.isWPCom() && SiteUtils.onFreePlan(mSite);
22972297
boolean isWPComSite = mSite.isWPCom() || mSite.isWPComAtomic();
22982298

2299-
boolean canViewEditorOnboarding = (
2300-
mAccountStore.getAccount().getUserId() % 100 >= (100 - EDITOR_ONBOARDING_PHASE_PERCENTAGE)
2301-
|| BuildConfig.DEBUG) && !AppPrefs.hasLaunchedGutenbergEditor();
2299+
boolean enableEditorOnboarding = canViewEditorOnboarding() && !AppPrefs.hasLaunchedGutenbergEditor();
23022300

23032301
return new GutenbergPropsBuilder(
23042302
mContactInfoBlockFeatureConfig.isEnabled() && SiteUtils.supportsContactInfoFeature(mSite),
@@ -2314,10 +2312,15 @@ private GutenbergPropsBuilder getGutenbergPropsBuilder() {
23142312
postType,
23152313
featuredImageId,
23162314
themeBundle,
2317-
canViewEditorOnboarding
2315+
enableEditorOnboarding
23182316
);
23192317
}
23202318

2319+
private Boolean canViewEditorOnboarding() {
2320+
return (mAccountStore.getAccount().getUserId() % 100 >= (100 - EDITOR_ONBOARDING_PHASE_PERCENTAGE)
2321+
|| BuildConfig.DEBUG);
2322+
}
2323+
23212324
// Moved from EditPostContentFragment
23222325
public static final String NEW_MEDIA_POST = "NEW_MEDIA_POST";
23232326
public static final String NEW_MEDIA_POST_EXTRA_IDS = "NEW_MEDIA_POST_EXTRA_IDS";
@@ -3249,7 +3252,7 @@ private void onEditorFinalTouchesBeforeShowing() {
32493252
((GutenbergEditorFragment) mEditorFragment).resetUploadingMediaToFailed(mediaIds);
32503253
}
32513254
} else if (mShowAztecEditor && mEditorFragment instanceof AztecEditorFragment) {
3252-
mPostEditorAnalyticsSession.start(null);
3255+
mPostEditorAnalyticsSession.start(null, canViewEditorOnboarding());
32533256
}
32543257
}
32553258

@@ -3262,7 +3265,7 @@ public void onEditorFragmentContentReady(
32623265
// It assumes this is being called when the editor has finished loading
32633266
// If you need to refactor this, please ensure that the startup_time_ms property
32643267
// is still reflecting the actual startup time of the editor
3265-
mPostEditorAnalyticsSession.start(unsupportedBlocksList);
3268+
mPostEditorAnalyticsSession.start(unsupportedBlocksList, canViewEditorOnboarding());
32663269
presentNewPageNoticeIfNeeded();
32673270

32683271
// don't start listening for Story events just now if we're waiting for a block to be replaced,

WordPress/src/main/java/org/wordpress/android/ui/posts/PostEditorAnalyticsSession.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class PostEditorAnalyticsSession implements Serializable {
2323
private static final String KEY_EDITOR = "editor";
2424
private static final String KEY_HAS_UNSUPPORTED_BLOCKS = "has_unsupported_blocks";
2525
private static final String KEY_UNSUPPORTED_BLOCKS = "unsupported_blocks";
26+
private static final String KEY_CAN_VIEW_EDITOR_ONBOARDING = "can_view_editor_onboarding";
2627
private static final String KEY_POST_TYPE = "post_type";
2728
private static final String KEY_OUTCOME = "outcome";
2829
private static final String KEY_SESSION_ID = "session_id";
@@ -94,12 +95,15 @@ public static PostEditorAnalyticsSession getNewPostEditorAnalyticsSession(
9495
return new PostEditorAnalyticsSession(editor, post, site, isNewPost);
9596
}
9697

97-
public void start(ArrayList<Object> unsupportedBlocksList) {
98+
public void start(ArrayList<Object> unsupportedBlocksList, Boolean canViewEditorOnboarding) {
9899
if (!mStarted) {
99100
mHasUnsupportedBlocks = unsupportedBlocksList != null && unsupportedBlocksList.size() > 0;
100101
Map<String, Object> properties = getCommonProperties();
101102
properties.put(KEY_UNSUPPORTED_BLOCKS,
102103
unsupportedBlocksList != null ? unsupportedBlocksList : new ArrayList<>());
104+
if (canViewEditorOnboarding != null) {
105+
properties.put(KEY_CAN_VIEW_EDITOR_ONBOARDING, canViewEditorOnboarding);
106+
}
103107
// Note that start time only counts when the analytics session was created and not when the editor
104108
// activity started. We are mostly interested in measuring the loading times for the block editor,
105109
// where the main bottleneck seems to be initializing React Native and doing the initial load of Gutenberg.
@@ -138,7 +142,7 @@ public void applyTemplate(String template) {
138142
AnalyticsTracker.track(Stat.EDITOR_SESSION_TEMPLATE_APPLY, properties);
139143
}
140144

141-
public void end() {
145+
public void end(Boolean canViewEditorOnboarding) {
142146
// don't try to send an "end" event if the session wasn't started in the first place
143147
if (mStarted) {
144148
if (mOutcome == null) {
@@ -148,6 +152,9 @@ public void end() {
148152
}
149153
Map<String, Object> properties = getCommonProperties();
150154
properties.put(KEY_OUTCOME, mOutcome.toString().toLowerCase(Locale.ROOT));
155+
if (canViewEditorOnboarding != null) {
156+
properties.put(KEY_CAN_VIEW_EDITOR_ONBOARDING, canViewEditorOnboarding);
157+
}
151158
AnalyticsTracker.track(Stat.EDITOR_SESSION_END, properties);
152159
} else {
153160
AppLog.e(T.EDITOR, "A non-started editor session cannot be attempted to be ended");

WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ class StoryComposerViewModel @Inject constructor(
114114
editPostRepository.getPost(),
115115
site
116116
)
117-
this.postEditorAnalyticsSession?.start(null)
117+
this.postEditorAnalyticsSession?.start(null, null)
118118
}
119119

120120
private fun createPostEditorAnalyticsSessionTracker(
@@ -185,6 +185,6 @@ class StoryComposerViewModel @Inject constructor(
185185
override fun onCleared() {
186186
super.onCleared()
187187
lifecycleOwner.lifecycleRegistry.currentState = Lifecycle.State.DESTROYED
188-
postEditorAnalyticsSession?.end()
188+
postEditorAnalyticsSession?.end(null)
189189
}
190190
}

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ buildscript {
88
ext.wordPressUtilsVersion = 'develop-bb54ee34c5fec5fa7375ce90a356adb5adbdcae0'
99
ext.wordPressLoginVersion = '0.0.2'
1010
ext.detektVersion = '1.15.0'
11-
ext.gutenbergMobileVersion = 'v1.56.0-alpha3'
11+
ext.gutenbergMobileVersion = 'v1.56.0-alpha4'
1212

1313
repositories {
1414
maven {

libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergPropsBuilder.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ data class GutenbergPropsBuilder(
2121
private val postType: String,
2222
private val featuredImageId: Int,
2323
private val editorTheme: Bundle?,
24-
private val canViewEditorOnboarding: Boolean
24+
private val enableEditorOnboarding: Boolean
2525
) : Parcelable {
2626
fun build(activity: Activity, isHtmlModeEnabled: Boolean) = GutenbergProps(
2727
enableContactInfoBlock = enableContactInfoBlock,
@@ -40,6 +40,6 @@ data class GutenbergPropsBuilder(
4040
translations = GutenbergUtils.getTranslations(activity),
4141
isDarkMode = GutenbergUtils.isDarkMode(activity),
4242
htmlModeEnabled = isHtmlModeEnabled,
43-
canViewEditorOnboarding = canViewEditorOnboarding
43+
enableEditorOnboarding = enableEditorOnboarding
4444
)
4545
}

0 commit comments

Comments
 (0)