Skip to content

Commit fbb288b

Browse files
committed
Bug 2022077 - track debug drawer enabled state based on when the view is shown
1 parent a70a7b2 commit fbb288b

5 files changed

Lines changed: 49 additions & 2 deletions

File tree

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/debugsettings/store/DebugDrawerAction.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import org.mozilla.fenix.debugsettings.tabs.TabTools as TabToolsScreen
1919
*/
2020
sealed class DebugDrawerAction : Action {
2121

22+
object ViewAppeared : DebugDrawerAction()
23+
2224
/**
2325
* [DebugDrawerAction] fired when the user opens the drawer.
2426
*/

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/debugsettings/store/DebugDrawerNavigationMiddleware.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@ class DebugDrawerNavigationMiddleware(
6060
is DebugDrawerAction.NavigateTo.LlmDebugTools ->
6161
navController.navigate(route = DebugDrawerRoute.LlmTools.route)
6262
is DebugDrawerAction.OnBackPressed -> navController.popBackStack()
63-
is DebugDrawerAction.DrawerOpened, DebugDrawerAction.DrawerClosed -> Unit // no-op
63+
is DebugDrawerAction.DrawerOpened,
64+
DebugDrawerAction.DrawerClosed,
65+
DebugDrawerAction.ViewAppeared -> Unit // no-op
6466
}
6567
}
6668
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.mozilla.fenix.debugsettings.store
2+
3+
import mozilla.components.lib.state.Middleware
4+
import mozilla.components.lib.state.Store
5+
import org.mozilla.fenix.GleanMetrics.DebugDrawer
6+
7+
class DebugDrawerTelemetryMiddleware : Middleware<DebugDrawerState, DebugDrawerAction> {
8+
override fun invoke(
9+
store: Store<DebugDrawerState, DebugDrawerAction>,
10+
next: (DebugDrawerAction) -> Unit,
11+
action: DebugDrawerAction,
12+
) {
13+
next(action)
14+
15+
when (action) {
16+
DebugDrawerAction.ViewAppeared -> {
17+
DebugDrawer.debugDrawerEnabled.set(true)
18+
}
19+
DebugDrawerAction.DrawerClosed,
20+
DebugDrawerAction.DrawerOpened,
21+
DebugDrawerAction.NavigateTo.AddonsDebugTools,
22+
DebugDrawerAction.NavigateTo.Addresses,
23+
DebugDrawerAction.NavigateTo.Autofill,
24+
DebugDrawerAction.NavigateTo.CfrTools,
25+
DebugDrawerAction.NavigateTo.CrashDebugTools,
26+
DebugDrawerAction.NavigateTo.CreditCards,
27+
DebugDrawerAction.NavigateTo.GleanDebugTools,
28+
DebugDrawerAction.NavigateTo.Home,
29+
DebugDrawerAction.NavigateTo.IntegrityDebugTools,
30+
DebugDrawerAction.NavigateTo.LlmDebugTools,
31+
DebugDrawerAction.NavigateTo.Logins,
32+
DebugDrawerAction.NavigateTo.RegionDebugTools,
33+
DebugDrawerAction.NavigateTo.TabTools,
34+
DebugDrawerAction.OnBackPressed -> Unit
35+
}
36+
}
37+
}

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/debugsettings/ui/FenixOverlay.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import android.content.Intent
88
import android.os.StrictMode
99
import android.widget.Toast
1010
import androidx.compose.runtime.Composable
11+
import androidx.compose.runtime.LaunchedEffect
1112
import androidx.compose.runtime.collectAsState
1213
import androidx.compose.runtime.getValue
1314
import androidx.compose.runtime.remember
@@ -53,6 +54,7 @@ import org.mozilla.fenix.debugsettings.navigation.DebugDrawerRoute
5354
import org.mozilla.fenix.debugsettings.store.DebugDrawerAction
5455
import org.mozilla.fenix.debugsettings.store.DebugDrawerNavigationMiddleware
5556
import org.mozilla.fenix.debugsettings.store.DebugDrawerStore
57+
import org.mozilla.fenix.debugsettings.store.DebugDrawerTelemetryMiddleware
5658
import org.mozilla.fenix.debugsettings.store.DrawerStatus
5759
import org.mozilla.fenix.ext.components
5860
import org.mozilla.fenix.theme.DefaultThemeProvider
@@ -161,10 +163,15 @@ private fun FenixOverlay(
161163
navController = navController,
162164
scope = coroutineScope,
163165
),
166+
DebugDrawerTelemetryMiddleware(),
164167
),
165168
)
166169
}
167170

171+
LaunchedEffect(Unit) {
172+
debugDrawerStore.dispatch(DebugDrawerAction.ViewAppeared)
173+
}
174+
168175
val debugDrawerDestinations = remember {
169176
DebugDrawerRoute.generateDebugDrawerDestinations(
170177
debugDrawerStore = debugDrawerStore,

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,6 @@ class SecretSettingsFragment : PreferenceFragmentCompat() {
356356
onPreferenceChangeListener =
357357
Preference.OnPreferenceChangeListener { _, newValue ->
358358
debugSettingsRepository.setDebugDrawerEnabled(enabled = newValue as Boolean)
359-
DebugDrawerMetrics.debugDrawerEnabled.set(newValue)
360359
true
361360
}
362361
}

0 commit comments

Comments
 (0)