diff --git a/WordPress/build.gradle b/WordPress/build.gradle index e9817215b70a..86605cf29f22 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -76,6 +76,7 @@ android { buildConfigField "boolean", "ENABLE_FEATURE_CONFIGURATION", "true" buildConfigField "boolean", "MY_SITE_IMPROVEMENTS", "false" buildConfigField "boolean", "SEEN_UNSEEN_WITH_COUNTER", "false" + buildConfigField "boolean", "CONTACT_INFO_BLOCK_AVAILABLE", "true" buildConfigField "boolean", "LIKES_ENHANCEMENTS", "false" } @@ -99,6 +100,7 @@ android { buildConfigField "boolean", "ME_ACTIVITY_AVAILABLE", "false" buildConfigField "long", "REMOTE_CONFIG_FETCH_INTERVAL", "3600" buildConfigField "boolean", "ENABLE_FEATURE_CONFIGURATION", "false" + buildConfigField "boolean", "CONTACT_INFO_BLOCK_AVAILABLE", "false" } zalpha { // alpha version - enable experimental features 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 166a5114f72d..e40326280d13 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 @@ -209,6 +209,7 @@ import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper; import org.wordpress.android.util.analytics.AnalyticsUtils; import org.wordpress.android.util.analytics.AnalyticsUtils.BlockEditorEnabledSource; +import org.wordpress.android.util.config.ContactInfoBlockFeatureConfig; import org.wordpress.android.util.helpers.MediaFile; import org.wordpress.android.util.helpers.MediaGallery; import org.wordpress.android.util.image.ImageManager; @@ -399,6 +400,7 @@ enum RestartEditorOptions { @Inject LoadStoryFromStoriesPrefsUseCase mLoadStoryFromStoriesPrefsUseCase; @Inject StoriesPrefs mStoriesPrefs; @Inject StoriesEventListener mStoriesEventListener; + @Inject ContactInfoBlockFeatureConfig mContactInfoBlockFeatureConfig; private StorePostViewModel mViewModel; @@ -2270,6 +2272,7 @@ private GutenbergPropsBuilder getGutenbergPropsBuilder() { boolean isFreeWPCom = mSite.isWPCom() && SiteUtils.onFreePlan(mSite); return new GutenbergPropsBuilder( + mContactInfoBlockFeatureConfig.isEnabled() && SiteUtils.supportsContactInfoFeature(mSite), SiteUtils.supportsStoriesFeature(mSite), mSite.isUsingWpComRestApi(), enableXPosts, diff --git a/WordPress/src/main/java/org/wordpress/android/util/SiteUtils.java b/WordPress/src/main/java/org/wordpress/android/util/SiteUtils.java index 83d560928fae..4b4968258983 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/SiteUtils.java +++ b/WordPress/src/main/java/org/wordpress/android/util/SiteUtils.java @@ -33,6 +33,7 @@ public class SiteUtils { public static final String AZTEC_EDITOR_NAME = "aztec"; public static final String WP_STORIES_CREATOR_NAME = "wp_stories_creator"; public static final String WP_STORIES_JETPACK_VERSION = "9.1"; + public static final String WP_CONTACT_INFO_JETPACK_VERSION = "8.5"; private static final int GB_ROLLOUT_PERCENTAGE_PHASE_1 = 100; private static final int GB_ROLLOUT_PERCENTAGE_PHASE_2 = 100; @@ -345,6 +346,10 @@ public static boolean supportsStoriesFeature(SiteModel site) { return site != null && (site.isWPCom() || checkMinimalJetpackVersion(site, WP_STORIES_JETPACK_VERSION)); } + public static boolean supportsContactInfoFeature(SiteModel site) { + return site != null & (site.isWPCom() || checkMinimalJetpackVersion(site, WP_CONTACT_INFO_JETPACK_VERSION)); + } + public static boolean isNonAtomicBusinessPlanSite(@Nullable SiteModel site) { return site != null && !site.isAutomatedTransfer() && SiteUtils.hasNonJetpackBusinessPlan(site); } diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/ContactInfoBlockFeatureConfig.kt b/WordPress/src/main/java/org/wordpress/android/util/config/ContactInfoBlockFeatureConfig.kt new file mode 100644 index 000000000000..c508dc9dd744 --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/util/config/ContactInfoBlockFeatureConfig.kt @@ -0,0 +1,9 @@ +package org.wordpress.android.util.config + +import org.wordpress.android.BuildConfig +import org.wordpress.android.annotation.FeatureInDevelopment +import javax.inject.Inject + +@FeatureInDevelopment +class ContactInfoBlockFeatureConfig +@Inject constructor(appConfig: AppConfig) : FeatureConfig(appConfig, BuildConfig.CONTACT_INFO_BLOCK_AVAILABLE) diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergPropsBuilder.kt b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergPropsBuilder.kt index ef8084678091..86587f253228 100644 --- a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergPropsBuilder.kt +++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergPropsBuilder.kt @@ -8,6 +8,7 @@ import org.wordpress.mobile.WPAndroidGlue.GutenbergProps @Parcelize data class GutenbergPropsBuilder( + private val enableContactInfoBlock: Boolean, private val enableMediaFilesCollectionBlocks: Boolean, private val enableMentions: Boolean, private val enableXPosts: Boolean, @@ -19,7 +20,7 @@ data class GutenbergPropsBuilder( private val editorTheme: Bundle? ) : Parcelable { fun build(activity: Activity, isHtmlModeEnabled: Boolean) = GutenbergProps( - enableContactInfoBlock = false, + enableContactInfoBlock = enableContactInfoBlock, enableMediaFilesCollectionBlocks = enableMediaFilesCollectionBlocks, enableMentions = enableMentions, enableXPosts = enableXPosts,