[fenix] Allow branch enrollment and unenrollment in Nimbus secret menu (https://github.com/mozilla-mobile/fenix/pull/20050)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
pull/600/head
jhugman 3 years ago committed by GitHub
parent 8e35c61327
commit cc44b33f9d

@ -14,24 +14,33 @@
} }
}, },
{ {
"slug": "a1", "slug": "fancy-settings",
"ratio": 0, "ratio": 0,
"feature": { "feature": {
"value": { "value": {
"settings-title": "settings_title", "settings-title": "Fancy Settings"
"settings-title-punctuation": "…"
}, },
"enabled": true, "enabled": true,
"featureId": "nimbus-validation" "featureId": "nimbus-validation"
} }
}, },
{ {
"slug": "a2", "slug": "smiley",
"ratio": 0, "ratio": 0,
"feature": { "feature": {
"value": { "value": {
"settings-title": "preferences_category_general", "settings-title-punctuation": "\uD83D\uDE03"
"settings-title-punctuation": "!" },
"enabled": true,
"featureId": "nimbus-validation"
}
},
{
"slug": "bundled-text",
"ratio": 0,
"feature": {
"value": {
"settings-title": "preferences_category_general"
}, },
"enabled": true, "enabled": true,
"featureId": "nimbus-validation" "featureId": "nimbus-validation"
@ -78,11 +87,11 @@
} }
}, },
{ {
"slug": "treatment", "slug": "edit-menu-icon",
"ratio": 0, "ratio": 0,
"feature": { "feature": {
"value": { "value": {
"settings-title": "Fancy Settings", "settings-title": "preferences_category_general",
"settings-icon": "ic_edit" "settings-icon": "ic_edit"
}, },
"enabled": true, "enabled": true,

@ -50,6 +50,11 @@ sealed class NimbusBranchesAction : Action {
* @param selectedBranch The selected [Branch] slug for a Nimbus experiment. * @param selectedBranch The selected [Branch] slug for a Nimbus experiment.
*/ */
data class UpdateSelectedBranch(val selectedBranch: String) : NimbusBranchesAction() data class UpdateSelectedBranch(val selectedBranch: String) : NimbusBranchesAction()
/**
* Opts out of the branches.
*/
object UpdateUnselectBranch : NimbusBranchesAction()
} }
/** /**
@ -75,5 +80,8 @@ private fun nimbusBranchesFragmentStateReducer(
is NimbusBranchesAction.UpdateSelectedBranch -> { is NimbusBranchesAction.UpdateSelectedBranch -> {
state.copy(selectedBranch = action.selectedBranch) state.copy(selectedBranch = action.selectedBranch)
} }
is NimbusBranchesAction.UpdateUnselectBranch -> {
state.copy(selectedBranch = "")
}
} }
} }

@ -26,7 +26,14 @@ class NimbusBranchesController(
) : NimbusBranchesAdapterDelegate { ) : NimbusBranchesAdapterDelegate {
override fun onBranchItemClicked(branch: Branch) { override fun onBranchItemClicked(branch: Branch) {
experiments.optInWithBranch(experimentId, branch.slug) nimbusBranchesStore.dispatch(
nimbusBranchesStore.dispatch(NimbusBranchesAction.UpdateSelectedBranch(branch.slug)) if (experiments.getExperimentBranch(experimentId) != branch.slug) {
experiments.optInWithBranch(experimentId, branch.slug)
NimbusBranchesAction.UpdateSelectedBranch(branch.slug)
} else {
experiments.optOut(experimentId)
NimbusBranchesAction.UpdateUnselectBranch
}
)
} }
} }

Loading…
Cancel
Save