Allow branch enrollment and unenrollment in Nimbus secret menu (#20050)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
upstream-sync
jhugman 3 years ago committed by GitHub
parent bc723e0a9b
commit 097fa68964
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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

@ -50,6 +50,11 @@ sealed class NimbusBranchesAction : Action {
* @param selectedBranch The selected [Branch] slug for a Nimbus experiment.
*/
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 -> {
state.copy(selectedBranch = action.selectedBranch)
}
is NimbusBranchesAction.UpdateUnselectBranch -> {
state.copy(selectedBranch = "")
}
}
}

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

Loading…
Cancel
Save