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

Commit aae077e5 authored by Fabián Kozynski's avatar Fabián Kozynski
Browse files

[Dual Shade] Move build number to bottom of QS overlay

Test: manual, build number has moved and is not visible when it
shouldn't (for example, secondary user).
Test: manual, tile text feedback
Flag: com.android.systemui.scene_container
Fixes: 440365172

Change-Id: I22119faef23b85d968631807afff5fcd27870669
parent 61ed3514
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -67,6 +67,8 @@ import com.android.systemui.brightness.ui.compose.BrightnessSliderContainer
import com.android.systemui.brightness.ui.compose.ContainerColors
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.development.ui.compose.BuildNumber
import com.android.systemui.development.ui.viewmodel.BuildNumberViewModel
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.media.remedia.ui.compose.Media
import com.android.systemui.media.remedia.ui.compose.MediaPresentationStyle
@@ -252,6 +254,7 @@ private fun ContentScope.QuickSettingsContainer(
                QuickSettingsLayout(
                    qsContainerViewModel = containerViewModel,
                    toolbarViewModelFactory = contentViewModel.toolbarViewModelFactory,
                    buildNumberViewModelFactory = contentViewModel.buildNumberViewModelFactory,
                    isTransparencyEnabled = contentViewModel.isTransparencyEnabled,
                    volumeSliderViewModel = contentViewModel.volumeSliderViewModel,
                    audioDetailsViewModelFactory = contentViewModel.audioDetailsViewModelFactory,
@@ -267,6 +270,7 @@ private fun ContentScope.QuickSettingsContainer(
private fun ContentScope.QuickSettingsLayout(
    qsContainerViewModel: QuickSettingsContainerViewModel,
    toolbarViewModelFactory: ToolbarViewModel.Factory,
    buildNumberViewModelFactory: BuildNumberViewModel.Factory,
    isTransparencyEnabled: Boolean,
    volumeSliderViewModel: AudioStreamSliderViewModel?,
    audioDetailsViewModelFactory: AudioDetailsViewModel.Factory,
@@ -390,6 +394,21 @@ private fun ContentScope.QuickSettingsLayout(
                modifier = Modifier.fillMaxWidth(),
            )

            val buildNumberViewModel =
                rememberViewModel("QuickSettingsShadeOverlay.BuildNumber") {
                    buildNumberViewModelFactory.create()
                }

            if (buildNumberViewModel.buildNumber != null) {
                VerticalSeparator(QuickSettingsShade.Dimensions.ShortPadding)
                BuildNumber(
                    viewModel = buildNumberViewModel,
                    modifier =
                        Modifier.align(Alignment.Start)
                            .padding(start = QuickSettingsShade.Dimensions.Padding),
                )
            }

            VerticalSeparator(QuickSettingsShade.Dimensions.Padding)
        }
    }
+9 −0
Original line number Diff line number Diff line
@@ -48,6 +48,15 @@ fun BuildNumber(
) {
    val viewModel = rememberViewModel(traceName = "BuildNumber") { viewModelFactory.create() }

    BuildNumber(viewModel, modifier, textColor)
}

@Composable
fun BuildNumber(
    viewModel: BuildNumberViewModel,
    modifier: Modifier,
    textColor: Color = MaterialTheme.colorScheme.onSurface,
) {
    val buildNumber = viewModel.buildNumber

    if (buildNumber != null) {
+10 −12
Original line number Diff line number Diff line
@@ -18,9 +18,13 @@ package com.android.systemui.qs.panels.ui.compose.toolbar

import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.AnimatedContentScope
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.ExperimentalSharedTransitionApi
import androidx.compose.animation.SharedTransitionLayout
import androidx.compose.animation.SharedTransitionScope
import androidx.compose.animation.core.tween
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
@@ -44,8 +48,6 @@ import com.android.compose.theme.LocalAndroidColorScheme
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.common.ui.compose.load
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.development.ui.compose.BuildNumber
import com.android.systemui.development.ui.viewmodel.BuildNumberViewModel
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsButtonViewModel
import com.android.systemui.qs.panels.ui.compose.toolbar.Toolbar.TransitionKeys.SecurityInfoKey
@@ -131,7 +133,6 @@ private fun SharedTransitionScope.StandardToolbarLayout(
        // Text feedback chip / build number
        ToolbarTextFeedback(
            viewModelFactory = viewModel.textFeedbackContentViewModelFactory,
            buildNumberViewModelFactory = viewModel.buildNumberViewModelFactory,
            modifier = Modifier.weight(1f).align(Alignment.CenterVertically),
        )
    }
@@ -186,7 +187,6 @@ private fun ToolbarIcon(icon: Icon, modifier: Modifier = Modifier, tint: Color)
@Composable
private fun ToolbarTextFeedback(
    viewModelFactory: TextFeedbackContentViewModel.Factory,
    buildNumberViewModelFactory: BuildNumberViewModel.Factory,
    modifier: Modifier,
) {
    Box(modifier = modifier) {
@@ -197,16 +197,14 @@ private fun ToolbarTextFeedback(
            }
        val hasTextFeedback = viewModel.textFeedback !is TextFeedbackViewModel.NoFeedback

        AnimatedContent(
            targetState = hasTextFeedback,
        AnimatedVisibility(
            visible = hasTextFeedback,
            modifier = Modifier.align(Alignment.Center),
            label = "Toolbar.ToolbarTextFeedback",
        ) { showTextFeedback ->
            if (showTextFeedback) {
            enter = fadeIn(tween(durationMillis = 200)),
            exit = fadeOut(tween(durationMillis = 200)),
        ) {
            TextFeedback(model = viewModel.textFeedback)
            } else {
                BuildNumber(viewModelFactory = buildNumberViewModelFactory)
            }
        }
    }
}
+0 −2
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import com.android.systemui.animation.Expandable
import com.android.systemui.classifier.domain.interactor.FalsingInteractor
import com.android.systemui.classifier.domain.interactor.runIfNotFalseTap
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.development.ui.viewmodel.BuildNumberViewModel
import com.android.systemui.globalactions.GlobalActionsDialogLite
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.lifecycle.Hydrator
@@ -56,7 +55,6 @@ class ToolbarViewModel
@AssistedInject
constructor(
    val editModeButtonViewModelFactory: EditModeButtonViewModel.Factory,
    val buildNumberViewModelFactory: BuildNumberViewModel.Factory,
    val textFeedbackContentViewModelFactory: TextFeedbackContentViewModel.Factory,
    private val footerActionsInteractor: FooterActionsInteractor,
    private val globalActionsDialogLiteProvider: Provider<GlobalActionsDialogLite>,
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.settingslib.volume.shared.model.AudioStream
import com.android.systemui.Flags
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.desktop.domain.interactor.DesktopInteractor
import com.android.systemui.development.ui.viewmodel.BuildNumberViewModel
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.lifecycle.Hydrator
import com.android.systemui.qs.flags.QsDetailedView
@@ -69,6 +70,7 @@ constructor(
    val desktopInteractor: DesktopInteractor,
    audioStreamSliderViewModelFactory: AudioStreamSliderViewModel.Factory,
    val audioDetailsViewModelFactory: AudioDetailsViewModel.Factory,
    val buildNumberViewModelFactory: BuildNumberViewModel.Factory,
    @ShadeDisplayAware shadeContext: Context,
    val shadeInteractor: ShadeInteractor,
    val shadeModeInteractor: ShadeModeInteractor,
Loading