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

Commit f55c3446 authored by Andrew Xu's avatar Andrew Xu
Browse files

Revert "[Flexiglass] Use BC25 brightness bar in the QS scene"

This reverts commit 8b8f766e.

This revert CL keeps the previously added Kosmos classes because
there are merge conflicts on these files. They are likely to have
been used.

Reason for revert: Broke bunch of post submit tests, such as
healthiness tests, such as b/422174095 and scenario test such as
b/422128854

Bug: 420960164
Change-Id: I9ba12beeca4c68ceb6f22b221ded06d3b89f9e15
parent 8a8e85c4
Loading
Loading
Loading
Loading
+48 −53
Original line number Diff line number Diff line
@@ -56,7 +56,6 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.CompositingStrategy
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.layout.Layout
@@ -78,8 +77,6 @@ import com.android.compose.animation.scene.content.state.TransitionState
import com.android.compose.modifiers.thenIf
import com.android.compose.windowsizeclass.LocalWindowSizeClass
import com.android.internal.jank.InteractionJankMonitor
import com.android.systemui.brightness.ui.compose.BrightnessSliderContainer
import com.android.systemui.brightness.ui.compose.ContainerColors
import com.android.systemui.common.ui.compose.windowinsets.CutoutLocation
import com.android.systemui.common.ui.compose.windowinsets.LocalDisplayCutout
import com.android.systemui.compose.modifiers.sysuiResTag
@@ -97,7 +94,6 @@ import com.android.systemui.notifications.ui.composable.HeadsUpNotificationSpace
import com.android.systemui.notifications.ui.composable.NotificationScrollingStack
import com.android.systemui.notifications.ui.composable.NotificationStackCutoffGuideline
import com.android.systemui.qs.footer.ui.compose.FooterActionsWithAnimatedVisibility
import com.android.systemui.qs.shared.ui.ElementKeys
import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaLandscapeTopOffset
import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaOffset.InQS
import com.android.systemui.qs.ui.viewmodel.QuickSettingsSceneContentViewModel
@@ -150,6 +146,10 @@ constructor(
    override fun ContentScope.Content(modifier: Modifier) {
        val viewModel =
            rememberViewModel("QuickSettingsScene-viewModel") { contentViewModelFactory.create() }
        val headerViewModel =
            rememberViewModel("QuickSettingsScene-headerViewModel") {
                viewModel.shadeHeaderViewModelFactory.create()
            }
        val brightnessMirrorViewModel =
            rememberViewModel("QuickSettingsScene-brightnessMirrorViewModel") {
                viewModel.brightnessMirrorViewModelFactory.create()
@@ -161,7 +161,7 @@ constructor(
        QuickSettingsScene(
            notificationStackScrollView = notificationStackScrollView.get(),
            viewModel = viewModel,
            headerViewModel = viewModel.qsContainerViewModel.shadeHeaderViewModel,
            headerViewModel = headerViewModel,
            brightnessMirrorViewModel = brightnessMirrorViewModel,
            notificationsPlaceholderViewModel = notificationsPlaceholderViewModel,
            mediaCarouselController = mediaCarouselController,
@@ -208,6 +208,18 @@ private fun ContentScope.QuickSettingsScene(
    val shadeHorizontalPadding =
        dimensionResource(id = R.dimen.notification_panel_margin_horizontal)

    Box(modifier = Modifier.fillMaxSize()) {
        BrightnessMirror(
            viewModel = brightnessMirrorViewModel,
            qsSceneAdapter = viewModel.qsSceneAdapter,
            modifier =
                Modifier.thenIf(cutoutLocation != CutoutLocation.CENTER) {
                        Modifier.displayCutoutPadding()
                    }
                    .align(Alignment.TopCenter),
        )
    }

    val shouldPunchHoleBehindScrim =
        layoutState.isTransitioningBetween(Scenes.Gone, Scenes.QuickSettings) ||
            layoutState.isTransitioningBetween(Scenes.Lockscreen, Scenes.QuickSettings)
@@ -354,19 +366,6 @@ private fun ContentScope.QuickSettingsScene(
                            CollapsedShadeHeader(viewModel = headerViewModel, isSplitShade = false)
                    }
                    Spacer(modifier = Modifier.height(16.dp))
                    Column(modifier = Modifier.element(ElementKeys.QuickSettingsContent)) {
                        BrightnessSliderContainer(
                            viewModel.qsContainerViewModel.brightnessSliderViewModel,
                            containerColors =
                                ContainerColors(
                                    Color.Transparent,
                                    ContainerColors.defaultContainerColor,
                                ),
                            modifier = Modifier.padding(
                                horizontal =
                                    dimensionResource(id = R.dimen.qs_horizontal_margin)
                            )
                        )
                    // This view has its own horizontal padding
                    val content: @Composable () -> Unit = {
                        QuickSettings(
@@ -397,17 +396,13 @@ private fun ContentScope.QuickSettingsScene(
                    }
                    Column(modifier = Modifier.padding(horizontal = shadeHorizontalPadding)) {
                        if (mediaInRow) {
                                Layout(
                                    content = content,
                                    measurePolicy = landscapeQsMediaMeasurePolicy
                                )
                            Layout(content = content, measurePolicy = landscapeQsMediaMeasurePolicy)
                        } else {
                            content()
                        }
                    }
                }
            }
            }

            FooterActionsWithAnimatedVisibility(
                viewModel = footerActionsViewModel,
+0 −1
Original line number Diff line number Diff line
@@ -77,7 +77,6 @@ class QuickSettingsSceneContentViewModelTest : SysuiTestCase() {
                    brightnessMirrorViewModelFactory = brightnessMirrorViewModelFactory,
                    shadeHeaderViewModelFactory = shadeHeaderViewModelFactory,
                    qsSceneAdapter = fakeQsSceneAdapter,
                    qsContainerViewModelFactory = kosmos.quickSettingsContainerViewModelFactory,
                    footerActionsViewModelFactory = footerActionsViewModelFactory,
                    footerActionsController = footerActionsController,
                    mediaCarouselInteractor = mediaCarouselInteractor,
+0 −4
Original line number Diff line number Diff line
@@ -52,7 +52,6 @@ constructor(
    val brightnessMirrorViewModelFactory: BrightnessMirrorViewModel.Factory,
    val shadeHeaderViewModelFactory: ShadeHeaderViewModel.Factory,
    val qsSceneAdapter: QSSceneAdapter,
    qsContainerViewModelFactory: QuickSettingsContainerViewModel.Factory,
    private val footerActionsViewModelFactory: FooterActionsViewModel.Factory,
    private val footerActionsController: FooterActionsController,
    val mediaCarouselInteractor: MediaCarouselInteractor,
@@ -60,7 +59,6 @@ constructor(
    private val sceneInteractor: SceneInteractor,
    @Main private val mainDispatcher: CoroutineDispatcher,
) : ExclusiveActivatable() {
    val qsContainerViewModel = qsContainerViewModelFactory.create(supportsBrightnessMirroring = true)

    private val hydrator = Hydrator("QuickSettingsSceneContentViewModel.hydrator")

@@ -83,8 +81,6 @@ constructor(
        coroutineScope {
            launch { hydrator.activate() }

            launch { qsContainerViewModel.activate() }

            launch(context = mainDispatcher) {
                shadeModeInteractor.shadeMode.collect { shadeMode ->
                    if (shadeMode is ShadeMode.Split) {
+0 −99
Original line number Diff line number Diff line
/*
 * Copyright (C) 2025 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.systemui.qs.ui.composable

import android.testing.TestableLooper
import androidx.compose.runtime.Composable
import androidx.compose.runtime.saveable.Saver
import androidx.compose.ui.Modifier
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithTag
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.compose.animation.scene.TestContentScope
import com.android.compose.theme.PlatformTheme
import com.android.systemui.SysuiTestCase
import com.android.systemui.compose.modifiers.resIdToTestTag
import com.android.systemui.flags.EnableSceneContainer
import com.android.systemui.jank.interactionJankMonitor
import com.android.systemui.media.controls.ui.controller.mediaCarouselController
import com.android.systemui.media.controls.ui.view.qsMediaHost
import com.android.systemui.qs.ui.viewmodel.quickSettingsSceneContentViewModelFactory
import com.android.systemui.qs.ui.viewmodel.quickSettingsUserActionsViewModelFactory
import com.android.systemui.scene.session.shared.SessionStorage
import com.android.systemui.scene.session.ui.composable.SaveableSession
import com.android.systemui.scene.session.ui.composable.Session
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.statusbar.notification.stack.ui.view.NotificationScrollView
import com.android.systemui.statusbar.notification.stack.ui.viewmodel.notificationsPlaceholderViewModelFactory
import com.android.systemui.testKosmos
import org.junit.Ignore
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.mock

@SmallTest
@RunWith(AndroidJUnit4::class)
@TestableLooper.RunWithLooper
@EnableSceneContainer
class QuickSettingsSceneTest : SysuiTestCase() {
    @get:Rule
    val composeTestRule = createComposeRule()

    private val kosmos = testKosmos()

    @Ignore
    @Test
    fun testViewHierarchy() {
        val shadeSession = object : SaveableSession, Session by Session(SessionStorage()) {
            @Composable
            override fun <T : Any> rememberSaveableSession(
                vararg inputs: Any?,
                saver: Saver<T, out Any>,
                key: String?,
                init: () -> T
            ): T = rememberSession(key, inputs = inputs, init = init)
        }

        val scene = QuickSettingsScene(
            shadeSession = shadeSession,
            notificationStackScrollView = {
                mock(NotificationScrollView::class.java)
            },
            notificationsPlaceholderViewModelFactory = kosmos.notificationsPlaceholderViewModelFactory,
            actionsViewModelFactory = kosmos.quickSettingsUserActionsViewModelFactory,
            contentViewModelFactory = kosmos.quickSettingsSceneContentViewModelFactory,
            mediaCarouselController = kosmos.mediaCarouselController,
            mediaHost = kosmos.qsMediaHost,
            jankMonitor = kosmos.interactionJankMonitor,
        )

        composeTestRule.setContent {
            PlatformTheme {
                with(scene) {
                    TestContentScope(currentScene = Scenes.QuickSettings) { Content(Modifier) }
                }
            }
        }

        composeTestRule.waitForIdle()

        // Verify that the brightness slider exists.
        composeTestRule.onNodeWithTag(resIdToTestTag("brightness_slider")).assertExists()
    }
}
+1 −3
Original line number Diff line number Diff line
@@ -17,7 +17,5 @@
package com.android.systemui.media.controls.domain.pipeline

import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.Kosmos.Fixture
import org.mockito.kotlin.mock

var Kosmos.mediaDataManager by Fixture { mock<MediaDataManager>() }
var Kosmos.mediaDataManager: MediaDataManager by Kosmos.Fixture()
Loading