Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aa0d0f22 authored by Olivier St-Onge's avatar Olivier St-Onge
Browse files

Enable the QS edit mode tooltip for dual shade

Flag: com.android.systemui.qs_edit_mode_tooltip
Bug: 403596182
Test: manually - tested in dual shade
Change-Id: I95e9725f44a0c05fff3bf299eda9ed36320d613f
parent cd66423b
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -300,6 +300,7 @@ private fun ContentScope.QuickSettingsLayout(
            modifier =
            modifier =
                Modifier.fillMaxWidth().requiredHeight(QuickSettingsShade.Dimensions.ToolbarHeight),
                Modifier.fillMaxWidth().requiredHeight(QuickSettingsShade.Dimensions.ToolbarHeight),
            viewModel = toolbarViewModel,
            viewModel = toolbarViewModel,
            isFullyVisible = { layoutState.isIdle(contentKey) },
        )
        )


        VerticalSeparator(QuickSettingsShade.Dimensions.ShortPadding)
        VerticalSeparator(QuickSettingsShade.Dimensions.ShortPadding)
+1 −7
Original line number Original line Diff line number Diff line
@@ -40,14 +40,12 @@ import androidx.compose.ui.res.integerResource
import androidx.compose.ui.unit.Velocity
import androidx.compose.ui.unit.Velocity
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.dp
import com.android.compose.animation.scene.ContentScope
import com.android.compose.animation.scene.ContentScope
import com.android.compose.animation.scene.content.state.TransitionState
import com.android.compose.modifiers.padding
import com.android.compose.modifiers.padding
import com.android.systemui.common.ui.compose.PagerDots
import com.android.systemui.common.ui.compose.PagerDots
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.development.ui.compose.BuildNumber
import com.android.systemui.development.ui.compose.BuildNumber
import com.android.systemui.development.ui.viewmodel.BuildNumberViewModel
import com.android.systemui.development.ui.viewmodel.BuildNumberViewModel
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.qs.composefragment.SceneKeys
import com.android.systemui.qs.panels.dagger.PaginatedBaseLayoutType
import com.android.systemui.qs.panels.dagger.PaginatedBaseLayoutType
import com.android.systemui.qs.panels.ui.compose.Dimensions.FooterHeight
import com.android.systemui.qs.panels.ui.compose.Dimensions.FooterHeight
import com.android.systemui.qs.panels.ui.compose.Dimensions.InterPageSpacing
import com.android.systemui.qs.panels.ui.compose.Dimensions.InterPageSpacing
@@ -155,11 +153,7 @@ constructor(
                pagerState = pagerState,
                pagerState = pagerState,
                showArrowsInPager = viewModel.showArrowsInPagerDots,
                showArrowsInPager = viewModel.showArrowsInPagerDots,
                editButtonViewModelFactory = viewModel.editModeButtonViewModelFactory,
                editButtonViewModelFactory = viewModel.editModeButtonViewModelFactory,
                isVisible = {
                isVisible = { listening() && layoutState.isIdle() },
                    with(layoutState.transitionState) {
                        currentScene == SceneKeys.QuickSettings && this is TransitionState.Idle
                    }
                },
            )
            )
        }
        }
    }
    }
