diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index d7670bebf..61cab7c75 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -284,7 +284,10 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { visibility = View.VISIBLE setContent { - FenixOverlay() + FenixOverlay( + browserStore = components.core.store, + inactiveTabsEnabled = settings().inactiveTabsAreEnabled, + ) } } else { setContent {} diff --git a/app/src/main/java/org/mozilla/fenix/debugsettings/navigation/DebugDrawerRoute.kt b/app/src/main/java/org/mozilla/fenix/debugsettings/navigation/DebugDrawerRoute.kt index 68570c54c..85d6376e5 100644 --- a/app/src/main/java/org/mozilla/fenix/debugsettings/navigation/DebugDrawerRoute.kt +++ b/app/src/main/java/org/mozilla/fenix/debugsettings/navigation/DebugDrawerRoute.kt @@ -5,12 +5,11 @@ package org.mozilla.fenix.debugsettings.navigation import androidx.annotation.StringRes -import androidx.compose.material.Text import androidx.compose.runtime.Composable +import mozilla.components.browser.state.store.BrowserStore import org.mozilla.fenix.R import org.mozilla.fenix.debugsettings.store.DebugDrawerAction import org.mozilla.fenix.debugsettings.store.DebugDrawerStore -import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.debugsettings.tabs.TabTools as TabToolsScreen /** @@ -35,9 +34,13 @@ enum class DebugDrawerRoute(val route: String, @StringRes val title: Int) { * Transforms the values of [DebugDrawerRoute] into a list of [DebugDrawerDestination]s. * * @param debugDrawerStore [DebugDrawerStore] used to dispatch navigation actions. + * @param browserStore [BrowserStore] used to add tabs in [TabToolsScreen]. + * @param inactiveTabsEnabled Whether the inactive tabs feature is enabled. */ fun generateDebugDrawerDestinations( debugDrawerStore: DebugDrawerStore, + browserStore: BrowserStore, + inactiveTabsEnabled: Boolean, ): List = DebugDrawerRoute.values().map { debugDrawerRoute -> val onClick: () -> Unit @@ -48,10 +51,9 @@ enum class DebugDrawerRoute(val route: String, @StringRes val title: Int) { debugDrawerStore.dispatch(DebugDrawerAction.NavigateTo.TabTools) } content = { - Text( - text = "Tab tools", - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.headline6, + TabToolsScreen( + store = browserStore, + inactiveTabsEnabled = inactiveTabsEnabled, ) } } diff --git a/app/src/main/java/org/mozilla/fenix/debugsettings/ui/FenixOverlay.kt b/app/src/main/java/org/mozilla/fenix/debugsettings/ui/FenixOverlay.kt index 2266867cd..c3992fda8 100644 --- a/app/src/main/java/org/mozilla/fenix/debugsettings/ui/FenixOverlay.kt +++ b/app/src/main/java/org/mozilla/fenix/debugsettings/ui/FenixOverlay.kt @@ -9,6 +9,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.navigation.compose.rememberNavController +import mozilla.components.browser.state.store.BrowserStore import mozilla.components.lib.state.ext.observeAsState import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.debugsettings.navigation.DebugDrawerRoute @@ -16,14 +17,21 @@ import org.mozilla.fenix.debugsettings.store.DebugDrawerAction import org.mozilla.fenix.debugsettings.store.DebugDrawerNavigationMiddleware import org.mozilla.fenix.debugsettings.store.DebugDrawerStore import org.mozilla.fenix.debugsettings.store.DrawerStatus +import org.mozilla.fenix.debugsettings.tabs.TabTools import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.theme.Theme /** * Overlay for presenting Fenix-wide debugging content. + * + * @param browserStore [BrowserStore] used to access tab data for [TabTools]. + * @param inactiveTabsEnabled Whether the inactive tabs feature is enabled. */ @Composable -fun FenixOverlay() { +fun FenixOverlay( + browserStore: BrowserStore, + inactiveTabsEnabled: Boolean, +) { val navController = rememberNavController() val coroutineScope = rememberCoroutineScope() val debugDrawerStore = remember { @@ -39,6 +47,8 @@ fun FenixOverlay() { val debugDrawerDestinations = remember { DebugDrawerRoute.generateDebugDrawerDestinations( debugDrawerStore = debugDrawerStore, + browserStore = browserStore, + inactiveTabsEnabled = inactiveTabsEnabled, ) } val drawerStatus by debugDrawerStore.observeAsState(initialValue = DrawerStatus.Closed) { state -> @@ -66,5 +76,8 @@ fun FenixOverlay() { @LightDarkPreview @Composable private fun FenixOverlayPreview() { - FenixOverlay() + FenixOverlay( + browserStore = BrowserStore(), + inactiveTabsEnabled = true, + ) }