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

Commit c714b4f5 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Android (Google) Code Review
Browse files

Merge "Add and init media hosts." into main

parents 02b43227 3f152a62
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -53,6 +53,10 @@ import com.android.compose.modifiers.padding
import com.android.compose.theme.PlatformTheme
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
import com.android.systemui.media.controls.ui.view.MediaHost
import com.android.systemui.media.dagger.MediaModule.QS_PANEL
import com.android.systemui.media.dagger.MediaModule.QUICK_QS_PANEL
import com.android.systemui.plugins.qs.QS
import com.android.systemui.plugins.qs.QSContainerController
import com.android.systemui.qs.composefragment.viewmodel.QSFragmentComposeViewModel
@@ -65,6 +69,7 @@ import com.android.systemui.res.R
import com.android.systemui.util.LifecycleFragment
import java.util.function.Consumer
import javax.inject.Inject
import javax.inject.Named
import kotlinx.coroutines.awaitCancellation
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.flow.Flow
@@ -77,6 +82,8 @@ class QSFragmentCompose
@Inject
constructor(
    private val qsFragmentComposeViewModelFactory: QSFragmentComposeViewModel.Factory,
    @Named(QUICK_QS_PANEL) private val qqsMediaHost: MediaHost,
    @Named(QS_PANEL) private val qsMediaHost: MediaHost,
) : LifecycleFragment(), QS {

    private val scrollListener = MutableStateFlow<QS.ScrollListener?>(null)
@@ -99,6 +106,8 @@ constructor(
        QSComposeFragment.isUnexpectedlyInLegacyMode()
        viewModel = qsFragmentComposeViewModelFactory.create(lifecycleScope)

        qqsMediaHost.init(MediaHierarchyManager.LOCATION_QQS)
        qsMediaHost.init(MediaHierarchyManager.LOCATION_QS)
        setListenerCollections()
    }

@@ -274,7 +283,7 @@ constructor(
    ) {}

    override fun isFullyCollapsed(): Boolean {
        return !viewModel.isQSVisible
        return viewModel.qsExpansionValue <= 0f
    }

    override fun setCollapsedMediaVisibilityChangedListener(listener: Consumer<Boolean>?) {
+9 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.qs.composefragment.viewmodel

import android.content.res.Resources
import android.graphics.Rect
import androidx.annotation.FloatRange
import androidx.lifecycle.LifecycleCoroutineScope
import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor
import com.android.systemui.dagger.qualifiers.Main
@@ -79,11 +80,17 @@ constructor(
            _qsVisible.value = value
        }

    private val _qsExpansion = MutableStateFlow(0f)
    // This can only be negative if undefined (in which case it will be -1f), else it will be
    // in [0, 1]. In some cases, it could be set back to -1f internally to indicate that it's
    // different to every value in [0, 1].
    @FloatRange(from = -1.0, to = 1.0) private val _qsExpansion = MutableStateFlow(-1f)
    var qsExpansionValue: Float
        get() = _qsExpansion.value
        set(value) {
            _qsExpansion.value = value
            if (value < 0f) {
                _qsExpansion.value = -1f
            }
            _qsExpansion.value = value.coerceIn(0f, 1f)
        }

    private val _panelFraction = MutableStateFlow(0f)