+1 −2
Original line number Original line Diff line number Diff line
@@ -78,7 +78,6 @@ fun EditModeButton(
    viewModel: EditModeButtonViewModel,
    viewModel: EditModeButtonViewModel,
    modifier: Modifier = Modifier,
    modifier: Modifier = Modifier,
    isVisible: Boolean = true,
    isVisible: Boolean = true,
    tooltipEnabled: Boolean = true,
) {
) {
    if (!viewModel.isEditButtonVisible) {
    if (!viewModel.isEditButtonVisible) {
        return
        return
@@ -87,7 +86,7 @@ fun EditModeButton(
        value = LocalContentColor provides MaterialTheme.colorScheme.onSurface
        value = LocalContentColor provides MaterialTheme.colorScheme.onSurface
    ) {
    ) {
        val tooltipState = rememberTooltipState(isPersistent = true)
        val tooltipState = rememberTooltipState(isPersistent = true)
        val showTooltip = tooltipEnabled && isVisible && viewModel.showTooltip
        val showTooltip = isVisible && viewModel.showTooltip
        LaunchedEffect(showTooltip) { if (showTooltip) tooltipState.show() }
        LaunchedEffect(showTooltip) { if (showTooltip) tooltipState.show() }


        // Make sure to dismiss the tooltip if it's still visible when it shouldn't be due to always
        // Make sure to dismiss the tooltip if it's still visible when it shouldn't be due to always
+12 −4
Original line number Original line Diff line number Diff line
@@ -56,7 +56,11 @@ import com.android.systemui.qs.ui.compose.borderOnFocus


@OptIn(ExperimentalSharedTransitionApi::class)
@OptIn(ExperimentalSharedTransitionApi::class)
@Composable
@Composable
fun Toolbar(viewModel: ToolbarViewModel, modifier: Modifier = Modifier) {
fun Toolbar(
    viewModel: ToolbarViewModel,
    isFullyVisible: () -> Boolean,
    modifier: Modifier = Modifier,
) {
    Row(modifier = modifier, verticalAlignment = Alignment.CenterVertically) {
    Row(modifier = modifier, verticalAlignment = Alignment.CenterVertically) {
        val securityInfoCollapsed = viewModel.securityInfoShowCollapsed
        val securityInfoCollapsed = viewModel.securityInfoShowCollapsed


@@ -67,7 +71,11 @@ fun Toolbar(viewModel: ToolbarViewModel, modifier: Modifier = Modifier) {
                label = "Toolbar.CollapsedSecurityInfo",
                label = "Toolbar.CollapsedSecurityInfo",
            ) { securityInfoCollapsed ->
            ) { securityInfoCollapsed ->
                if (securityInfoCollapsed) {
                if (securityInfoCollapsed) {
                    StandardToolbarLayout(animatedContentScope = this@AnimatedContent, viewModel)
                    StandardToolbarLayout(
                        animatedContentScope = this@AnimatedContent,
                        viewModel,
                        isFullyVisible,
                    )
                } else {
                } else {
                    SecurityInfo(
                    SecurityInfo(
                        viewModel = viewModel.securityInfoViewModel,
                        viewModel = viewModel.securityInfoViewModel,
@@ -94,6 +102,7 @@ fun Toolbar(viewModel: ToolbarViewModel, modifier: Modifier = Modifier) {
private fun SharedTransitionScope.StandardToolbarLayout(
private fun SharedTransitionScope.StandardToolbarLayout(
    animatedContentScope: AnimatedContentScope,
    animatedContentScope: AnimatedContentScope,
    viewModel: ToolbarViewModel,
    viewModel: ToolbarViewModel,
    isFullyVisible: () -> Boolean,
    modifier: Modifier = Modifier,
    modifier: Modifier = Modifier,
) {
) {
    Row(modifier) {
    Row(modifier) {
@@ -106,10 +115,9 @@ private fun SharedTransitionScope.StandardToolbarLayout(
        )
        )


        // Edit mode button
        // Edit mode button
        // TODO(b/410843063): Support the tooltip in DualShade
        val editModeButtonViewModel =
        val editModeButtonViewModel =
            rememberViewModel("Toolbar") { viewModel.editModeButtonViewModelFactory.create() }
            rememberViewModel("Toolbar") { viewModel.editModeButtonViewModelFactory.create() }
        EditModeButton(editModeButtonViewModel, tooltipEnabled = false)
        EditModeButton(editModeButtonViewModel, isVisible = isFullyVisible())


        // Settings button
        // Settings button
        IconButton(
        IconButton(