diff --git a/.experimenter.yaml b/.experimenter.yaml
index e8d0a792f2..9b3a557938 100644
--- a/.experimenter.yaml
+++ b/.experimenter.yaml
@@ -55,6 +55,14 @@ nimbus-validation:
settings-title:
type: string
description: The title of displayed in the Settings screen and app menu.
+pocket-sponsored-stories:
+ description: A feature showing sponsored stories in between the other Pocket recommended stories on homescreen.
+ hasExposure: true
+ exposureDescription: ""
+ variables:
+ enabled:
+ type: boolean
+ description: "If true, the Pocket stories shown on homescreen should contain sponsored stories also."
search-term-groups:
description: A feature allowing the grouping of URLs around the search term that it came from.
hasExposure: true
diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
index 2f20bd9d35..af73193238 100644
--- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
+++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
@@ -295,7 +295,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
if (settings().showPocketRecommendationsFeature) {
components.core.pocketStoriesService.startPeriodicStoriesRefresh()
}
- if (FeatureFlags.isPocketSponsoredStoriesFeatureEnabled(this@HomeActivity)) {
+ if (settings().showPocketSponsoredStories) {
components.core.pocketStoriesService.startPeriodicSponsoredStoriesRefresh()
}
}
diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
index e6f29481e9..73ae079350 100644
--- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
@@ -229,7 +229,7 @@ class HomeFragment : Fragment() {
components.appStore.dispatch(AppAction.PocketStoriesCategoriesChange(categories))
- if (FeatureFlags.isPocketSponsoredStoriesFeatureEnabled(requireContext())) {
+ if (requireContext().settings().showPocketSponsoredStories) {
components.appStore.dispatch(
AppAction.PocketSponsoredStoriesChange(
components.core.pocketStoriesService.getSponsoredStories()
diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
index d22aa1f5e9..96e6924a04 100644
--- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
+++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
@@ -1275,6 +1275,15 @@ class Settings(private val appContext: Context) : PreferencesHolder {
default = { homescreenSections[HomeScreenSection.POCKET] == true },
)
+ /**
+ * Indicates if the Pocket recommendations homescreen section should also show sponsored stories.
+ */
+ val showPocketSponsoredStories by lazyFeatureFlagPreference(
+ key = appContext.getPreferenceKey(R.string.pref_key_pocket_sponsored_stories),
+ default = { FxNimbus.features.pocketSponsoredStories.value(appContext).enabled },
+ featureFlag = FeatureFlags.isPocketSponsoredStoriesFeatureEnabled(appContext)
+ )
+
/**
* Get the profile id to use in the sponsored stories communications with the Pocket endpoint.
*/
diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml
index fae4725c5d..1ad194997b 100644
--- a/app/src/main/res/values/preference_keys.xml
+++ b/app/src/main/res/values/preference_keys.xml
@@ -281,6 +281,7 @@
pref_key_pocket_homescreen_recommendations
+ pref_key_pocket_sponsored_stories
pref_key_pocket_sponsored_stories_profile
diff --git a/nimbus.fml.yaml b/nimbus.fml.yaml
index af300128a7..6f6e483995 100644
--- a/nimbus.fml.yaml
+++ b/nimbus.fml.yaml
@@ -190,6 +190,18 @@ features:
value:
enabled: false
+ pocket-sponsored-stories:
+ description: A feature showing sponsored stories in between the other Pocket recommended stories on homescreen.
+ variables:
+ enabled:
+ description: If true, the Pocket stories shown on homescreen should contain sponsored stories also.
+ type: Boolean
+ default: false
+ defaults:
+ - channel: developer
+ value:
+ enabled: true
+
types:
objects:
MessageData: