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

Commit 17223648 authored by Alejandro Nijamkin's avatar Alejandro Nijamkin
Browse files

[flexiglass] BrightnessMirrorViewModel is a SysUiViewModel

As per go/sysui-arch:summer-2024

Bug: 354270224
Test: unit tests still pass
Test: manually verified that the brightness mirror works in flexiglass
Flag: com.android.systemui.scene_container
Change-Id: I98cd6cb916a074507b721256e309ab69d42dab7d
parent daf478a8
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ import com.android.systemui.common.ui.compose.windowinsets.LocalDisplayCutout
import com.android.systemui.common.ui.compose.windowinsets.LocalRawScreenHeight
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.media.controls.ui.composable.MediaCarousel
import com.android.systemui.media.controls.ui.controller.MediaCarouselController
import com.android.systemui.media.controls.ui.view.MediaHost
@@ -166,8 +167,10 @@ private fun SceneScope.QuickSettingsScene(
) {
    val cutoutLocation = LocalDisplayCutout.current.location

    val brightnessMirrorShowing by
        viewModel.brightnessMirrorViewModel.isShowing.collectAsStateWithLifecycle()
    val brightnessMirrorViewModel = rememberViewModel {
        viewModel.brightnessMirrorViewModelFactory.create()
    }
    val brightnessMirrorShowing by brightnessMirrorViewModel.isShowing.collectAsStateWithLifecycle()
    val contentAlpha by
        animateFloatAsState(
            targetValue = if (brightnessMirrorShowing) 0f else 1f,
@@ -178,7 +181,7 @@ private fun SceneScope.QuickSettingsScene(
    DisposableEffect(Unit) { onDispose { viewModel.notifications.setAlphaForBrightnessMirror(1f) } }

    BrightnessMirror(
        viewModel = viewModel.brightnessMirrorViewModel,
        viewModel = brightnessMirrorViewModel,
        qsSceneAdapter = viewModel.qsSceneAdapter,
        modifier =
            Modifier.thenIf(cutoutLocation != CutoutLocation.CENTER) {
+5 −3
Original line number Diff line number Diff line
@@ -477,8 +477,10 @@ private fun SceneScope.SplitShade(
        }
    }

    val brightnessMirrorShowing by
        viewModel.brightnessMirrorViewModel.isShowing.collectAsStateWithLifecycle()
    val brightnessMirrorViewModel = rememberViewModel {
        viewModel.brightnessMirrorViewModelFactory.create()
    }
    val brightnessMirrorShowing by brightnessMirrorViewModel.isShowing.collectAsStateWithLifecycle()
    val contentAlpha by
        animateFloatAsState(
            targetValue = if (brightnessMirrorShowing) 0f else 1f,
@@ -532,7 +534,7 @@ private fun SceneScope.SplitShade(
                            .graphicsLayer { translationX = unfoldTranslationXForStartSide },
                ) {
                    BrightnessMirror(
                        viewModel = viewModel.brightnessMirrorViewModel,
                        viewModel = brightnessMirrorViewModel,
                        qsSceneAdapter = viewModel.qsSceneAdapter,
                        // Need to use the offset measured from the container as the header
                        // has to be accounted for
+2 −2
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ import com.android.systemui.scene.domain.resolver.homeSceneFamilyResolver
import com.android.systemui.scene.domain.startable.sceneContainerStartable
import com.android.systemui.scene.shared.model.SceneFamilies
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.settings.brightness.ui.viewmodel.brightnessMirrorViewModel
import com.android.systemui.settings.brightness.ui.viewmodel.brightnessMirrorViewModelFactory
import com.android.systemui.shade.ui.viewmodel.shadeHeaderViewModel
import com.android.systemui.statusbar.notification.stack.ui.viewmodel.notificationsPlaceholderViewModel
import com.android.systemui.testKosmos
@@ -93,7 +93,7 @@ class QuickSettingsSceneViewModelTest : SysuiTestCase() {
        sceneContainerStartable.start()
        underTest =
            QuickSettingsSceneViewModel(
                brightnessMirrorViewModel = kosmos.brightnessMirrorViewModel,
                brightnessMirrorViewModelFactory = kosmos.brightnessMirrorViewModelFactory,
                shadeHeaderViewModel = kosmos.shadeHeaderViewModel,
                qsSceneAdapter = qsFlexiglassAdapter,
                notifications = kosmos.notificationsPlaceholderViewModel,
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ import kotlinx.coroutines.flow.map
class QuickSettingsSceneViewModel
@Inject
constructor(
    val brightnessMirrorViewModel: BrightnessMirrorViewModel,
    val brightnessMirrorViewModelFactory: BrightnessMirrorViewModel.Factory,
    val shadeHeaderViewModel: ShadeHeaderViewModel,
    val qsSceneAdapter: QSSceneAdapter,
    val notifications: NotificationsPlaceholderViewModel,
+10 −5
Original line number Diff line number Diff line
@@ -19,25 +19,25 @@ package com.android.systemui.settings.brightness.ui.viewModel
import android.content.res.Resources
import android.util.Log
import android.view.View
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.lifecycle.SysUiViewModel
import com.android.systemui.res.R
import com.android.systemui.settings.brightness.BrightnessSliderController
import com.android.systemui.settings.brightness.MirrorController
import com.android.systemui.settings.brightness.ToggleSlider
import com.android.systemui.settings.brightness.domain.interactor.BrightnessMirrorShowingInteractor
import javax.inject.Inject
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow

@SysUISingleton
class BrightnessMirrorViewModel
@Inject
@AssistedInject
constructor(
    private val brightnessMirrorShowingInteractor: BrightnessMirrorShowingInteractor,
    @Main private val resources: Resources,
    val sliderControllerFactory: BrightnessSliderController.Factory,
) : MirrorController {
) : SysUiViewModel(), MirrorController {

    private val tempPosition = IntArray(2)

@@ -99,6 +99,11 @@ constructor(

    override fun removeCallback(listener: MirrorController.BrightnessMirrorListener) {}

    @AssistedFactory
    interface Factory {
        fun create(): BrightnessMirrorViewModel
    }

    companion object {
        private const val TAG = "BrightnessMirrorViewModel"
    }
Loading