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

Commit c475e2d6 authored by Luna Zhang's avatar Luna Zhang
Browse files

Fix volume slider delay

Before fix: https://drive.google.com/file/d/1Y-BOQoQd67fya5Lha98AQUodatJujNrQ/view?usp=sharing
After fix: https://drive.google.com/file/d/14AE7P-V0eaUWZ-h09VDxA7V760zcJVeX/view?usp=sharing

Bug: b/413402086
Test: manually tested, existing tests should still pass
Flag: com.android.systemui.scene_container
Change-Id: I918b15b09147da5fb3990e7c0a967c479961de31
parent d5eb62e8
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Offset
@@ -112,6 +113,7 @@ constructor(

    @Composable
    override fun ContentScope.Content(modifier: Modifier) {
        val coroutineScope = rememberCoroutineScope()
        val contentViewModel =
            rememberViewModel("QuickSettingsShadeOverlayContent") {
                contentViewModelFactory.create()
@@ -121,6 +123,7 @@ constructor(
                quickSettingsContainerViewModelFactory.create(
                    supportsBrightnessMirroring = true,
                    expansion = COLLAPSED,
                    volumeSliderCoroutineScope = coroutineScope,
                )
            }
        val hunPlaceholderViewModel =
+15 −15
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import javax.inject.Named
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.awaitCancellation
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.flow.flowOf
@@ -58,11 +59,12 @@ class QuickSettingsContainerViewModel
constructor(
    @ShadeDisplayAware shadeContext: Context,
    brightnessSliderViewModelFactory: BrightnessSliderViewModel.Factory,
    private val audioStreamSliderViewModelFactory: AudioStreamSliderViewModel.Factory,
    audioStreamSliderViewModelFactory: AudioStreamSliderViewModel.Factory,
    shadeHeaderViewModelFactory: ShadeHeaderViewModel.Factory,
    tileGridViewModelFactory: TileGridViewModel.Factory,
    @Assisted private val supportsBrightnessMirroring: Boolean,
    @Assisted private val expansion: Float?,
    @Assisted private val volumeSliderCoroutineScope: CoroutineScope?,
    val editModeViewModel: EditModeViewModel,
    val detailsViewModel: DetailsViewModel,
    toolbarViewModelFactory: ToolbarViewModel.Factory,
@@ -114,7 +116,17 @@ constructor(
        QsDetailedView.isEnabled &&
            shadeContext.resources.getBoolean(R.bool.config_enableDesktopAudioTileDetailsView)

    var volumeSliderViewModel: AudioStreamSliderViewModel? = null
    val volumeSliderViewModel =
        if (showVolumeSlider && volumeSliderCoroutineScope != null)
            audioStreamSliderViewModelFactory.create(
                AudioStreamSliderViewModel.FactoryAudioStreamWrapper(
                    SliderType.Stream(AudioStream(AudioManager.STREAM_MUSIC)).stream
                ),
                volumeSliderCoroutineScope,
            )
        else {
            null
        }

    val toolbarViewModel = toolbarViewModelFactory.create()

@@ -130,19 +142,6 @@ constructor(

    override suspend fun onActivated(): Nothing {
        coroutineScope {
            if (showVolumeSlider) {
                val volumeSliderStream =
                    SliderType.Stream(AudioStream(AudioManager.STREAM_MUSIC)).stream
                launch {
                    volumeSliderViewModel =
                        audioStreamSliderViewModelFactory.create(
                            AudioStreamSliderViewModel.FactoryAudioStreamWrapper(
                                volumeSliderStream
                            ),
                            this,
                        )
                }
            }
            expansion?.let { mediaHost.expansion = it }
            launch { hydrator.activate() }
            launch { brightnessSliderViewModel.activate() }
@@ -168,6 +167,7 @@ constructor(
        fun create(
            supportsBrightnessMirroring: Boolean,
            expansion: Float? = null,
            volumeSliderCoroutineScope: CoroutineScope? = null,
        ): QuickSettingsContainerViewModel
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.shade.domain.interactor.shadeDisplaysInteractor
import com.android.systemui.shade.ui.viewmodel.shadeHeaderViewModelFactory
import com.android.systemui.volume.panel.component.volume.slider.ui.viewmodel.audioStreamSliderViewModelFactory
import com.android.systemui.window.domain.interactor.windowRootViewBlurInteractor
import kotlinx.coroutines.CoroutineScope
import org.mockito.kotlin.mock

val Kosmos.quickSettingsContainerViewModelFactory by
@@ -38,6 +39,7 @@ val Kosmos.quickSettingsContainerViewModelFactory by
            override fun create(
                supportsBrightnessMirroring: Boolean,
                expansion: Float?,
                volumeSliderCoroutineScope: CoroutineScope?,
            ): QuickSettingsContainerViewModel {
                return QuickSettingsContainerViewModel(
                    shadeContext = applicationContext,
@@ -47,6 +49,7 @@ val Kosmos.quickSettingsContainerViewModelFactory by
                    tileGridViewModelFactory = tileGridViewModelFactory,
                    supportsBrightnessMirroring = supportsBrightnessMirroring,
                    expansion = expansion,
                    volumeSliderCoroutineScope = volumeSliderCoroutineScope,
                    editModeViewModel = editModeViewModel,
                    detailsViewModel = detailsViewModel,
                    toolbarViewModelFactory = toolbarViewModelFactory,