Skip to content

Commit 16caae0

Browse files
committed
chore(fc): reset launched beta flags on app launch
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent c258b30 commit 16caae0

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

flipchatApp/src/main/kotlin/xyz/flipchat/app/beta/BetaFlagController.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,13 @@ class BetaFlagController @Inject constructor(
7373
produceFile = { context.preferencesDataStoreFile("beta-flags") }
7474
)
7575

76+
init {
77+
// reset launched flags
78+
BetaFlag.entries
79+
.filter { it.launched }
80+
.onEach { reset(it) }
81+
}
82+
7683
override fun set(flag: BetaFlag, value: Boolean) {
7784
dataScope.launch(Dispatchers.IO) {
7885
betaFlags.edit { prefs ->
@@ -109,6 +116,12 @@ class BetaFlagController @Inject constructor(
109116
BetaFlag.entries.map { BetaFeature(it, it.default) }
110117
)
111118

119+
override fun reset(flag: BetaFlag) {
120+
dataScope.launch {
121+
betaFlags.edit { it.remove(flag.preferenceKey) }
122+
}
123+
}
124+
112125
override fun reset() {
113126
dataScope.launch {
114127
betaFlags.edit { it.clear() }

flipchatApp/src/main/kotlin/xyz/flipchat/app/beta/BetaFlags.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ interface BetaFlags {
88
suspend fun get(flag: BetaFlag): Boolean
99
fun observe(flag: BetaFlag): StateFlow<Boolean>
1010
fun observe(): StateFlow<List<BetaFeature>>
11+
fun reset(flag: BetaFlag)
1112
fun reset()
1213
}
1314

@@ -21,6 +22,7 @@ object NoOpBetaFlags: BetaFlags {
2122
override fun observe(): StateFlow<List<BetaFeature>> =
2223
MutableStateFlow(BetaFlag.entries.map { BetaFeature(it, it.default) })
2324

25+
override fun reset(flag: BetaFlag) = Unit
2426
override fun reset() = Unit
2527

2628
}

0 commit comments

Comments
 (0)